«Программирование для начинающих» + теория вероятностей
Интересное дело: любой видео-курс по программированию, от PHP до Java, включает в себя главу для начинающих — чаще всего в ней рассказывается об азах структурного программирования: переменных, ветвлениях и циклах.
Поэтому мы решили раз и навсегда решить эту проблему — и сняли курс «Программирование для начинающих», который поможет самым новичкам понять и разобраться с этими базовыми понятиями, а также попробовать их в деле. Курс построен как серия видео-уроков на примере применения теории вероятностей (чтоб интереснее было).
Видео-анонс курса:
В одном из первых видео объясняется, зачем вообще учиться программировать: вокруг всего так много только благодаря массовому производству, конвееру и автоматизации. Поэтому если мы не рабы, чтобы повторять тупую и нудную работу, то нужно учиться программировать — про это ещё Лейбниц сказал в XVII веке, только другими словами.
Курс сделан под язык JavaScript (как равноправного члена языков Си-семейства), и основы работы с ним студенты получают прямо в консоли браузера — удобно, ибо не надо ничего устанавливать.
Конечно, студенты этого курса не только постигнут теорию структурного программирования — им нужно дать пример какого-то простого проекта на закрепление полученных знаний.
Если вы думаете, что в это легко — взять и придумать пример проекта, когда из инструментария у тебя только переменные, условия и циклы, то это не совсем так. Вот что бы вы предложили? Учтите, что почти любое приложение предполагает ввод данных в той или иной форме — а этого мы решили в курсе не касаться. Так что ни тебе форм ввода, ни чтения из файла, ни запросов к базе данных.
Поэтому задачу придумали такую — сгенерировать беспроигрышную стратегию для игры в «Камень-ножницы-бумага», тогда за источник данных можно взять генератор случайных чисел. Если верить Википедии и университетскому курсу по теории вероятностей, то если при игре в «Камень-ножницы-бумагу» делать случайные ходы и играть очень много раз, то результат будет близок к ничьей (можете проверить на этом роботе).
Немножко скриншотов из курса
Переменные мы решили объяснять на яблоках. "У вас есть 2 яблока. Некто взял у вас одно яблоко...", — говорит девочка с голубыми волосами. Эту простую задачу мы и взяли для того, чтобы проиллюстрировать факт, что у переменной есть постоянное имя и изменяемое значение. Переменные из повседневной жизни: курс доллара, цена барреля нефти, моя зарплата, сегодняшнее число, и т.д.
Условия тоже интуитивно понятны. «Красной — стой, зелёный — иди» — светофор как пример логики ветвления.
Рисунок 1 — условие
Вот циклы могут быть понятны не всем. Хоть это и операция, требующая повторения тех же действий, но опыта программирования циклов у студентов нет. Поэтому подробно рассматриваются идеи счёта итераций и того, что случится, если цикл гонять бесконечно.
Рисунок 2 — цикл
Итог программы визуально выглядит вот так (заодно и разобрались, что такое Unicodе-символы, и использовали их на практике):
Рисунок 3 — программа генерации стратегии в «Камень-ножницы-бумага»
Надеюсь, мы не зря старались, и курс вам понравится!
Подписывайтесь на наши обновления — скоро будет анонс ещё нескольких интересностей, посерьёзнее.
© Megamozg