college logo

تفکر الگوریتمی پیشرفته و ساختمان‌داده‌ها

با رویکرد مسئله‌محور و خلاقانه

۱۶ فصل | ۱۰۰ تمرین عملی | ۱۲ هفته

ثبت نام

تعداد افراد ثبت‌نام کرده
۰

تعداد پاسخ‌های ارسال شده
۰

تعداد پرسش‌های پاسخ داده شده
۰

در این دوره چه می‌آموزید؟

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

در این دوره علاوه بر یادگیری الگوریتم‌ها می‌توانید پیاده‌سازی آن‌ها را به زبان‌های C++ و Python نیز یاد بگیرید تا از اطلاعات الگوریتمی‌تان برای پیاده‌سازیِ مسائل برنامه‌نویسی استفاده کنید.

فواید این دوره

  • تفکر الگوریتمی پیشرفته‌ و پیاده‌سازی؛ در این دوره شما با مراحل زیر آشنا می‌شوید:

    • تبدیل کردن مسائل به مدل ریاضیاتی
    • طراحی الگوریتم برای حل آن مدل
    • بهینه‌سازی الگوریتم
    • پیاده‌سازی الگوریتم مورد نظر و در نتیجه حل کردن مسئله
  • ارتباط با طراحان و شرکت‌کننده‌های دیگر:

    همه‌ی ۱۳ فصل به صورت آنلاین در اختیارتان قرار می‌گیرد. با استفاده از سیستم داوری خودکار Quera، مسائل و تمرین‌ها دوره در لحظه تصحیح می‌شوند. هم‌چنین می‌توانید با طراحان دوره و دیگر شرکت‌کنندگان در ارتباط باشید تا یادگیری‌تان تسهیل گردد.
  • پیشرفت در درس‌های برنامه‌نویسی و الگوریتمی دانشگاه

  • گواهی Quera:

    در صورتی که دوره‌های کوئرا کالج را با موفقیت بگذرانید، Quera گواهیِ گذراندن این دوره را به صورت فیزیکی و دیجیتالی در اختیار شما قرار می‌دهد.
  • افزایش رتبه در مسابقات رقابتیِ برنامه‌نویسی و توانایی حل مسائل در مسابقات Quera

پیش ‍‌نیاز‌های این دوره

علاقه به برنامه‌نویسی و الگوریتم‌ها؛ آشنایی با مبنای اولیه‌ی برنامه نویسی

کلیپ معرفی دوره

سرفصل دوره

