برنامهنویسیهمسفر این مسیر: رُبی
آموزش برنامهنویسی به کودکان: از الگوریتم بیکامپیوتر تا پایتون
آخر این مسیر
ترکیبیات و منطق لازم برای مرحلهی اول کاغذی المپیاد کامپیوتر، و برنامهنویسی پایتون با الگوریتمهای پایه (جستجو، مرتبسازی، حریصانه، بازگشت، برنامهنویسی پویا و گراف) در آستانهی بخش نقرهی USACO.
۲۱ ایستگاه از ۳۰ آماده است
۳ فاز
در هر فاز چه یاد میگیرد
فاز ۱: کشف و بازی
ایستگاه ۱ تا ۱۰معمولاً پایهٔ چهارم و پنجم
الگوریتم بدون کامپیوتر، دستور و حلقه و شرط با ربات روی شبکه، مرتبسازی دستی، عددهای دودویی، منطق بولی، برنامهنویسی بلوکی در خود فکرستان، جستجو، و پشته و صف با معماهای بیبر (Bebras).
فاز ۲: اندازهگیری و کمیکردن
ایستگاه ۱۱ تا ۲۰معمولاً پایهٔ ششم و هفتم
پایتون از صفر (متغیر، شرط، حلقه، لیست، رشته و تابع)، شبیهسازی و جستجوی کامل به سبک USACO برنز، مرتبسازی و پیچیدگی زمانی، الگوریتم حریصانه، و ترکیبیات کاغذی مرحلهی اول المپیاد کامپیوتر.
فاز ۳: استدلال و اثبات
ایستگاه ۲۱ تا ۳۰معمولاً پایهٔ هشتم و نهم
جمع پیشوندی، الگوریتمهای عددی، دیکشنری و مجموعه، جستجوی دودویی، بازگشت و پسگرد، برنامهنویسی پویا، پیمایش گراف با BFS و DFS، ساختمانهای داده و بیتها؛ و در پایان مسابقهی آزمایشی در آستانهی بخش نقرهی USACO و مرحلهی دوم.
فرض ما حدود ۵ ایستگاه در هر سال تحصیلی است؛ یعنی هر ایستگاه در هر چهار مسیر روی هم حدود ۷ تا ۸ هفته، با جلسههای کوتاه و چند روز در هفته. با این سرعت ایستگاههای ۱ تا ۳۰ از پایهی چهارم تا پایان پایهی نهم طول میکشد. این فقط یک برنامهی پیشنهادی است: سرعت را مهارت کودک تعیین میکند، نه سن. هر ایستگاه آزمون پرش دارد؛ کودک میتواند از چیزی که بلد است رد شود یا هر جا لازم بود آهستهتر برود، و جا ماندن از این جدول هیچ اشکالی ندارد.
ایستگاه به ایستگاه
۳۰ ایستگاه برنامهنویسی
- ایستگاه ۱: الگوریتم بدون کامپیوترچطور به یک ربات یاد بدهیم لقمهٔ نان و پنیر و گردو درست کند؟ (و چرا همیشه خرابکاری میکند!)
- ایستگاه ۲: دنبالهٔ دستورها و ربات روی شبکهیکی از معروفترین «باگ»های کامپیوتر واقعاً یک حشره بود! باگهای امروز کجا قایم میشوند و چطور شکارشان کنیم؟
- ایستگاه ۳: تکرار و حلقهچرا کامپیوتر هیچوقت از تکرار خسته نمیشود؟
- ایستگاه ۴: شرط: اگر–آنگاهچراغ راهنمایی چطور «تصمیم» میگیرد سبز شود؟
- ایستگاه ۵: مرتبسازی دستی و مقایسهپستچیها هزاران نامه را چطور بهسرعت مرتب میکنند؟
- ایستگاه ۶: دودویی و نمایش اطلاعاتکامپیوتر فقط ۰ و ۱ میفهمد؛ پس عکسِ گربه را چطور نگه میدارد؟
- ایستگاه ۷: منطق بولیبا یک نوع جعبه، همهچیز؟ چطور میشود هر مداری را فقط با یک جور جعبه ساخت؟
- ایستگاه ۸: برنامهنویسی بلوکی: رویداد، حلقه و متغیریک بازی از کجا میفهمد سیب در سبد افتاد؟
- ایستگاه ۹: جستجو: بازی حدس عددچطور میشود با فقط ۲۰ سؤالِ بله/خیر یک نفر را بینِ یک میلیون نفر پیدا کرد؟
- ایستگاه ۱۰: پشته، صف و معماهای بیبراسدکمهی «برگشت» مرورگر چطور یادش میماند کجا بودهای؟
- ایستگاه ۱۱: پایتون: متغیر، ورودی و خروجیچرا اسمِ زبانِ پایتون از یک گروهِ کمدی آمده و نه از مار؟
- ایستگاه ۱۲: پایتون: شرط و حلقهکامپیوتر در یک ثانیه چند بار میتواند بشمارد: هزار؟ میلیون؟ میلیارد؟ در درسِ ۲ خودت اندازه میگیری.
- ایستگاه ۱۳: لیست و آرایهیک آهنگ در کامپیوتر در واقع یک لیستِ چند میلیونی از عددهاست! در درسِ ۱ میبینی چطور.
- ایستگاه ۱۴: شبیهسازی (سبک USACO Bronze)دانشمندان چطور آبوهوای فردا را با شبیهسازی پیشبینی میکنند؟ در درسِ ۱ میبینی.
- ایستگاه ۱۵: جستجوی کاملرمزِ قفلِ چهاررقمیِ دوچرخهات را فراموش کردهای. امتحانِ همهی رمزها چقدر طول میکشد؟
- ایستگاه ۱۶: رشتهها و پردازش متنتصحیح خودکار گوشی چطور میفهمد منظورت کدام کلمه بود؟
- ایستگاه ۱۷: تابع و تجزیهی مسئلهیک برنامهی بزرگ مثل یک بازی را صدها نفر چطور با هم مینویسند؟
- ایستگاه ۱۸: مرتبسازی و پیچیدگی زمانییک موتورِ جستجو در کسری از ثانیه میلیاردها صفحه را مرتب میکند؛ چطور؟
- ایستگاه ۱۹: الگوریتم حریصانهآیا همیشه برداشتن بزرگترین سکه کمترین تعداد سکه را میدهد؟
- ایستگاه ۲۰: ترکیبیات مرحلهی اول کامپیوتردر بازی برداشتن چوبکبریت، آیا نفر اول همیشه میتواند ببرد؟
- ایستگاه ۲۱: جمع پیشوندی و شبکههای دوبعدیچطور بفهمیم در یک عکس بزرگ، کدام مربع از همه روشنتر است — بدون هزاران بار جمع زدن؟
- ایستگاه ۲۲: الگوریتمهای عددیدر دست نوشتن
- ایستگاه ۲۳: دیکشنری و مجموعهدر دست نوشتن
- ایستگاه ۲۴: جستجوی دودویی روی جوابدر دست نوشتن
- ایستگاه ۲۵: بازگشت و پسگرددر دست نوشتن
- ایستگاه ۲۶: برنامهنویسی پویا مقدماتیدر دست نوشتن
- ایستگاه ۲۷: گراف: پیمایش BFS و DFSدر دست نوشتن
- ایستگاه ۲۸: ساختارهای دادهی کاربردیدر دست نوشتن
- ایستگاه ۲۹: بیتها و زیرمجموعههادر دست نوشتن
- ایستگاه ۳۰: جمعبندی و مسابقهی آزمایشی (دروازهی USACO Silver / مرحلهی دوم)در دست نوشتن
مسئله
ربات آشپز این کارت را گرفت: «چای بریز.» ربات حدس نمیزند. بیا کارت را قدمبهقدم دقیق کنیم.راهحل، قدمبهقدم
در درس، قدمها یکییکی باز میشوند و فرزندتان پیش از هر قدم خودش حدس میزند.
- قدم ۱: سؤال اول: «چه چیزی؟» چای را از کجا بریزد؟ مینویسیم: «از قوری».
- قدم ۲: سؤال دوم: «کجا؟» روی میز؟ در استکان؟ مینویسیم: «در استکانِ روی سینی».
- قدم ۳: سؤال سوم: «چقدر؟» اگر نگوییم، ربات آنقدر میریزد که استکان سر برود! مینویسیم: «تا نیمهٔ استکان».
- قدم ۴: کارت دقیق: «از قوری، چای را در استکانِ روی سینی بریز، تا نیمهٔ استکان.» حالا ربات فقط یک کار میتواند بکند.
- قدم ۵: راهش این بود: برای هر کارت بپرس «چه چیزی؟ کجا؟ چقدر؟». هر جوابی که کارت نگفته، جای حدس زدن است.
نقطههای راه
مسابقهها و آزمونهایی که سر راه است
معمولاً پایهٔ ششم
چالش بیبر (Bebras) برای تفکر محاسباتی
بیبر مسابقهای بینالمللی با سؤالهای کوتاه تفکر محاسباتی است که دانش برنامهنویسی لازم ندارد و گروههای سنی جدا دارد. نسخهی ایرانی آن در سالهای گذشته برگزار شده، ولی برگزاری منظمش را تأیید نکردیم؛ اگر برگزار نشد، سؤالهای سالهای قبل تمرین خوبی است. ایستگاه ۱۰ کامپیوتر برای همین سبک آماده میکند.
معمولاً پایهٔ هشتم
اولین مسابقهی USACO در بخش برنز
USACO مسابقهی آنلاین برنامهنویسی است که هر فصل چند دور، معمولاً از زمستان تا اوایل بهار، دارد و همه از بخش برنز شروع میکنند. شبیهسازی، جستجوی کامل، مرتبسازی، حریصانه و جمع پیشوندی (ایستگاههای ۱۴ تا ۲۱ کامپیوتر) همان ابزارهای بخش برنز است. شرایط شرکت دانشآموزان بیرون از آمریکا را هر سال از سایت رسمی بررسی کنید.
معمولاً پایهٔ دهم
مرحلهی اول المپیادهای علمی کشور
طبق اطلاعیههای سال ۱۴۰۴–۱۴۰۵ که در سایتهای آموزشی بازنشر شده، دانشآموزان پایهی دهم و یازدهم میتوانند در مرحلهی اول ثبتنام کنند؛ پس پایهی دهم معمولاً اولین فرصت است و پایهی یازدهم فرصت دوم. ثبتنام معمولاً در پاییز انجام میشود. مرحلهی اول کامپیوتر کاغذی است و برنامهنویسی ندارد. شرایط و زمان هر سال را فقط از اطلاعیهی رسمی همان سال بگیرید.
روش یادگیری
فکرستان چطور کار میکند
هر ایستگاه چند درس کوتاه است. درس با یک پرسش شروع میشود؛ فرزندتان با یک شبیهساز یا معما خودش امتحان میکند، بعد یک مثال حلشده را قدمبهقدم میبیند، تمرین میکند و دلیلش را توضیح میدهد. هر جا گیر کند، راهنمای چهارپلهای با یک اشاره شروع میکند، نه با جواب. اگر چیزی را از قبل بلد باشد، با یک آزمون کوتاه از آن میگذرد؛ مرورهای کوتاهِ چند روز بعد آموختهها را تازه نگه میدارند. سرعت را تسلط تعیین میکند، نه سن. فکرستان تبلیغ و ردیاب ندارد و شما هرچه فرزندتان میبیند، میبینید.
شروع با فکرستان
حساب را پدر یا مادر میسازد و رضایتش را همانجا ثبت میکند. فرزندتان با نام مستعار وارد میشود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا میشود.