Информатика и программирование. Информатика. Основы алгоритмизации и программирования. Разрабатываем программную структуру

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

Так называется комплексная техническая наука, задача которой - систематизация приёмов создания, обработки, передачи, сохранения и воспроизведения данных с использованием Также к ней относят принципы функционирования и методы управления, которые помогают достичь цели. Сам термин «информатика» имеет французское происхождения и является гибридом слова «информация» и «автоматика». Возник он благодаря разработке и распространению новых технологий сбора, обработки и передачи данных, которые были связаны с их фиксацией на машинных носителях. Вот какое происхождение имеет информатика. Основы алгоритмизации и программирования являются одним из самых важных направлений данной науки.

Чем она занимается?

Перед информатикой стоят такие задачи:

  1. Аппаратная и программная поддержка вычислительной техники.
  2. Средства обеспечения взаимодействия человека и компьютерных составляющих между собой.

Для обозначения технической части часто применяется термин «интерфейс». Вот перед нами произвольная программа. Основы алгоритмизации и программирования всегда используются при создании продуктов массового распространения, которые «должны» завоевать широкую аудиторию. Ведь для популярности разрабатываемое приложение должно оптимально работать и выглядеть.

Представление алгоритмов

Они могут быть записаны значительным количеством способов. Наиболее популярными являются следующие:

  1. Словесно-формульное описание. Подразумевается размещение текста и конкретных формул, которые будут объяснять особенности взаимодействия во всех отдельных случаях.
  2. Блок-схема. Подразумевается наличие графических символов, которые дают возможность понять особенности взаимодействия программы внутри себя и с другими приложениями или аппаратной составляющей компьютера. Каждый из них может отвечать за отдельную функцию, процедуру или формулу.
  3. Подразумевается создание отдельных способов описания под конкретные случаи, которые показывают особенности и очередность выполнения задач.
  4. Операторные схемы. Подразумевается создание прототипа - в нем будет показано взаимодействие на основании путей, которые пройдут отдельные операнды.

Псевдокод. Набросок костяка программы.

Запись алгоритма

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

  1. У каждого алгоритма должно быть своё имя, которое объясняет его смысл.
  2. Обязательно следует позаботиться о присутствии начала и конца.
  3. Должны описываться входные и выходные данные.
  4. Следует указать команды, с помощью которых будут выполняться определённые действия над конкретной информацией.

Способы записи

Представлений алгоритма может быть целых пять. Но вот способов записи всего лишь два:

  1. Формально-словесный. Он характеризуется тем, что описание производится главным образом с использованием формул и слов. Содержание, а также последовательность выполнения этапов алгоритма в этом случае записывается на естественном профессиональном языке в произвольной форме.
  2. Графический. Наиболее распространен. Для него используются блочные символы или схемы алгоритмов. Связь между ними показывается с помощью специальных линий.

Разрабатываем программную структуру

Можно выделить три основных вида:

  1. Линейный. При этой структуре все действия выполняют последовательно в порядке очереди и всего один раз. Схема выглядит как последовательность блоков, расположенных сверху вниз, в зависимости от порядка их выполнения. Получаемые первичные и промежуточные данные не могут повлиять на направление вычислительного процесса.
  2. Ветвящийся. Нашел широкое применение на практике, при решении сложных задач. Так, если необходимо принимать во внимание первоначальные условия или промежуточные результаты, то необходимые вычисления выполняются в соответствии с ними и направление вычислительного процесса может меняться в зависимости от получаемого результата.

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

Программирование

Важным является на котором будут создаваться программы. Следует учесть, что многие из них «заточены» под конкретные условия работы (например, в браузере). В целом языки программирования делят на две группы:

  1. Функциональные.
  2. Операторные:

Не процедурные;

Процедурные.

Можете предположить, какие из них чаще всего применяются? Операторно-процедурные - вот ответ. Они могут быть ориентированы на машины или независимыми. К первым относят ассемблеры, автокоды, символическое кодирование. Независимые делят, основываясь на их ориентации:

  • процедурные;
  • проблемные;
  • объектные.

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

Заключение

При работе с алгоритмами (а в последующем и с программами) следует стремиться продумать все детали до самой мелкой. В последующем выявление каждого непроработанного участка кода приведёт только к дополнительным работам, увеличению затрат на разработку и сроков выполнения задачи. Тщательное планирование и проработка всех нюансов позволит значительно сэкономить время, усилия и деньги. Что ж, сейчас могут сказать, что после прочтения данной статьи у вас есть понятие про основы алгоритмизации и программирования. Осталось только применить эти знания. Если есть желание изучить тему более детально, могу посоветовать книгу «Основы алгоритмизации и программирования» (Семакин, Шестаков) 2012 года.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ

