Общие положения
Главная задача учебного курса - дать учащимся базовые знания по общей практической информатике, алгоритмам и программированию так, чтобы в дальнейшем они могли расти и развиваться в этих направлениях сами.
Соответственно, одна из основных задач - научить основам программирования и алгоритмического мышления на примере языка RUbasic. При этом надо понимать, что изучать нужно не языки программирования, а само программирование: алгоритмы, формализацию и постановку задач и т.п., а записать в полученный алгоритм виде программы в принципе можно на любом языке программирования, язык - это всего лишь инструмент и к моменту завершения курса учащиеся должны владеть несколькими языками программирования.
Однако, начинать, особенно для детей 6-8 лет, лучше даже не с RUbasic, а со Scratch. Scratch является простой игровой визуальной средой программирования объектов (моделирования их поведения), полностью переведённой на русский язык, позволяющей создавать простые игры, мультипликации и решать некоторые другие задачи по программированию на начальном уровне.
На самом первом этапе обучения очень важно научить детей пониманию, что такое программирование на самом деле. Задача преподавателя - дать детям возможность разобраться, что в программировании нет и не может быть никакой "магии": просто есть какой-то объект (любой: например, кружок или квадратик), и мы этим объектом можем управлять в каких-то пределах: узнавать и изменять его свойства (размер, цвет, форму...), заставлять его двигаться в соответствии с теми командами, которые мы ему дадим и т.п.
Затем, для повторения одинаковых команд мы начинаем использовать циклы. На следующем этапе мы вносим в алгоритм элементы анализа - пытаемся научить программу "думать" и "принимать решения" с помощью операторов условного перехода и условного цикла. Затем появляются многозадачность: параллельные потоки, события, передача сообщений - то есть, реализуется понимание полноценной объектной модели. Главная задача на начальном этапе - формирование "интуитивного" алгоритмического мышления: восприятие задач с точки зрения последовательности действий для их решения.
На это все с использованием Scratch нужно около 2 лет. Меньше, как правило, не получается, потому что слишком велик объем задач и информации, которые нужно очень хорошо уложить в голове, но и не больше, иначе учебный процесс превратится просто в игру, и развитие обучающегося остановится.
В принципе, начинать обучение на Scratch можно в 6-7 лет, а затем переходить на RUbasic - в 8-9 лет. Сразу начинать писать программы на RUbasic конечно можно, но для детей это будет скучно и не слишком понятно. Однако, если дети (или не дети) начинают изучать программирование в возрасте 10-12 лет или позже, то можно сразу начинать обучение с RUbasic.
И еще один очень важный момент: если возможно включение в общий учебный курс курса робототехники - это замечательно. Это очень просто реализовать при использовании RUbasic с наборами Lego EV3, потому что поддержка контроллеров EV3 включена в стандартный набор библиотек RUbasic. Курс робототехники можно начинать не раньше чем через год-два после начала изучения RUbasic, и, желательно, не раньше 10-летнего возраста.
Продолжить обучение, особенно в плане адаптации к современным англоязычным языкам программирования лучше всего на MS Small Basic. MS Small Basic родственен языку RUbasic и переход происходит максимально комфортно и безболезненно. Главное - при переходе не теряется время на возврат назад - к основам нового языка: можно продолжать выполнять свои проекты, используя фактически англоязычный аналог языка RUbasic. При удержании заданных темпов роста такой переход возможен в 12-14 лет.
В дальнейшем (в 16-18 лет) создаются все условия для перехода учащихся к программированию на современных "рабочих" языках программирования C и C++. После изучения этих языков у учащегося появляется широкий выбор подобных языков программирования, в которых он в состоянии ориентироваться, и которые ему не придется начинать изучать "с нуля". Это такие языки как C#, Objective C, PHP, Java, JavaScript, ActionScript, D, Scala, Nemerle и многие другие. Программы на этих языках он сможет читать, понимать, модифицировать и также, создавать самостоятельно. Фактически на этом этапе учащийся уже сможет самостоятельно перейти практически на любой язык программирования, который будет наиболее подходящим для решения поставленной задачи. Хочется заметить, что к этому моменту учащийся уже превратится в полноценного инженера-программиста (но ни в коем случае ни в "кодера"), который в дальнейшем сможет расти и развиваться полностью самостоятельно.
Структура учебного курса
- Введение в программирование.
Понимание машины как исполнителя команд. Арифметика (математика - основа IT). - Алгоритмы и программы.
Что такое алгоритм. Простейшие алгоритмы. Алгоритмы в жизни. - Что такое язык программирования.
Типы языков. Текстовое программирование. Понятие команды(оператора) в языке программирования. - Данные программ. Константы.
Типы данных. Типы констант. Примеры записи. - Интерфейсы программ.
Ввод-вывод в различных интерфейсах. Простейший консольный интерфейс. - Вывод в программах.
Операторы вывода. Что и как можно выводить в консоль. Примеры вывода констант. - Комментарии.
Зачем нужны комментарии. Примеры использования. - Операции.
Арифметические операции. Текстовые операции. Вывод результатов. - Алгоритм программы как последовательность команд.
Закрепление предыдущих тем. Примеры построения алгоритмов решения задач. - Блок-схема алгоритма.
Элементы блок-схем. Составление блок-схем алгоритмов для решения задач. - Тестирование алгоритмов и программ.
Инструменты и методы тестирования. - Понятие перехода.
Безусловный переход. Алгоритмы с переходами. - Понятие переменной.
Типы переменных. Объявление переменных. - Оператор присваивания.
Присваивание значений и результатов операций. Использование переменных в коде программ. - Ошибки программ.
Типы ошибок. Способы поиска ошибок и отладки. - Повторение команд. Циклы.
Простейший цикл со счетчиком. - Проверка условий.
Простейший условный оператор. - Циклы с условием.
- Сложные алгоритмические структуры.
Блоки. Вложения. Блок-схемы алгоритмических структур - Логические операторы.
Сложные условия. Условный оператор с альтернативой. Вложения уловных операторов. - Сложные алгоритмические структуры.
Закрепление предыдущих тем. Примеры сочетания алгоритмических структур. - Функции и их применение.
Для чего нужны функции. Библиотечные (стандартные) функции. - Ввод-вывод.
Стандартные функции ввода-вывода. Примеры использования. - Создание функций.
Структура описания функций. Параметры функций. Возвращаемые значения. - Самостоятельное решение задач.
Шаги для решения задачи (понимание, формализация, алгоритмизация, оптимизация, кодирование, тестирование, исправление ошибок).
Этого или подобного ему плана стоит придерживаться в начале изучения дисциплины "Программирование".
Дополнения
На начальном этапе обязательно использовать следующий пошаговый переход:
- алгоритм
- построчные комментарии - текстовая пошаговая запись алгоритма
- код, соответствующий пошаговой записи алгоритма
Это позволяет учащимся легче воспринимать "превращение" словесного описания алгоритма в программный код. Подробно данная методика описана здесь: https://rubasic.ru/uchebnaya-metodika-kommentarij-algoritm/
Кстати, очень неплохо в процессе объяснения также показать учащимся, на каких элементарных операциях построены все элементы языка программирования:
- арифметика
- проверка условий
- переходы
Поделиться: