Golem Course – Telegram
Golem Course
2.93K subscribers
47 photos
43 videos
40 files
144 links
Alireza Aghamohammadi, Ph.D.

https://youtube.com/@GolemCourse
Download Telegram
Midterm.zip
278.9 KB
سوالات میان‌ترم درس مبانی برنامه‌سازی (پایتون) را که این ترم تدریس می‌کنم برایتان پیوست کردم.

اگر در حال یادگیری پایتون هستید، خوب است که به این سوالات فکر کنید.


لینک کانال تلگرام
لینک کانال یوتیوب
👍42
Forwarded from Deep Time
معرفی کتاب صفر به یک

در خیلی از مصاحبه‌های لکس فریدمن با افراد برجسته شرکت‌های موفق و یا نوپای دنیا، احتمالا نام یک کتاب را در آخر پادکست از مصاحبه شونده می‌شنوید. این کتاب از یک دوره آموزشی در دانشگاه استنفرد برای استارتاپ‌ها که در سال ۲۰۱۲ برگزار شده، نشأت می‌گیرد.

یکی از مهم‌ترین کتاب‌های حوزه فناوری و کسب و کار که خصوصا برای استارتاپ‌ها اهمیت دارد، کتاب صفر به یک اثر پیتر تیل است‌.
پیتر تیل بنیانگذار PayPal و از اولین سرمایه‌گذاران فیسبوک، اسپیس اکس و بسیاری شرکت‌ دیگر است.

"تقلید از یک الگو آسانتر از خلق چیزی نو است. انجام دادن کاری که می‌دانیم چگونه آن را انجام دهیم، جهان را از 1 به n می‌برد و چیزی آشنا به آن خواهد افزود. اما هرگاه چیزی نو خلق می‌کنیم، از «صفر به یک» می‌رویم.
عمل خلق، منحصر به فرد است، همانند خلق کردن چیزی بااهمیت! و نتیجه چیزی تازه و غریب است."

هنوز کتاب را کامل مطالعه نکرده ام اما کتاب ته تنها بسیار آموزنده و جذاب است، بلکه نگاه بسیار جامع و دقیقی دارد‌‌.
@deeptimeai
10
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۲/۲۰
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
3
آفتابه لگن هفت دست، تست نرم‌افزار هیچی!

نرم‌افزار درست مانند انسان‌ها یک چرخه حیات دارد. نرم‌افزارها تولید می‌شوند، به مرور تکامل پیدا می‌کنند و در نهایت روزی جایگزین نرم‌افزارهای جدیدتر می‌شوند (مرگشان فرا می‌رسد). در این چرخه حیات مجموعه‌ای از فعالیت‌ها را انجام می‌دهیم: از استخراج نیازمندی‌ها بگیر، تا برنامه‌نویسی و پیاده‌سازی، از بستن قراردادها تا تست نرم‌افزار و استقرار آن‌ها در محیط کاربر.

اما متاسفانه به این تست نرم‌افزار کم توجهی می‌شود تا جایی که خیلی از شرکت‌ها آن را حذف می‌کنند! امروزه تست نرم‌افزار را به صورت دستی انجام نمی‌دهیم. بلکه به صورت خودکار و با نوشتن کد از کیفیت نرم‌افزار اطمینان حاصل می‌کنیم. آنقدر تست نوشتن اهمیت دارد که در یک محصول با کیفیت، به صورت تقریبی حجم کد تست شما تقریباً با حجم کد محصول برابر است! یعنی به همان اندازه که برای نرم‌افزار کد نوشتید، به همان اندازه نیز باید تست بنویسید. اهمیت تست به قدری است که در دنیای امروز، کد تست را بخشی از کد محصول به حساب می‌آورند.


✍️ گام‌های عملی:

در ادامه یک سری گام‌های عملی پیشنهاد می‌کنم که می‌توانید به ترتیب در کوتاه مدت و بلند مدت انجام دهید.

۱. به کتابخانه تست واحد زبان برنامه‌نویسی که با آن محصول خود را نوشتید، مسلط شوید. اگر از پایتون استفاده می‌کنید، کتابخانه pytest را یاد بگیرید. اگر از جاوا استفاده می‌کنید، junit را فرا بگیرید. هنگام نوشتن تست‌های واحد، حالت‌های خاص و لبه مرزی را بررسی کنید. همچنین حالت‌هایی که باید منجر به خطا شود را در بیاورید و بررسی کنید که اگر کاربر از عمد ورودی اشتباه داد، آیا خطای مورد انتظار به او داده می‌شود یا خیر.
۲. کیفیت و اثربخشی تست‌های خود را با شاخص‌های پوشش کد مثل پوشش خط (line coverage) و پوشش شاخه (branch coverage) بسنجید.
۳. فرآیند اجرای تست‌ها را در مخازن گیت به صورت خودکار در بیاورید. یعنی تا زمانی که تمام تست‌ها پاس نشوند، اجازه کامیت کردن را ندهید. این کار با pre-commit شدنی است.
۴. با مفهوم آزمون موتاسیون (mutation testing) آشنا شوید. برای پایتون ابزار Mutatest و برای جاوا ابزار PIT وجود دارد.
۵. تست‌های یکپارچه‌سازی و سیستمی نیز به مجموعه تست‌های خود اضافه کنید.
۶. در بلند مدت، با کارهای Jeff Offutt (یکی از بزرگان حوزه تست نرم‌افزار) آشنا شوید و حتماً کتاب Introduction to software testing او را مطالعه کنید. در این کتاب بدون توجه به زبان برنامه‌نویسی خاص، به صورت اصولی یاد می‌گیرید که تست طراحی کنید. این کتاب با مبانی ریاضی مثل نظریه گراف، گرامرهای مستقل از متن و نظریه منطق به شما یاد می‌دهد که چگونه به صورت نظام‌مند تست طراحی کنید.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍5
Forwarded from Golem Course
کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی

💰 می‌خواهید وارد بازار کار شوید؟
📕 می‌خواهید دانش و مهارت ضروری صنعت کامپیوتر را بلد باشید؟
🧠 عاشق یادگیری هستید؟

اگر پاسخ شما به سه سوال بالا منفی است، این کانال مناسب شما نیست!

لینک دسترسی به تمام ویدیو‌ها در کانال یوتیوب:

🥉 مسیر یادگیری و تقویت زبان انگلیسی

🎯 آموزش زبان انگلیسی: (۳۰:۳۷ ساعت - به اتمام رسیده)

==================
🥈مسیر برنامه‌نویس شدن:

🎯 دوره آموزشی پایتون: (۱۵:۱۷ ساعت - در حال ضبط)

🎯 دوره آموزشی گیت: (۴:۰۶ ساعت - به اتمام رسیده)

🎯 دوره تست نرم‌افزار با پایتون: (۱:۲۰ ساعت - به اتمام رسیده)

==================

🥇 مسیر کار تیمی و ایجاد نرم‌افزار

🎯 دوره آموزشی اسکرام: (۲:۳۰ ساعت - به اتمام رسیده)

🎯 دوره مهندسی نیازمندی‌ها: (۴:۳۲ ساعت - در حال ضبط)

🎯 دوره مدیریت پروژه: (۳:۱۶ ساعت - در حال ضبط)

==================
🔥3👍2
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۲/۲۵
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
5
می‌خواهیم میانگین مدت زمان اجرایی یک تابع را اندازه‌گیری کنیم. برای این کار تصمیم گرفتیم که از decorator استفاده کنیم. اما به صورت پیش‌فرض decorator پارامتر دریافت نمی‌کند!

راه حل نوشتن تابعی است که خروجی آن یک decorator باشد. به طور مثال در شکل بالا، پنج بار تابع فیبوناچی را اجرا می‌کنیم و میانگین زمان اجرایی را برمی‌گردانیم.

به این تکنیک پارامتریزه سازی decorator می‌گویند.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍7
HW3.pdf
233.8 KB
تیم دستیار آموزشی زحمت کشیدند و سوالات تمرین سوم درس مبانی برنامه‌سازی (پایتون) را طراحی کردند. این تمرین مربوط به حوزه شی‌گرایی است. اگر در حال یادگیری پایتون هستید، پیشنهاد می‌کنم که به این سوالات فکر کنید.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍4
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۲/۲۷
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
2
به وقت خودشناسی

لازم است از محمد طلایی (@deeptimeai) بابت معرفی دکتر آذرخش مکری تشکر کنم. مدتی است که بعد از معرفی محمد ویدیوهای ایشان را تماشا می‌کنم. ایشان روان پزشک است و در رابطه با موضوع سلامت روان مطالب بسیار جالبی ارائه می‌کنند. یکی از موضوعاتی که اخیراً تماشا کردم و خیلی برایم آموزنده بود، بخشی از پلی‌لیست به وقت خودشناسی ایشان در کانال یوتیوب بود. در آن‌ ویدیوها انواع آزمایش‌های علمی و موضوعات بروز را در باره خودشناسی به بحث گذاشتند.

یکی از موضوع‌هایی که به صورت شخصی برایم آموزنده بود، بحث این است که دیگران در رابطه با ما چه فکر می‌کنند. برداشت من از حرف‌های دکتر مکری و نتایج مقالاتی که اشاره کردند، این است:

۱. دیگران به شما فکر نمی‌کنند و اگر هم فکر کنند به این موضوع فکر می‌کنند که شما در رابطه با آن‌ها چه فکری می‌کنید.
۲. زمانی که دیگران به شما فکر می‌کنند خیلی منفی‌تر از چیزی است که شما تصور می‌کنید. یعنی ما انسا‌ن‌ها خودمان را بهتر از چیزی که دیگران در رابطه با ما فکر می‌کنند، تصور می‌کنیم.
۳. در عمل و رفتار این تفکرات منفی دیگران نسبت به شما خطری ندارد و بروز هم پیدا نمی‌کند. نگران نباشید.

پیشنهاد من این است که ویدیوهای به وقت خودشناسی ایشان را تماشا کنید (لینک)
👍15
آموزش کتابخانه pandas

اولین جلسه آموزش کتابخانه پانداس را ضبط کردم و داخل کانال یوتیوب قرار دادم (لینک). امیدوارم به مرور بتوانم این دوره را تکمیل کنم. اولین جلسه در رابطه با نوع داده جدولی صحبت می‌کنم. پیش فرض این دوره این است که برنامه‌نویسی پایتون را در حد متوسط بلد باشید.
5🔥2
#معرفی_کتاب

هنگام ایجاد نرم‌افزار همیشه با دو سوال اساسی روبرو هستیم: ۱. آیا محصولی که در حال ساخت آن هستیم را کاربر می‌خواهد (مفهوم اعتبارسنجی)؟ ۲. با فرض مثبت بودن پاسخ سوال اول، آیا اصلاً خود آن محصول را به درستی می‌سازیم (مفهوم صحت‌سنجی)؟ پاسخ به این دو سوال را حوزه‌ای از گرایش مهندسی نرم‌افزار به نام مهندسی نیازمندی‌ها می‌دهد. کارل ویگرز کتاب نیازمندی‌های نرم‌افزار را با همکاری انتشارات مایکروسافت در پاسخ به نیاز مذکور به نگارش در آورده است.

به نظرم نقاط قوت کتاب را می‌توان به صورت زیر خلاصه کرد:
۱. قالب‌ها و مستنداتی برای ثبت نیازمندی‌های نرم‌افزار ارائه می‌کند.
۲. تعداد زیادی چک لیست در کتاب وجود دارد که به پیاده‌سازی صحیح فرآیندها کمک می‌کند.
۳. فوت و فن‌های بیشماری در هر فصل نویسنده ارائه می‌کند که حاکی از تجربه زیاد فرد در صنعت است.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍12
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۱
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
👍42
HW4.pdf
211.6 KB
تیم دستیار آموزشی زحمت کشیدند و سوالات تمرین چهارم را طراحی کردند. اگر در حال یادگیری پایتون هستید، خوب است که به حل این سوالات فکر کنید.
3👍1
پایتون یک زبان برنامه‌نویسی dynamic (پویا) است. یعنی در زمان اجرا نوع متغیر مشخص می‌شود. از طرفی زبان‌ برنامه‌نویسی ایستا (static) در زمان کامپایل نوع متغیر را مشخص می‌کنند. آیا می‌توانیم در پایتون از مزیت‌های زبان‌های برنامه‌نویسی ایستا استفاده کنیم؟

پاسخ این سوال مثبت است و به آن Type hint می‌گویند. در صدمین جلسه از آموزش برنامه‌نویسی پایتون، به این موضوع پرداختم.

https://youtu.be/eoG-Fq-PLDM
👍71
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۳
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
3
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۸
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
3
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۱۰
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
3
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۱۷
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
3
مهندسی نرم‌افزار تنها برنامه‌نویسی نیست! برنامه‌نویسی تنها یکی از مهارت‌های مورد نیاز مهندسی نرم‌افزار است. یک ویدیو ضبط کردم و مهارت‌ها و دانش‌هایی که به نظرم مهندس نرم‌افزار باید آن را بلد باشد، شرح دادم. مهارت‌هایی مانند متدولوژی، معماری نرم‌افزار، مهندسی نیازمندی‌ها و ... از جمله این مهارت‌ها ‌اند.

https://youtu.be/siD4u4OLVuY
👍3