Н.В.Комлева, а.А. Смирнов информатика и программирование Учебное пособие

Москва, 2006 год

Комлева Н.В., Смирнов А.А. Информатика и программирование: Учебное пособие /Московский государственный университет экономики, статистики и информатики.-М.,2006.-

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

Пособие предназначено для студентов следующих специальностей:

-«Менеджмент», «Менеджмент организаций», «Управление персоналом», «Коммерция», «Маркетинг», «Мировая экономика», «Антикризисное управление», «Бухгалтерский учет, анализ и аудит», «Финансы и кредит», «Лингвистика», «Налоги и налогообложение», «Психология».

1. Информатика.

1.2. Измерение и представление информации.

1.3. Технические средства реализации информационных процессов.

1.4. Программные средства реализации информационных процессов.

1.5. Технологии программирования.

2. Алгоритмизация процессов обработки данных.

2.1. Основные понятия и определения.

2.2. Средства изображения алгоритмов.

2.3. Характеристика и классификация данных.

3. Основные конструкции языка программирования Pascal.

3.1. Основные элементы программы на языке Pascal.

3.2. Операторы языка.

3.3. Условный оператор и его применение для организации ветвлений.

3.4. Управление ветвлениями с помощью оператора Case.

3.5. Организация циклических процессов.

3.6. Оператор цикла со счетчиком.

3.7. Обработка символьной информации.

3.8. Организация выполнения программы в среде DELPHI.

4. Программная обработка структурных типов.

4.1. Организация информации в виде массивов.

4.2. Программная обработка информации, представленной в виде записей.

4.3. Особенности обработки экономической информации, организованной в виде массива записей.

4.4.Представление экономической информации в виде множества.

5. Модульное программирование.

5.1. Opганизация модульной структуры программы.

5.2. Использование процедур

5.3. Использование функций

5.4. Процедуры и функции без параметров.

5.5. Организация внешних модулей.

6. Литература и INTRNET-ресурсы

7. Глоссарий

1. Информатика.

1.1. Информация и информатизация общества.

Термин информация происходит от латинского слова “Informatio”, что означает разъяснение, осведомление, изложение. Информатика рассматривает информацию как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира. Наряду с информацией в информатике часто употребляется понятие данные. Данные могут рассматриваться как признаки или записанные наблюдения, которые в данный момент не используются, но хранятся. В том случае, если данные начинают использоваться, то данные превращаются в информацию.

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

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

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

Во-первых, технические средства (hardware);

Во-вторых, программные средства (software);

В-третьих, алгоритмические средства (brainware).

Характерно, что информатику, как в широком смысле, так и в узком смысле можно рассматривать с различных позиций:

Во-первых, как отрасль народного хозяйства;

Во-вторых, как фундаментальную науку;

В-третьих, как прикладную дисциплину.

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

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

  • Перевод

Разработка программного обеспечения как будто в худшую сторону отличается от других дисциплин информатики.

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

А теперь я работаю с разработкой ПО, и это невыносимо скользкая тема. Ни одна концепция точно не определена. Результаты оцениваются с характеристиками «обычно» или «в целом». Сегодняшние исследования могут или не могут помочь завтрашней работе. Новые подходы часто опровергают предыдущие методы, а сами ярко горят недолгое время, а потом выходят из моды, когда всплывают их ограничения. Мы верили в структурное программирование. Затем начали верить в языки четвёртого поколения, потом в объектно-ориентированные методы, потом в экстремальное программирование, а теперь, может быть, в open source.

Но программирование - это именно то место, где происходит контакт шины с асфальтом. Мало кого волнует, действительно ли равняется , чисто ради красоты вопроса. Компьютерная область имеет дело с компьютерами. Это написание программ для решения реальных человеческих проблем и работа этих программ на реальных машинах. Согласно тезису Чёрча-Тюринга , всё компьютерное оборудование по существу эквивалентно. Так что пока компьютерная архитектура классная, реальным ограничением в информатике остаётся проблема создания программного обеспечения. Нам нужны программы, которые можно собрать за разумное время и за разумную стоимость, которые работают примерно так, как планировали дизайнеры, и работают без ошибок.

Имея такую цель, я всегда был озабочен одним вопросом (как и многие другие исследователи): почему программисты не могут получить более строгие результаты, как в других областях информатики? Если спросить иначе, «Какую часть архитектуры и конструкции программ можно сделать формальной и доказумой?» Ответ на этот вопрос находится на рисунке 1.


Рисунок 1: Яркая линия в информатике

