اتمام کلاس‌ها

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

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

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

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

باید برای درس ترم آینده تصمیم بگیرم. درس کارشناسی را قرار شد برنامه‌نویسی ارائه کنم. اما درس کارشناسی ارشد دست خودم است. اگر پیشنهادی دارید بفرمایید. راستش هم کمی سخت است که پس از درس ترم بعد یک درس بی‌خودی ارائه کنم.

پیشنهادهای مطرح تا کنون این‌ها هستند:
۱- الگوریتم برای تحلیل داده: متاسفانه کتاب مربوطه را مطالعه کردم، جنبه‌های تئوری‌اش خیلی کم بود
۲- الگوریتم‌های پیشرفته: شامل ترکیبی از موضوعات مختلف مثلا: الگوریتم‌های جریان داده، داده‌ساختارهای پیشرفته، الگوریتم‌های گراف مسطح
۳- روش‌های تکرار شونده برای مسائل بهینه‌سازی ترکیبیاتی: نام یک کتاب است. کلا سعی می‌کنند از روش‌های تکراری، مثل روش اولیه-دوگان، برای حل برنامه‌ریزی‌های خطی برای مسائل ترکیبیاتی بپردازند.

در حال حاضر شماره ۳ از بقیه جالب‌تر است.

باید یک پیشنهاد هم برای الگوریتم‌های طیفی گراف اضافه کنم. سعی کردم لیست درس‌های ۱۰ سال اخیر برخی از استادهای خارجی که به‌شان علاقه‌مند هستم را هم جمع کنم. متاسفانه خیلی درس‌های جالبی پیدا نکردم.

(ادامه دارد…)

