Курс "Программирование на С++" лаборатории робототехники Политеха

Один из самых "профессиональных", глубоких и интересных курсов в лаборатории освещающий современное программирование от самых основ до сложных оконных приложений и управления роботами на платформе Arduino.

Сегодня считается, что программирование — один из фундаментальных навыков, которым должен владеть человек в информационную эру. Дело даже не в том, что умение программировать открывает дорогу к бесчисленному множеству высокооплачиваемых вакансий в России и мире в самых различных областях, а в том, что умение мыслить последовательно, строить алгоритмы и анализировать сложные системы значительно упрощает жизнь в современном мире.

Чаще всего считается, что изучение программирования стоит начинать с учебных языков, таких как Pascal или Basic, а уже в ВУЗе, студентами, ребята получат навыки работы с реальными промышленными языками. В итоге, ребятам предлагаются стандартные примитивные задачи, аналогия которых с реальными приложениями прослеживается слабо.

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

os.png

С самого первого занятия мы используем промышленные технологии и стараемся преподнести их максимально интересно и понятно. Мы изначально программируем на С\С++ — одном из самых широко известных на данный момент языков программирования, во многом благодаря своей универсальности: он используются, как для программирования микроконтроллеров, так и для создания оконных приложений любой сложности.

В рамках первой половины курса мы учим строить алгоритмы и применять их к компьютерам и роботам на платформе Arduino. Начиная с нуля за полгода мы научимся собирать и программировать роботов на платформе Ардуино, реализовывать рекурсивные алгоритмы для работы с графами и т.п.

Без имени-1.png

В рамках второй половины мы сосредотачиваемся на объектно-ориентированном программировании(ООП), принципах работы операционной системы и оконных приложений. Мы начинаем с азов ООП, применяя полученные знания на реальных примерах: работа с графикой, обработка звука, система слежения за пользователем и читы к компьютерным играм (например, для Cookie Clicker).

В рамках курса подробно изучается библиотека Qt, позволяющая писать программы под большинство операционных систем, в том числе и мобильных (Android). Также в течении курса затрагивается язык C#, что в последствии позволит писать компьютерные игры на различных игровых движках (Unity).

Untitled.png

Программируя на С++, ребята с одной стороны получат глубокое представление о том, как работают компьютеры и роботы на низком уровне, а с другой получат возможность писать кросс-платформенные оконные приложения любой сложности. При необходимости, после прохождения курса учащиеся смогут самостоятельно быстро осваивать любые другие языки программирования.

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

Общий тематический план курса:

Часть 1: “Программирование на С++ 1”, 24 занятия:

  • Базовые принципы работы компьютера

  • Составление алгоритмов в виде блок-схем

  • Языки программирования, их классификация и различия

  • Переменные, ветвление, циклы

  • Платформа Arduino, работа с сенсорами и моторами

  • Различные алгоритмы для роботов: движение по линии, обход препятствий, поиск пути в лабиринте

  • Функции и рекурсивные алгоритмы

  • Массивы и алгоритмы их сортировки

  • Многомерные массивы

  • Работа с файлами

  • Графы, способы их хранения и обхода

Часть 2: “Программирование на С++ 2”, 24 занятия:

  • Классы и объекты: свойства, методы, конструктор, деструктор, перегрузка операторов

  • Кодирование и обработка изображений и звука в компьютере на низком уровне

  • Принципы ООП: инкапсуляция, наследование, полиморфизм

  • Структуры данных: вектор, список, стэк, очередь

  • Библиотека Qt: слоты и сигналы, оконные приложения

  • Графические приложения на Qt

  • Работа с сетью и базами данных

  • Программирование под Android

  • Основы языка C#, принципы работы.NET, использование Windows Forms

Как известно, чтобы курс был результативным, он должен оцениваться: в рамках курса на каждом занятии выдается домашнее задание для закрепления материалов занятия, в конце каждой части курс сдается зачет.

Во второй половине курса учащиеся при желании могут заниматься проектной деятельностью.