Темы выше этой линии принадлежат к разработке программного обеспечения. Области исследования ниже этой линии - основные предметы информатики. У последних есть ясные, формальные результаты. Для открытых проблем в этой области мы ожидаем получения новых результатов, которые будут формально сформулированы. Эти темы основаны друг на друге: криптография на сложности, а компиляторы на алгоритмах, например. Более того, мы верим, что доказанные результаты в этих областях останутся таковыми и через 100 лет.

Так что это за яркая линия, и почему ниже неё нет ни одной из тем программирования? Линия - это качество под названием «прямое человеческое участие». У разработки ПО есть такое качество, а у традиционной информатики его нет. Результаты из дисциплин ниже линии могут быть использованы людьми, но эти результаты напрямую не подвержены влиянию людей.

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

То же самое с безопасностью. Исследователи использовали некоторые формальные методы, чтобы узнать влияние программной системы на здоровье и собственность людей. Но никакая дискуссия о безопасности программ не может считаться завершённой без обращения к человеческому компоненту изучаемой системы. Аналогично для разработки требований. Мы можем разработать любые техники опроса, чтобы добиться от заинтересованных сторон точных требований, и можем создать различные системы для их записи. Но никакой объём исследований в этой области не изменит того факта, что сбор требований часто предусматривает разговор или наблюдение за людьми. Иногда эти люди сообщают нам правильную информацию, а иногда - нет. Иногда люди лгут, возможно, по уважительным причинам. Иногда люди честно пытаются передать правильную информацию, но не могут этого сделать.

Это наблюдение приводит к Тезису Коннелла:

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


Это экстра-математическое утверждение о границах формальных систем. Я не имею никаких доказательств за или против. Но факт в том, что человеческие проблемы остаются центральными вопросами разработки программного обеспечения:
  • Что должна делать эта программа? (требования, юзабилити, безопасность)
  • Как должна выглядеть программа внутри, чтобы её легко было починить и модифицировать? (архитектура, дизайн, масштабируемость, переносимость, расширяемость)
  • Как долго займёт её написание? (оценка)
  • Как мы должны её разрабатывать? (кодирование, тестирование, измерение, конфигурация)
  • Как следует эффективно организовать работу команды? (менеджмент, процесс, документация)
Все эти проблемы вращаются вокруг людей.

Мой тезис объясняет, почему разработка ПО настолько трудная и такая скользкая. Проверенные методы одной команды программистов не работают для других команд. Исчерпывающий анализ прошлых проектов может быть бесполезен для хорошей оценки следующего. Каждый из революционных инструментов разработки помогает по чуть-чуть, а затем не соответствует своим великим обещаниям. Причина в том, что люди слишком мягкие, разочаровывающие и непредсказуемые.

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

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


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

Статистические результаты в программировании уже опровергают этот тезис.


Эти методы в целом решают проблему оценки и включают в себя Function Point Counting, COCOMO II , PROBE и другие. Несмотря на свой математический вид, эти методы не являются доказательствами или формальными результатами. Такая статистика - просто попытка квантифицировать субъективный человеческий опыт по прошлым софтверным проектам и экстраполировать его на будущие проекты. Иногда работает. Но внешне строгие формулы в этих схемах - это свинья с губной помадой, если использовать современное выражение. Например, одна из формул в COCOMO II выглядит так: , где , а - это набор из пяти факторов масштабирования , таких как «гибкость разработки» и «сплочённость команды». Сама формула выглядит строго, но в ней доминирует показатель, составленный из человеческих факторов.

Формальные процессы разработки, такие как метод «чистой комнаты», постепенно находят строгие, доказуемые методы. Они поднимают яркую линию, чтобы перенести под неё ранее размытые темы.


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

Вопреки этим возражениям я заявляю, что разработка ПО по существу отличается от традиционной, формальной информатики. Первая зависит от людей, а вторая - нет. Это приводит нас к Заключению Коннелла:

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


Например, Дэвид Парнас в 1972 году написал замечательную научную статью «О критериях разложения системы на модули ». Она описывает простой эксперимент, который Парнас провёл с альтернативными стратегиями дизайна ПО, одна с сокрытием информации, а другая с глобальной видимостью данных. Затем на основе этого маленького эксперимента он вывел несколько заключений и привёл рекомендации. Ничего в статье не является доказанным, и Парнас не гарантирует, что следуя рекомендациям каждый получит аналогичный результат. Но статья содержит мудрые советы и сильно повлияла на популярность объектно-ориентированных языков программирования.