21 thoughts on “اتمام کلاس‌ها

  1. سلام
    هر درسی ارایه می‌کنید سعی کنید برنامه‌ای پشت سرش باشد.
    منظورم این هست به این نکته هم فکر کنید دانشجویی که روش کاهش گرادیان و کاربردهای آن در مسئله شار بیشینه را یادگرفته حالا اگر روش‌های تکرار شونده برای مسائل بهینه‌سازی ترکیبیاتی رو یادبگیره قراره باهاش چیکار کنه؟
    حتی اگر دانشجو رو در نظر نگیریم هدف خود شما از ارائه کردن این درس‌ها با این ترتیب‌ها چیه خیلی سوال مهمی هست.
    قبلا هم خدمتتون عرض کرده بودم دانشکده از جایی به بعد باید (با توجه به واقعیت‌های موجود) به فکر حل کردن مساله‌های خودش باشه نه اینکه محفوظاتش رو بیشتر بکنه با یادگرفتن روش حل مساله بقیه.

    1. سلام
      سوال شما خیلی خوب و عمیق است. انشاء الله به زودی یک مطلب در این مورد می‌نویسم و از شما هم می‌خواهم اگر صحبتی دارید بفرمایید، حتی اگر می‌خواهید یک مطلب در این مورد بنویسید، من که استقبال می‌کنم.

      1. سلام
        دکتر مثل اینکه دانشگاه سند راهبردی دارد. بنظرم اگر دسترسی داشتید یکبار مطالعه‌ی کامل آن خیلی کار غیر مفیدی نخواهد بود.
        البته مطمئن نیستم مسئولین دانشگاه خود را پایبند به پیاده سازی آن بدانند؛ حتی مطمئن نیستم ۵ معاون و چندین مدیر فعلی دانشکاه یکبار هم متن ان سند را بطور کامل مطالعه کرده باشند.
        ایضا روسای دانشکده‌ها و معاونینشان.
        البته این را میشد از مقایسه دوران ریاست دکتر روستا آزاد با دکتر فتوحی یا حتی دکتر فتوحی خودمان با دکتر دانشگر متوجه شد.
        یعنی حتی مطمئن نیستم هییت امنای دانشگاه (بالاترین مرجع تصمیم گیر) هم چنین کاری کرده باشند. نمی‌دانم در جریان هستید یا خیر که برای یکی از ۵ معاون رییس دانشگاه آذرماه حکم دو ساله صادر شده بود ولی هییت امنا طی مصوبه‌ای (که احتمالا نتیجه‌ی برنامه ریزی بلند مدت و یک نقشه راهی بوده؛ مخصوصا با توجه به آن حکم دو ساله‌ای که ۶ ماه پیش صادر شده بود!) معاونت مورد نظر را منحل کرده‌.

  2. درس‌های جالب که خیلی زیاده ولی باید دید اصلا چه معیارهایی برای انتخاب دارید. به نظر من درس‌های زیر جالب است
    ۱- آنالیز توابع بولی: مرجع کتاب آقای O’Donnel
    ۲- قضیه‌ی PCP: مرجع درسنامه‌های آقای O’Donnel و خانم Dinur و از این دست
    ۳- property testing: مرجع کتاب آقای Goldreich
    ۴- pseudorandomness: مونوگراف آقای Vadhan و بعضی مراجع دیگر
    ۵- نظریه‌ی بازی‌ها
    ۶- طراحی مکانیزم
    اگه درس دیگه‌ای هم به نظرم رسید، اضافه میکنم!

      1. من نمی دونم چرا تو دانشکده ما برنامه های جامع برگزار نمیشه
        یعنی تعدادی اساتید جمع بشن و زوم کنن روی یک موضوع خاص و تا حد خوبی پیش برن. یعنی درس هایی در راستای هم. حالا یا تو طول ترم یا حتی دوره های تابستانی
        البته یه بار دکتر پورنکی و دکتر یاسمی همچین کاری کردن
        احتمالا این باید بهترین روش باشه. در غیر اینصورت، دانشجوها اونقدر عمر تحصیلی ندارن که یه برنامه مدون رو با یه استاد بگذرونن. حداکثر ۲ یا ۳ ترم که میشه ۲ یا ۳ درس.

        1. برای چی باید این کار را انجام بدهند؟ تا دانشجو یک موضوع را یاد بگیرد؟ در حالی‌که دانشجویان معمولا در حد آشنایی به یک موضوع احتیاج دارند. اگر قرار باشد یک موضوع به صورت تخصصی درس داده شود، مگر چند نفر هستند که بخواهند آن را بیاموزند؟ مثلا ۲ نفر؟ و برای ۲ نفر باید یک سری درس داد؟ خوب این که عادی نیست. در مقابل به نظر منطقی‌تر می‌آید که دانشجویی که به یک موضوع تخصصی نیاز دارد خودش آن را مطالعه کند. مثلا درس کشکول که در دانشکده‌های خارج از کشور ارائه می‌شود به همین سبک است، درسی مقدماتی برای موضوع‌های مختلف. تازه آن‌هایی که این درس را می‌دهند از همه دنیا مثلا علوم کامپیوتری‌ها را جمع می‌کنند، ما که از تعداد معدود علوم کامپیوتری‌هایمان را پخش می‌کنیم که دیگر حرفی برای گفتن نداریم. در مجموع در قالب این مثال می‌خواهستم عرض کنم درس تخصصی برای دانشجو دادن منطقی نیست!

  3. سلام استاد
    من پیشنهادم درسی است الگوریتمی در حوزه کامپیوتر های کوانتمی است که خیلی از مسائل که NP Hard هستند با کامپیوتر های کوانتمی الگوریتم هایی با اردر حتی log دارند بنظرم موضوع بسیار جالب و نسبتا جدیدی است

    1. سلام.
      موضوع خوبی است. فعلا دیگرانی هستند که این درس را ارائه می‌کنند مثل دکتر سلمان ابوالفتح‌بیگی.
      و از آن مهم‌تر این‌که خود این موضوع یک موضوع پرمغزی است که اگر بخواهم به عنوان موضوع پژوهش انتخابش کنم، باید کلا مسیرم را تغییر بدهم.

  4. «متاسفانه کتاب مربوطه را مطالعه کردم، جنبه‌های تئوری‌اش خیلی کم بود»
    ؟؟؟؟؟؟
    حال شما خوبه؟؟؟
    خیلی ناراحتید کتاب مربوطه را مطالعه کردید؟؟
    حالا چهار تا جنبه عملی تو دانشکده گفته بشه دیوارهای دانشکده کهیری میشه!
    حوصله م سر رفت !

    1. حالم که خوب نیست. فکر کنم متن حاضر هم این را نشان می‌دهد.
      البته که ناراحت نیستم که این درس ارائه بشود، خیلی هم خوب است اگر این درس ارائه بشود. ناراحتم که این درس به موضوع پژوهشی بنده نمی‌خورد که آن را ارائه بدهم.
      دیوارهای دانشکده هم مشکلی برایشان پیش نمی‌آید، قرار است از ترم آینده درس‌های مربوط به علوم داده در دانشکده تدریس شود، البته به صورت غیر رسمی. دوست داشتم من هم در این زمینه هم‌کاری کنم که متاسفانه توفقی نیست.

  5. مباجث بهینه سازی آنلاین که قسمتی از آن شامل نسخه آنلاین برخی الگوریتم هایی که در درس ترم پیش بود هم می تواند جالب باشد برای درس دادن.

    1. البته! دیروز داشتم در همین مورد با یکی از دوستان هم مشورت می‌کردم. اگر بشود خوب است. مخصوصا اگر سیلابسی یا کتابی برای این موضوع باشد.

    1. درس کارشناسی: برنامه‌نویسی
      در کارشناسی ارشد: یک چیزی بر اساس برنامه‌ریزی خطی، مثلا الگوریتم‌های تقریبی بر اساس برنامه‌ریزی خطی یا یک همچنین چیزی

  6. اینکه درسی یا منبع کاملی در این مورد باشد رو من خیلی اطلاع ندارم. اما چندتا منبع رو می شناسم که البته احتمالا خودتون هم دیدین قبلا.
    مثلا جزوه زیر از Elad Hazan هست که نسخه آن لاین الگوریتم های مهمی مثل Gradient descent رو داره ،
    http://ocobook.cs.princeton.edu/OCObook.pdf

    بعضی ابزارهای Stochastic Optimization هم هست که برای آنالیز الگوریتم های تقریبی آنلاین، خیلی مساله های مهم بکار میاد. Anupam Gupta مقاله ها ( واسلاید های ) جالبی تو این زمینه داره مثلا
    https://simons.berkeley.edu/sites/default/files/docs/5692/uncertainty-workshop-stochastic-approx.pdf

    لینک زیر هم می تونه مفید باشه
    https://simons.berkeley.edu/programs/uncertainty2016

    شاید بتوان سیلابسی ساخت از موضوع های مهم این مبحث….

    1. خیلی ممنون از لینک‌ها. یک کتاب دیگر هم آقای علیمی معرفی کردند که خیلی کتاب خوبی است. اینقدر کتاب خوبی است که وسوسه شده‌ام که به جای الگوریتم‌های تقریبی در ترم آینده الگوریتم‌های برخط ارائه کنم!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *