Алгоритмизация и программирование

Школьная информатика в России начиналась с алгоритмизации и программирования, как с основной темы курса. Эта тема изучалась и в безмашинном варианте, и с компьютерной поддержкой на БК и Yamaha — компьютерах, первыми появившимися в школах. Основным программным обеспечением данных компьютеров был встроенный язык программирования Бейсик. С развитием школьной информатики как самостоятельного предмета круг тем, рассматриваемых этим предметом, существенно расширился и алгоритмизация стала лишь одной из них, а относительно программирования в Стандарт основной школы включена фраза “Представление о программировании”. Полностью тема программирования включена лишь в Стандарт профильной школы.

Тем не менее в Примерной программе программированию уделено заметное место. Там указаны следующие темы для рассмотрения: языки программирования, их классификация; правила представления данных; правила записи основных операторов: ввода, вывода, присваивания, ветвления, цикла; правила записи программы; этапы разработки программы: алгоритмизация — кодирование — отладка — тестирование. В программу включен также большой объем практических работ по программированию. Вопросы по программированию входят практически в каждый экзаменационный билет по информатике для 11-го класса. Более 30% баллов ЕГЭ по информатике приходятся на вопросы по данной теме, а с учетом логики, включенной в последнем варианте стандарта в этот же раздел, — более 40%. А различные этапы Всероссийской олимпиады по информатике — от первого школьного этапа до пятого заключительного — фактически представляют собой олимпиады по алгоритмизации и программированию.

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

1) четко понять задачу, провести ее детализацию и формализацию;

2) проанализировать, к какому классу задач она относится, какими способами (алгоритмами) ее можно решить;

3) составить алгоритм решения задачи;

4) составить программу, реализующую этот алгоритм;

5) проверить, правильно ли программа работает, ту ли задачу она решает;

6) в случае обнаружения ошибки необходимо проделать все (или некоторые) вышеперечисленные действия заново с целью исправления ошибки.

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

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

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

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

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

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

Система статей раздела “Алгоритмизация и программирования”

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

Тема “Алгоритмизация и программирование” изучается на всех ступенях средней школы, но на разном уровне. В начальной школе происходит знакомство на интуитивном уровне с понятиями алгоритма, алгоритмических конструкций, основ алгебры логики. В качестве учебных задач рассматривают бытовые, игровые, сказочные алгоритмы.

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

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