۱. مقدمه ( ٪۱ تا میزان مورد انتظار )
۲. ورود به دنیای الگوریتم‌ها ( ٪۷۰ تا میزان مورد انتظار )
۳. تحلیل زمانی الگوریتم‌ها
عدم اهمیت ضریب‌ها درس‌نامه
تعریفِ ابتداییِ اردر درس‌نامه
چند مثال از اردر درس‌نامه
مقایسه اردر‌ها درس‌نامه
بزرگ‌ترین زیربازه ۱ درس‌نامه
بزرگ‌ترین زیربازه ۱ تمرین
بزرگ‌ترین زیربازه ۲ درس‌نامه
بزرگ‌ترین زیربازه ۲ تمرین
شمارش مثلث‌ها ۱ درس‌نامه
شمارش مثلث‌ها ۱ تمرین
شمارش مثلث‌ها ۲ درس‌نامه
شمارش مثلث‌ها ۲ تمرین
شمارش مثلث‌ها ۳ درس‌نامه
شمارش مثلث‌ها ۳ تمرین
۴. الگوریتم‌های استقرایی
استقرای ریاضی درس‌نامه
استقرای قوی درس‌نامه
مرتب‌سازی و تحلیل زمانی درس‌نامه
مرتب‌سازی انتخابی درس‌نامه
مرتب‌سازی انتخابی تمرین
مرتب‌سازی حبابی درس‌نامه
مرتب‌سازی حبابی تمرین
مرتب‌سازی درجی درس‌نامه
مرتب‌سازی درجی تمرین
بزرگ‌ترین زیربازه ۳ درس‌نامه
بزرگ‌ترین زیربازه ۳ تمرین
الگوریتم هورنر درس‌نامه
الگوریتم هورنر تمرین
مجموع ارقام تمرین
۵. الگوریتم‌های بازگشتی
آشنایی اولیه درس‌نامه
روش‌های تحلیل توابع بازگشتی درس‌نامه
مثال‌های تحلیل توابع بازگشتی درس‌نامه
دنباله بازگشتی تمرین
ب.م.م درس‌نامه
ب.م.م تمرین
برج هانوی درس‌نامه
برج هانوی تمرین
کد گری درس‌نامه
کد گرِی تمرین
nتایی مرتب تمرین
تناظر زیر مجموعه‌ها با اعداد دودویی درس‌نامه
بخش‌بندی تمرین
۶. الگوریتم‌های حریصانه
آشنایی اولیه درس‌نامه
زندگی کارمندی تمرین
کاف‌کیک تمرین
انرژی خور تمرین
تخته تمرین
بیشترین تعداد بازه تمرین
اشتباهات رایج در روش‌های حریصانه درس‌نامه
جاسوسی تمرین
۷. تمرین‌های دوره‌ای ۱
استارت-آپ باکلاس تمرین
فرکتال تمرین
پله‌نوردی تمرین
علسوپا تمرین
پالیندرومینیا تمرین
تعمیر پشت‌بام تمرین
شرکت پالایش و پخش نخود در برره تمرین
مساوات تمرین
۸. برنامه‌نویسی پویا
روش برنامه‌نویسی پویا در مقابل روش بازگشتی درس‌نامه
دومینوار تمرین
بزرگترین زیر‌بازه تمرین
آجرچینی تمرین
بزرگترین زیر جدول تمرین
انتخاب تمرین
مسیر منهتنی با ماکسیمم وزن تمرین
اشتباهات رایج در حل مسائل برنامه‌نویسی پویا درس‌نامه
چالش مسیر‌یابی تمرین
مسئله‌ی کوله پشتی درس‌نامه
یا همه یا هیچ یا یکی تمرین
بهینه‌سازی حافظه کوله پشتی درس‌نامه
تفاهم (LCS) تمرین
بریم توچال! تمرین
ضرب ماتریس تمرین
۹. الگوریتم‌های پس‌گرد
پس‌گرد چیست درس‌نامه
مسائل پسگرد درس‌نامه
تعداد جایگشت تمرین
دنباله‌ پس‌گردنی تمرین
سودوکو تمرین
n وزیر تمرین
یک اسب تمرین
۱۰. روش تقسیم‌ و حل
تقسیم و حل درس‌نامه
ادغامات تمرین
محاسبهٔ توان درس‌نامه
تابع توان‌دار تمرین
قلّه درس‌نامه
جستجوی دودویی درس‌نامه
بشمر! تمرین
نابه‌جایی تمرین
دسته به دسته تمرین
۱۱. تمرین‌های دوره‌ای ۲
مرد مالیاتچی و جاعل تمرین
تعداد ۱۱ بخش پذیرها (۲) تمرین
خواب پوپک تمرین
مثلث‌ها تمرین
باقر حال نداره ولی پول داره تمرین
تکامل تمرین
انتقام از TA‌ سخت‌گیر تمرین
رژیم سخت تمرین
دنباله تورج‌پسند تمرین
سینما، سینما تمرین
بازرگانی سوکرات و پسران تمرین
شیر تمرین
متوازی‌الاضلاع ممنوع! تمرین
آجر چینی (۲) تمرین
بازار موبایل تمرین
منظره‌ای به‌ یاد ماندنی تمرین
۱۲. ساختمان‌داده‌ها
مفهوم ساختمان‌داده و چگونگی پیاده‌سازی یک ساختمان‌داده درس‌نامه
پشته درس‌نامه
پرانتز‌گذاری معتبر تمرین
هیستوری تمرین
صف درس‌نامه
الگوی من کیه؟ تمرین
صف دو‌طرفه درس‌نامه
آرایه پویا درس‌نامه
لیست پیوندی درس‌نامه
پیاده‌سازی ساختمان‌داده‌های قبلی با لیست پیوندی درس‌نامه
ویرایشگر متن تمرین
درخت هرمی درس‌نامه
کافه‌ سالاد تمرین
میانه‌روی تمرین
درخت دودویی جستجو و ساختار مجموعه‌ای درس‌نامه
برنامه‌ریزی فرودگاه تمرین
برش کیک تمرین
پول یا وجدان؟ تمرین
۱۳. پیش‌پردازش و بهینه‌سازی
پیش‌پردازش و بهینه‌سازی درس‌نامه
مجموع جزئی تمرین
خواستار تمرین
مجموع جزئی در ماتریس تمرین
مربع تمرین
کادوی مشتی تمرین
درخواست مینیمم عدد در بازه درس‌نامه
کمینه در بازه تمرین
مرتب‌سازی درجی رشته‌ها درس‌نامه
مجموع جزئی در آرایه متغَیّر تمرین
بیشینه در آرایه متغیّر تمرین
۱۴. الگوریتم‌های گراف
گراف درس‌نامه
جستجوی عمق اول درس‌نامه
دی‌اِف‌اِسِ پیش‌گو تمرین
جستجوی سطح اول درس‌نامه
بی‌اِف‌اِسِ مسیر‌یاب تمرین
پیدا کردن دور در گراف‌ها درس‌نامه
گراف‌های دوبخشی درس‌نامه
پیدا کردن کمر گراف درس‌نامه
مسافرت تمرین
پادشاه تمرین
دوست‌یابی تمرین
جدول تمرین
قطـــر تمرین
۱۵. تمرین‌های دوره‌ای ۳
وسیله کمک آموزشی تمرین
زینی تمرین
بتایپ تمرین
قطار کامیابی تمرین
هیچ‌وقت مغرور نشو! تمرین
دنباله متوازن تمرین
مرتفع تمرین
گراف قرمز و آبی تمرین
ترور تمرین
میان‌ترم هندسه تمرین
اسم فامیل تمرین
صفا تمرین
مساحت محصور تمرین
عدد روی تخته تمرین
دنباله تمرین
کمینه بیشینه اختلاف! تمرین
۱۶. ضمیمه
منابع خوب درس‌نامه
نکاتی درباره باقی‌مانده و سرریز کردن (Overflow) درس‌نامه
تحلیل الگوریتم‌ها درس‌نامه
پیاده‌سازی ساختمان‌‌داده‌ها بخش اول درس‌نامه
پیاده‌سازی ساختمان‌‌داده‌ها بخش دوم درس‌نامه
مرتب‌سازی در زبان ++C درس‌نامه
استفاده از pair در ++C درس‌نامه
ساختمان‌های داده در ++C درس‌نامه
کتابخانه‌ها و توابع پرکاربرد ++C درس‌نامه
روش‌های دیگر خواندن ورودی در ++C درس‌نامه
پرکابردهای پایتون بخش اول درس‌نامه
پرکابردهای پایتون بخش دوم درس‌نامه
توضیحاتی در مورد شبه‌کدها درس‌نامه

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

