"Программирование для математиков", А.Г. Кушниренко, Г.В. Лебедев

  "Программирование: вводный курс", Р. Авданин, А. Суханов, В. Хименко, В. Школьник

Оригинальные (16-битные) версии программ:   Робот   RL   Scheme

32-битная версия:   RL

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

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

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

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

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

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

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

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

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

  "Программирование: теоремы и задачи", А. Шень