Другой пример - это огромная работа Института программной инженерии в Университете Карнеги - Меллон, известная как CMMI . CMMI начиналась как модель процесса разработки ПО, а теперь разрослась и включила в себя также другие типы проектов. Объём CMMI примерно 1000 страниц - не считая примеров, интерпретаций и обучающих материалов - и она представляет более 1000 человеко-лет работы. Многие крупные организации использовали её и добились значительного прогресса в своих процессах разработки ПО и продуктах. Но в CMMI нет ни единого твёрдо доказанного результата. Это просто набор (хорошо проработанных) предложений, как организовать софтверный проект на основе методов, которые были эффективны для других организаций в прошлом. На самом деле Институт программной инженерии констатирует, что CMMI - это даже не процесс, а скорее мета-процесс, детали которого заполняются каждой организацией.

Другие области исследований в том же духе - это паттерны дизайна, стили архитектуры, рефакторинг на основе сомнительных методов, гибкая методология разработки и визуализация данных. Эти дисциплины могут частично содержать проверенные результаты, но в целом нацелены на системы, которые изначально содержат человеческое участие. Чтобы внести ясность: ключевые темы информатики (ниже яркой линии) - жизненно важные инструменты для любого разработчика. Знания алгоритмов важны при проектировании высокопроизводительных приложений. Теория массового обслуживания помогает проектировать ядро операционной системы. Методология «чистой комнаты» тоже полезна в некоторых ситуациях. Анализ статистики может пригодиться при планировании похожих проектов с похожей группой участников. Но формализм - это просто необходимое, а не достаточное условие для хорошей разработки. Давайте для примера рассмотрим строительство и архитектуру (то есть дома и здания).

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

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

Выражение признательности
Благодарю Стива Гомера за дискуссию, которая разожгла мой интерес к этому вопросу.

Пособие содержит изложение основных понятий в сфере информатики и основ программирования, а также практические примеры.
Пособие предназначено для студентов следующих специальностей: - «Менеджмент», «Менеджмент организаций», «Управление персоналом», «Коммерция», «Маркетинг», «Мировая экономика», «Антикризисное управление», «Бухгалтерский учет, анализ и аудит», «Финансы и кредит», «Лингвистика», «Налоги и налогообложение», «Психология».

Под информатикой в широком смысле понимается совокупность разнообразных отраслей науки, техники и производства, связанных с переработкой информации. В узком смысле информатику можно представить как совокупность следующих взаимосвязанных частей:
1) технические средства (hardware);
2) программные средства (software);
3) алгоритмические средства (brainware).
Характерно, что информатику как в широком, так и в узком смысле можно рассматривать с различных позиций:
- как отрасль народного хозяйства;
- как фундаментальную науку;
- как прикладную дисциплину.
Термин «информация» происходит от латинского слова «Informatio», что означает разъяснение, осведомление, изложение. Информатика рассматривает информацию как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира. Наряду с информацией в информатике часто употребляется понятие данные. Данные могут рассматриваться как признаки или записанные наблюдения, которые в данный момент не используются, но хранятся. Когда данные начинают использоваться, они превращаются в информацию.

Оглавление
Сведения об авторах 5
1. Информатика 7
1.1. Информация и информатизация общества 8
1.2. Измерение и представление информации 9
1.3. Технические средства реализации информационных процессов 10
1.4. Программные средства реализации информационных процессов 14
1.5. Технологии программирования 15
2. Алгоритмизация процессов обработки данных 21
2.1. Основные понятия и определения 22
2.2. Средства изображения алгоритмов 23
2.3. Характеристика и классификация данных 24
3. Основные конструкции языка программирования Pascal 29
3.1. Основные элементы программы на языке Pascal 30
3.2. Операторы языка 32
3.3. Условный оператор и его применение для организации ветвлении 34
3.4. Управление ветвлениями с помощью оператора Case 35
3.5. Организация циклических процессов 37
3.6. Обработка символьной информации 41
3.7. Организация выполнения программы в среде DELPHI 43
4. Программная обработка структурных типов 49
4.1. Организация информации в виде массивов 50
4.2. Организация информации в виде записей 52
4.3. Организация информации в виде множества 55
4.4. Особенности обработки экономической информации, организованной в виде массива записей 58
5. Модульное программирование 65
5.1 Организация модульной структуры программы 66
5.2. Использование процедур 68
5.3. Использование функций 72
5.4. Процедуры и функции без параметров 77
5.5. Организация внешних модулей 80
Темы лабораторный работ 89
Глоссарий 90
Список рекомендуемой литература 94

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Информатика и программирование, Комлева Н.В., Смирнов А.А., Хрипков Д.В., 2008 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.

Основными задачами обучения информатике в средней школе можно считать следующие:

  • развитие интереса учащихся к изучению новых информационных технологий и программирования;
  • изучение фундаментальных основ современной информатики;
  • формирование самостоятельности и творческого подхода к решению задач с помощью средств современной вычислительной техники;;
  • формирование навыков алгоритмического мышления;
  • приобретение навыков работы с современным программным обеспечением.

В современных условиях программа курса должна, по мнению автора, удовлетворять следующим основным требованиям:

  • обеспечивать знакомство с фундаментальными понятиями информатики и вычислительной техники на доступном уровне
  • иметь практическую направленность с ориентацией на реальные потребности , соответствующие возрасту ученика;
  • изучение материала должно строиться по принципу спирали (в каждом классе изучаются те же базовые разделы, но на более высоком уровне);
  • должна охватывать как алгоритмическое направление, так и вопросы практического применения компьютеров, то есть, курс ОИВТ должен быть интегрированным ;
  • необходима ориентация на существующий парк вычислительной техники и дополнительные ограничения (в частности, в приведенной ниже программе количество теоретических и практических занятий примерно одинаково, причем они чередуются);
  • допускать возможность варьирования в зависимости от уровня подготовки и интеллектуального уровня учащихся (как группового, так и индивидуального);
  • предусматривать возможность индивидуальной работы с учащимися, чей уровень подготовки отличается от среднего по классу.

Ни одна из программ, предлагаемых Министерством образования РФ (Программы общеобразовательных учреждений. Информатика, М: Просвещение, 2000 ), не удовлетворяет этим требованиям. Это обстоятельство вынудило автора составить свою собственную программу, которая (с ежегодными естественными модификациями) реализуется в 163 школе с 1991-1992 учебного года.

Курс предназначен для классов с углубленным изучением информатики и предусматривает (кроме обязательного базового курса)

  • изучение принципов хранения и обработки данных в компьютерах;
  • глубокое изучение программирования на различных алгоритмических языках, принципов выбора языка программирования для решения конкретной задачи;
  • изучение структуры и принципов работы различных операционных систем, взаимосвязи программных и аппаратных средств;
  • изучение стандартных алгоритмов и численных методов решения задач;
  • знакомство с современными методами программирования (включая основы объектно-ориентированного подхода);
  • овладение практическими навыками программирования в виде выполнения индивидуальных проектов.

На изучение курса отводится 510 часов (1 час в неделю в 5 классе, по 2 часа в неделю в 6-9 классах и по 3 часа в неделю в 10-11 классах). В старших классах дополнительное время на разработку собственных проектов учащимися обеспечивается за счет индивидуальных, факультативных и кружковых занятий. В программе курса предусмотрено примерно равное количество часов, отведенных на теоретические и практические занятия.

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

Основы информатики

Программирование

Наиболее плодотворной идеей в методике преподавания алгоритмизации является идея перехода от математических объектов и алгоритмов к исполнителям . В предлагаемом курсе для записи алгоритмов используется оригинальный алгоритмический язык, основу которого составляют конструкции языка Си . Синтаксис языка Си был дополнен командами конкретных исполнителей - Черепаха , Робот и Чертежник , а также оператором цикла повтори (repeat ), заимствованным из языка LOGO . Освоение основных алгоритмических конструкций на примерах управления исполнителем дает возможность избежать излишней математизации предмета. Более того, использование исполнителей облегчает восприятие учениками основных алгоритмических конструкций и позволяет изучать их с 5-6 класса.

Компьютерные технологии

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

Результативность

Литература

  1. Шауцукова Л.З. Информатика 10-11 кл. М.: Просвещение, 2002.
  2. Пейперт С. Переворот в сознании: дети, компьютеры и плодотворные идеи. - М.: Педагогика, 1989.
  3. Звенигородский Г.А. Первые уроки программирования (Б-ка "Квант", вып. 41).
  4. Дуванов А., Зайдельман Я., Первин Ю., Гольцман М. Роботландия - курс информатики для младших школьников // Информатика и образование", 1988 - № 1, 5; 1989 - № 4, 5; 1990 - № 1, 2, 3, 4, 6; 1991 - № 1, 4, 5, 6.
  5. Кушниренко А.Г., Лебедев Г. В., Сворень Р.А. Основы информатики и вычислительной техники. - М.: Просвещение, 1991.
  6. Н. Вирт. Алгоритмы и структуры данных. М: Мир, 1989.
  7. Учебник Информатика 9 кл. под ред. Макаровой Н. В. - СПб.: Питер, 1999.
  8. Угринович Н. Информатика и информационные технологии - М.: БИНОМ. Лаборатория знаний, 2003.