Программирование: вводный курс

Фрагменты предисловия

В настоящее время обучение старшеклассников программированию (например, в рамках предмета «Основы информатики и вычислительной техники») стало нормой. Разумеется, в эпоху бурного развития информационных технологий наивно ожидать появления сколько-либо полного и стабильного учебника. В то же время потребность в учебнике есть, и немалая. Мы попытались хотя бы частично решить проблему, обобщив в предлагаемой книге наш опыт занятий программированием с учащимися математических классов московской школы N57.

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

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

Мы считаем, что нельзя обучать нескольким вещам одновременно — если изучается новый язык, то первые программы не должны вызывать алгоритмических сложностей, и наоборот, при изучении нетривиального алгоритма ученик должен свободно владеть синтаксисом языка. Вот почему мы начинаем изучение программирования с языка управления Роботом.

Идея начального курса программирования, основанного на управлении движущимся по плоскости объектом, не нова (в частности, использована С.Пейпертом в языке Лого); на мехмате МГУ с 1980 г. курс программирования (А.Г.Кушниренко) начинался с программ управления Роботом. Используемый нами набор команд Робота — это некоторое подмножество набора, предложенного А.Г.Кушниренко.

В предлагаемой нами системе подготовки программ для Робота содержится синтаксически ориентированный редактор.

Обучение программированию математически одаренных детей, на наш взгляд, не должно сводиться к изучению лишь одной «ветви» современного программирования — процедурным (алголоподобным) языкам. В качестве иллюстрации мы приводим функциональный язык RL, который был разработан С.А.Романенко для экспериментов с автоматическим преобразованием программ. Интерпретатор RL, прилагаемый к данной книге, написан Р. Авданиным и Д. Школьником.

Нам представляется полезным знакомить старшеклассников с основами математической логики при помощи программы моделирования схем из функциональных элементов, разработаной Р. Авданиным, А.Г.Коганом, А. Шенем, М.Вьюгиным и Е.Школьником.

Оглавление

Введение, или С чего начать?
Часть I. Поиграем?
Глава I. Игра в Робота
Правила игры
Робот. Команды и проверки
Условия. Образование новых команд
Программа и процедура
Раскраски
Лабиринты
Доказательства невозможности
Рекурсия
Определение. Рекурсивный аналог цикла
Решение задач
Доказательства рекурсивных программ
Рекурсия (продолжение)
Несколько примеров
Задачи для самостоятельного решения
Глава II. Игра в RL
Правила игры
Выражения
Программы и функции
Параметры. Значение терма при данных значениях параметров
Стандартные термы
Задачи и упражнения
Унарная арифметика
Бинарная арифметика
Разные задачи
Глава III. Игра в схемы
Правила игры
Общие определения
Стандартные схемы
Правила образования новых схем
Построение простейших схем
Несколько общих утверждений
Операции над числами
Часть II. Описания программ
Глава IV. Программа ROBOT
Глава V. Программа IRL
Глава VI. Программа SCHEME

© 2015 Sofarider Inc. All rights reserved. WordPress theme by Dameer DJ.