درس "طراحی الگوریتم های دکتر شریفی زارچی" در نیمسال دوم سال تحصیلی 99-98 با کمک خانم زهرا مهدوینژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شدهاست. تفکر الگوریتمی نهتنها هنر برنامهنویسی، بلکه کل زندگی ...
درس "طراحی الگوریتم های دکتر شریفی زارچی" در نیمسال دوم سال تحصیلی 99-98 با کمک خانم زهرا مهدوینژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شدهاست.
تفکر الگوریتمی نهتنها هنر برنامهنویسی، بلکه کل زندگی را تغییر میدهد. وقتی با این دید به مسائل زندگی مینگریم، هر لحظه برای ما میتواند فرصت حل یک مسئله باشد. انتخاب تصمیم درست و «بهینه» بین چند گزینهی ممکن، صرفهجویی در زمان، انرژی و هزینهی انجام یک فعالیت، برنامهریزی بهینه برای انجام مراحل یک پروژه یا تقسیم فعالیتها بین اعضای یک تیم، مثالهایی از این مسئلهها هستند. تفکر الگوریتمی، علم و هنر شناخت مسئله و انتخاب راهحل بهینه در طول زندگی است. درس طراحی الگوریتمها فرصتی برای یادگیری نظری و عملی تفکر الگوریتمی است.
مؤکداً پیشنهاد میکنیم ابتدا درس دادهساختارها و الگوریتمها را که ویدئوهای آن در مکتبخونه هم وجود دارد بهعنوان یک پیشنیاز ببینید و تمرین کنید و سپس شروع به یادگیری این درس کنید. با توجه به اینکه فرض میشود دانشجویان ابتدا درس دادهساختارها و مبانی الگوریتمها را پیش از برداشتن این درس گذراندهاند؛ مطالب موجود در این درس بهنوعی ادامهی مطالب درس دادهساختارها است.
درس طراحی الگوریتمهای دکتر شریفی زارچی با آموزش الگوریتمهای حریصانه و برنامهنویسی پویا شروع میشود. در ادامه به الگوریتمهای گراف نظیر الگوریتمهای یافتن زیردرخت فراگیر و کوتاهترین مسیر بین همهی جفت رئوس پرداختهخواهدشد. سپس روشهای تقسیم و حل، تطابق رشتهها و شبکههای شار بیان میشود. در انتها نیز مباحثی از قبیل پیچیدگی محاسباتی (P و NP)، برنامهنویسی خطی، الگوریتمهای تقریبی و بهینهسازیهای پویا تدریس میشوند. جزوههای تعاملی این درس را میتوانید از سایت زیر دریافت کنید:
https://github.com/asharifiz/Algorithms_Jupyter
برای باز کردن این جزوهها نیاز است نرمافزار Jupyter Notebook را بر روی کامپیوتر خود نصب کنید؛ این کار را از طریق نرمافزار miniconda انجام دهید. این نرمافزار برای هر سه محیط ویندوز، لینوکس و مک موجود است. همچنین با توجه به اینکه زبان برنامهنویسی این درس، زبان سیپلاسپلاس است توصیه میکنم کامپایلر این زبان را نیز نصب داشته باشید. سایر توضیحات در مورد پیشنیازهای سیستمی در جزوهی اول (مقدمه) آمده است. دسترسی به تمرینهای عملی و نظری از طریق صفحات کوئرا و پیاتزای درس ممکن است، لینک عضویت در این صفحات نیز در اولین جزوهی درس قرار دارد.
تنها راه یادگیری واقعی این درس حل مسئلهها و تمرینهای نظری و عملی توسط خودتان است؛ بنابراین بهشدت توصیه میکنیم تمرینهای درس را با صرف زمان متناسب حل کنید. بعد از اتمام هر تمرین، پاسخنامهی آن در صفحهی پیاتزای درس قرار میگیرد اما لطفاً پیش از صرف زمان کافی به سراغ پاسخنامهها نروید. دقت کنید که در این درس حل سؤالات تمرینها نیاز به زمان دارد و باید وقت قابل توجهی را صرف فکر کردن، ایدهزنی و بررسی راهحلهای مختلف کنید.
این درس حاصل تلاش یک تیم ۲۸ نفره از دانشجویان کنونی و سابق دانشکدهی مهندسی کامپیوتر دانشگاه صنعتی شریف است که بدون چشمداشت مادی و معنوی در راهاندازی این درس به دکتر شریفی زارچی کمک کردند و تولید تمامی محتوای درس از جمله جزوات و تمرینها را بر عهده داشتند. از زحمات همهی آنها عمیقاً سپاسگزاریم.
اطلاعات بیشتر
از مجموع 23 امتیاز
8 نظرنظرات بیشتر
علی شریفی زارچی دانشآموخته کارشناسی و کارشناسی ارشد مهندسی کامپیوتر از دانشگاه صنعتی شریف و دکتری بیوانفورماتیک از دانشگاه تهران است.
وی دورههای پژوهشی و پسادکتری را در Max Planck Institute آلمان و Colorado State University آمریکا پشت سر گذاشتهاست.
او از سال ۱۳۹۰ تاکنون به عنوان پژوهشگر بیوانفورماتیک در پژوهشگاه رویان و همچنین از سال ۱۳۹۵ به عنوان عضو هیأت علمی دانشکدهی مهندسی کامپیوتر دانشگاه صنعتی شریف مشغول به کار است.
زمینههای تحقیقاتی مورد علاقه ایشان به کارگیری الگوریتم و هوش مصنوعی در بیوانفورماتیک و تحلیل دادههای زیستپزشکی است.
اطلاعات بیشتر