سلام دوست من :)
من یک علاقهمند حل مسئله به کمک الگوریتمها و برنامهنویسی با مدرک دکتری علوم کامپیوتر از دانشگاه تبریز هستم که به عنوان راهبر تیم تحلیل داده و هوش مصنوعی در شرکت گلرنگ سیستم مشغول به کارم.
فعالیت مهم دیگر من تدریس برنامهنویسی، الگوریتم، یادگیری ماشین و هوش مصنوعی است در قالب کلاسهای خصوصی، نیمهخصوصی و عمومی است. از جمله با تیم آموزشی کوئرا همکاری دارم و به طور خاص
مدرس یادگیری ماشین و کتابخانههای پایتونی مرتبط در
بوتکمپ هوش مصنوعی کوئرا هستم. همینطور با
آکادمی ایرانسل
در حوزههای آموزش برنامهنویسی پایتون، تحلیل داده و هوش مصنوعی همکاری دارم.
از افتخارات من همراهی شرکتکنندگان در مسابقات برنامهنویسی و هوش مصنوعی به عنوان یک مربی است. در دوران دانشجویی در کنار دانشجویان شرکتکننده در مسابقات برنامهنویسی ICPC (همان ACM سابق!) و رباتیک از دانشگاه تبریز بودم و در حال حاضر مدرس المپیاد هوش مصنوعی دانشآموزی هستم.
لینکدین
پاتوق مجازی محبوب من است و
الگوریتمستان مجموعه نوشتههای من در حوزههای مرتبط با ریاضیات دوستداشتنی، الگوریتمها، علم داده و هوش مصنوعی هستند که در گذشته با نشانیهای aachp.ir و algorithmha.ir منتشر میکردم. همچنین نوشتههای من در سایر منابع به الگوریتمستان منتقل شدهاند.
تدریس برنامهنویسی پایتون و هوش مصنوعی
این روزها همه جا صحبت از هوش مصنوعی و کاربردهای آن است و هر کس میتواند به دو روش از کاربردهای این حوزه استفاده کند. سادهترین راه این است کاربر نهایی باشیم و فقط از ابزارهای هوش مصنوعی تولید شده توسط دیگران استفاده کنیم. اما خودمان هم میتوانیم از هوش مصنوعی برای تولید نرمافزارهای جدید استفاده کنیم یا در تولیدشان مشارکت کنیم، تا دیگران استفاده کنند!
دنیای توسعهی محصولات هوش مصنوعی جدا از دنیای مهندسی نرمافزار نیست، اما نیاز است با مفاهیم بیشتر و تخصصیتری آشنا باشیم که کمکمان کنند توسعهگر هوش مصنوعی یا متخصص استقرار و رشد آن باشیم. در این مسیر، زبان برنامهنویسی پایتون بهعنوان ابزار اصلی یادگیری و پیادهسازی الگوریتمهای هوش مصنوعی شناخته میشود. سادگی، خوانایی و پشتیبانی گستردهی پایتون توسط کتابخانههای تخصصی مثل NumPy، Pandas، TensorFlow و PyTorch باعث شده این زبان انتخاب اول پژوهشگران و توسعهگران هوش مصنوعی باشد.
نکتهی مهم این است که یادگیری پایتون فقط برای کسانی که میخواهند وارد دنیای مدلسازی عمیق یا پژوهشهای ریاضیاتی شوند مفید نیست. حتی اگر هدف ما ساخت مدلهای جدید نباشد، پایتون ابزاری فوقالعاده برای کاربرد و نگهداری سیستمهای هوش مصنوعی است. بسیاری از فرآیندهای روزمرهی توسعه مثل برقراری ارتباط با APIهای مدلهای زبانی، راهاندازی سرویسهای هوش مصنوعی (مثل RAG یا Chatbotها)، یا حتی خودکارسازی وظایف دادهای و تحلیلی، با پایتون انجام میشود. به همین دلیل میتوان گفت سطوح مختلفی از یادگیری از درک مفاهیم پایهای و کار با ابزارهای آماده تا تسلط بر الگوریتمها و ساخت مدلهای سفارشی وجود دارد. هر کس بسته به هدف و علاقهاش میتواند در یکی از این سطوح مسیر یادگیری خود را انتخاب کند.
در مراحل پیشرفتهتر، یادگیری هوش مصنوعی به ترکیبی از درک مفاهیم پایه و خلاقیت در طراحی الگوریتمها نیاز دارد. البته قرار نیست وارد دنیای پیچیدهی ریاضیات شویم؛ کافی است به اندازهی کاربردی با مفاهیمی مثل داده، الگو، و شیوهی تصمیمگیری مدلها آشنا شویم. به مرور، یاد میگیریم که این مدلها چطور از دادهها یاد میگیرند و چرا بعضی روشها بهتر عمل میکنند. اگر علاقهمند باشیم عمیقتر برویم، میتوانیم سراغ مباحثی مانند یادگیری ماشین، شبکههای عصبی و یادگیری تقویتی برویم. اما مسیر یادگیری طوری طراحی میشود که در هر مرحله، بتوانیم دانش خود را در پروژههای واقعی بهکار ببریم و نتیجه را ببینیم.
تدریس برنامهنویسی و الگوریتم، تقویت خلاقیت و حل مسئله
کامپیوترهای امروزی تنها صفر و یک را میفهمند و زبانهای برنامهنویسی ابزارهایی هستند که کمک میکنند راحتتر بتوانیم به کامپیوتر بگوییم چه کاری انجام دهد! پس در نهایت این ما انسانها هستیم که باید مشکل و نیاز خودمان را به بیان قابل فهم برای کامپیوتر تبدیل کنیم. پس در واقع، برنامهنویسی یعنی یاد گرفتن «چطور فکر کردن برای حل مسئله» به شیوهای قابل فهم برای ماشین.
دنیای دوستداشتنی الگوریتم نیز مربوط به این موضوع است که کامپیوتر فقط دستورات صفر و یکی و توالی اجرای آنها را میفهمد. پس ما باید مسئلهی خودمان به سلسله دستورات متوالی و به اندازهی کافی شفاف برای کامپیوتر تبدیل کنیم، تا کامپیوتر بتواند اجرا کند. تعریف الگوریتم هم همین است! الگوریتم یعنی دنبالهای متناهی از دستورالعملهای دقیق و صریح برای حل یک مسئله.
بر اساس توضیحات فوق، برنامهنویسی و الگوریتم یا حل مسئله ارتباط نزدیکی با هم دارند و آنچه که یک برنامهنویس تازهکار را به یک برنامهنویس حرفهای تبدیل میکند، تنها آشنایی عمیق با یک زبان برنامهنویسی یا آشنایی با چندین زبان برنامهنویسی نیست. بلکه باید قدرت حل مسئله و تفکر الگوریتمی نیز تقویت شود. به همین دلیل هم دورههای آموزش برنامهنویسی من همراه با حل مسئله و تقویت قدرت تفکر الگوریتمی است.
تدریس المپیاد هوش مصنوعی
در سالهای اخیر و با توجه به رشد چشمگیر و اهمیت روزافزون حوزهی هوش مصنوعی، المپیاد هوش مصنوعی دانشآموزی (IOAI) نیز به مجموعه المپیادهای علمی کشور افزوده شده است. در این رقابتها، دانشآموزان در سه مرحله و در دو بخش تئوری و عملی به رقابت میپردازند. بخش تئوری شامل مسائل ریاضیاتی و الگوریتمی است که نیازمند تسلط بر مباحثی مانند ترکیبیات، جبر خطی، آمار و احتمال، و همچنین ارائهی راهحلهای خلاقانه برای معماهای منطقی است. بخش عملی نیز شامل حل مسائل پیچیدهای است که توانایی برنامهنویسی، تحلیل داده و بهکارگیری ابزارهای هوش مصنوعی را میطلبد.
من نیز افتخار دارم که بهعنوان مدرس المپیاد هوش مصنوعی در کنار دانشآموزان مستعد، مسیر یادگیری و رشد آنها را هموار کنم. در این دورهها، علاوه بر آموزش مفاهیم یادگیری ماشین و مبانی هوش مصنوعی، بر تقویت مهارت حل مسئله، قدرت استدلال و تفکر الگوریتمی نیز تأکید میشود تا شرکتکنندگان بتوانند با آمادگی کامل به هر نوع پرسش یا چالش علمی پاسخ دهند.
بخشی از سوابق تدریس من
✔ مدرس برنامهنویسی پایتون و تحلیل داده در آکادمی ایرانسل
✔ مدرس یادگیری ماشین و هوش مصنوعی در بوتکمپهای تخصصی کوئرا
✔ مدرس برنامهنویسی پایتون در مرکز آموزشهای تخصصی کاربردی سازمان جهاد دانشگاهی صنعتی شریف
✔ مدرس برنامهنویسی پایتون در دبیرستان تیزهوشان علامه حلی تهران
✔ مدرس برنامهنویسی پایتون در مرکز آموزشهای عالی تخصصی دانشکده علوم مهندسی دانشگاه تهران
✔ مدرس برنامهنویسی پایتون در مجتمع فنی تهران (دیباگران)
✔ مدرس برنامهنویسی با زبانهای برنامهنویسی C/C++/Java/Python در دانشگاه تبریز
سوابق حضور در مسابقات به عنوان مربی
✔ مربی المپیاد هوش مصنوعی دانشآموزی
✔ سرپرست و مربی تیمهای برنامهنویسی دانشجویی ICPC دانشگاه تبریز در سالهای گذشته
✔ مربی تیم رباتیک دانشجویی دانشگاه تبریز در سالهای گذشته
تفکر الگوریتمی یعنی توانایی شکستن یک مسئله به مراحل سادهتر، منطقی و قابل اجرا. این مهارت به شما کمک میکند در هر زبان برنامهنویسی، راهحلهای موثر و بهینه طراحی کنید. تفکر الگوریتمی ماهیتی مستقل از زبان برنامهنویسی است. اما ممکن است در زمان پیادهسازی و بر اساس امکانات موجود در هر زبان، کلیات الگوریتم تغییراتی داشته باشد.
خیر، ولی درک همزمان مفاهیم پایهای الگوریتم در کنار یادگیری زبان برنامهنویسی باعث میشود روند آموزش سریعتر و عمیقتر پیش برود.
خیر! در مراحل مقدماتی نیازی به دانش پیچیده ریاضی نیست. کافی است با مفاهیم پایهای مانند داده، الگو و تصمیمگیری مدلها آشنا شوید. بهمرور و متناسب با علاقهتان میتوانید مباحثی مانند آمار، احتمال یا شبکههای عصبی را یاد بگیرید.
معمولا از مبانی پایتون شروع میشود (متغیرها، ساختار دادهها، توابع، ماژولها) و سپس به کار با داده، تحلیل آن، و در نهایت یادگیری ماشین و شبکههای عصبی میرسد. این مسیر مرحلهبهمرحله طراحی میشود تا بتوانید دانش خود را در پروژههای واقعی بهکار ببرید.
آشنایی مقدماتی با منطق برنامهنویسی و مفاهیم پایهای ریاضی (مثل جمع، ضرب ماتریس، و احتمال ساده) کافی است. در بسیاری از دورهها این مفاهیم نیز از پایه آموزش داده میشوند.
بله. یادگیری پایتون به شما امکان میدهد داده جمعآوری کنید، مدلها را آموزش داده و سرویسهای هوش مصنوعی را روی وب یا اپلیکیشن خود پیادهسازی کنید.
به تمام علاقهمندان به برنامهنویسی، دانشجویان رشتههای مهندسی و علوم کامپیوتر، و حتی افرادی که میخواهند مهارت حل مسئله و تفکر منطقی خود را تقویت کنند.
خیر، دورهها از سطح مقدماتی شروع میشوند و با تمرینهای حل مسئله، مهارت و اعتمادبهنفس لازم برای ورود به سطوح پیشرفتهتر را ایجاد میکنند.
دانشآموزان باید با مباحثی مانند جبر خطی، آمار و احتمال، ترکیبیات و زبان برنامهنویسی پایتون آشنایی داشته باشند. تسلط بر مفاهیم اولیهی یادگیری ماشین و تفکر تحلیلی نیز بسیار مهم است.
زبان برنامهنویسی پایتون علاوه بر هوش مصنوعی و یادگیری ماشین، در حوزههای متنوعی مانند تحلیل داده، توسعهی وب (با فریمورکهایی مثل Django و Flask)، علم داده، خودکارسازی وظایف (Automation)، تست نرمافزار، شبکه، اینترنت اشیاء (IoT)، پردازش تصویر و ویدئو، و حتی ساخت بازی نیز استفاده میشود. سادگی و کتابخانههای گستردهی آن باعث شده یکی از محبوبترین زبانهای دنیا باشد.