«Программирование для начинающих» + теория вероятностей

Интересное дело: любой видео-курс по программированию, от PHP до Java, включает в себя главу для начинающих — чаще всего в ней рассказывается об азах структурного программирования: переменных, ветвлениях и циклах.

Поэтому мы решили раз и навсегда решить эту проблему — и сняли курс «Программирование для начинающих», который поможет самым новичкам понять и разобраться с этими базовыми понятиями, а также попробовать их в деле. Курс построен как серия видео-уроков на примере применения теории вероятностей (чтоб интереснее было).

Видео-анонс курса:

В одном из первых видео объясняется, зачем вообще учиться программировать: вокруг всего так много только благодаря массовому производству, конвееру и автоматизации. Поэтому если мы не рабы, чтобы повторять тупую и нудную работу, то нужно учиться программировать — про это ещё Лейбниц сказал в XVII веке, только другими словами.

Курс сделан под язык JavaScript (как равноправного члена языков Си-семейства), и основы работы с ним студенты получают прямо в консоли браузера — удобно, ибо не надо ничего устанавливать.

Конечно, студенты этого курса не только постигнут теорию структурного программирования — им нужно дать пример какого-то простого проекта на закрепление полученных знаний.

Если вы думаете, что в это легко — взять и придумать пример проекта, когда из инструментария у тебя только переменные, условия и циклы, то это не совсем так. Вот что бы вы предложили? Учтите, что почти любое приложение предполагает ввод данных в той или иной форме — а этого мы решили в курсе не касаться. Так что ни тебе форм ввода, ни чтения из файла, ни запросов к базе данных.

Поэтому задачу придумали такую — сгенерировать беспроигрышную стратегию для игры в «Камень-ножницы-бумага», тогда за источник данных можно взять генератор случайных чисел. Если верить Википедии и университетскому курсу по теории вероятностей, то если при игре в «Камень-ножницы-бумагу» делать случайные ходы и играть очень много раз, то результат будет близок к ничьей (можете проверить на этом роботе).

Немножко скриншотов из курса


Переменные мы решили объяснять на яблоках. "У вас есть 2 яблока. Некто взял у вас одно яблоко...", — говорит девочка с голубыми волосами. Эту простую задачу мы и взяли для того, чтобы проиллюстрировать факт, что у переменной есть постоянное имя и изменяемое значение. Переменные из повседневной жизни: курс доллара, цена барреля нефти, моя зарплата, сегодняшнее число, и т.д.

Условия тоже интуитивно понятны. «Красной — стой, зелёный — иди» — светофор как пример логики ветвления.
2cce052729b4411bb6658e230f405a45.png
Рисунок 1 — условие

Вот циклы могут быть понятны не всем. Хоть это и операция, требующая повторения тех же действий, но опыта программирования циклов у студентов нет. Поэтому подробно рассматриваются идеи счёта итераций и того, что случится, если цикл гонять бесконечно.
a145ec46ab3d430c86698f239fe039be.png
Рисунок 2 — цикл

Итог программы визуально выглядит вот так (заодно и разобрались, что такое Unicodе-символы, и использовали их на практике):
8dacf2892acb44dca613f9be09603e06.png
Рисунок 3 — программа генерации стратегии в «Камень-ножницы-бумага»

Надеюсь, мы не зря старались, и курс вам понравится!

Подписывайтесь на наши обновления — скоро будет анонс ещё нескольких интересностей, посерьёзнее.

© Megamozg