مشاهده‌ی بیشتر

طراحان دوره

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

حمیدرضا کامکاری
دانشجوی مهندسی کامپیوتر دانشگاه صنعتی شریف

مدال طلای المپیاد کامپیوتر
مدرس برنامه‌نویسی و الگوریتم در مدارس برتر تهران و قزوین

کیوان رضایی
دانشجوی مهندسی کامپیوتر دانشگاه صنعتی شریف

مدال طلای کشوری و نقره‌ی جهانی المپیاد کامپیوتر
مدرس برنامه‌نویسی و الگوریتم در مدارس برتر تهران
دستیار آموزشی در دانشگاه صنعتی شریف

سید مهدی صادق شبیری
دانشجوی مهندسی کامپیوتر دانشگاه صنعتی شریف

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

محمدمهدی شکری
دانشجوی مهندسی کامپیوتر دانشگاه صنعتی شریف

مدیر محصول کوئرا کالج
مدال طلای المپیاد کامپیوتر و برنز جهانی ACM-ICPC
دستیار آموزشی دانشگاه صنعتی شریف و مدرس برنامه‌نویسی و الگوریتم از سال ۹۴

سؤالات متداول

مهلت ثبت نام در این دوره تا چه زمانی است؟

شما در هر زمانی که بخواهید می‌توانید در دوره ثبت‌نام و دوره را آغاز کنید.

پیش‌نیاز شرکت در دوره چیست؟

پیش‌نیاز این دوره، تسلط به مباحث مبانی برنامه‌نویسی است.
اگر هنوز به این مباحث مسلط نیستید، پیشنهاد می‌کنیم پیش از شروع این دوره، دوره‌ٔ «مبانی برنامه‌نویسی و تفکر الگوریتمی» را در حداقل یک زبان ++C یا Python بگذرانید.

برای شرکت در دوره باید در رشته دانشگاهی خاصی تحصیل کرده باشم؟

خیر؛ نیازی نیست!
اگر پیش‌نیاز دوره (تسلط به مبانی برنامه‌نویسی) را داشته باشید، می‌توانید در این دوره شرکت کنید.

من با برخی از مفاهیم دوره از قبل آشنایی داشتم؛ آیا این دوره به درد من هم می‌خورد؟

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

محتوای دوره در چه قالبی ارائه می‌شود؟

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

آیا محتوای دوره به صورت یکجا در اختیارم قرار می‌گیرد؟

خیر؛ برای آزاد شدن محتوای هر فصل، باید درصد مشخصی از فصل‌های قبل از آن را تکمیل کرده باشید.

تمرینات این دوره چگونه است؟

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

با چه زبان‌هایی می‌توانم دوره را بگذرانم؟

با هریک از زبان‌های

  • C
  • ++C
  • Python
  • Java
  • #C
  • PHP
  • Javascript
  • Node.js
  • Go
  • Ruby
  • Objective-C
  • Perl
  • Swift
  • Haskell
  • Rust
می‌توانید سوال‌های دوره را حل کرده و دوره را بگذرانید.

مربی‌گری دوره به چه صورت است؟

شما می‌توانید در هر کجای دوره که به مشکل خوردید، از طریق بخش پرسش و پاسخ («سوال خصوصی») آن را با مربی‌های دوره در میان بگذارید و مربی‌ها در اسرع وقت به شما کمک خواهند کرد.

تا چه زمانی برای به پایان رساندن دوره فرصت دارم؟ آیا این زمان قابل تمدید است؟

شما بعد از رسیدن به فصل «الگوریتم‌های استقرایی»، ۹۰ روز فرصت دارید تا دوره را به اتمام برسانید و بعد از اتمام دوره برای همیشه به تمام محتواهای دوره دسترسی خواهید داشت.
هم‌چنین اگر تا انتهای زمانِ گفته‌شده نتوانستید دوره را تمام کنید نگران نباشید، چون امکان تمدید دوره وجود دارد!

پس از اتمام دوره چه مهارت‌هایی کسب می‌کنم؟

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

بزن بریم!

در صورت وجود هرگونه سؤال یا ابهام با college@quera.org تماس بگیرید.

ثبت نام

از