Министерство образования и науки Российской Федерации
Государственное образовательное учреждение
Высшего профессионального образования
«Рязанский государственный университет имени С.А. Есенина»
УТВЕРЖДАЮ:
Проректор по учебно-методической работе
профессор В.В. Страхов
____________________
«____»___________2011 г.
Рабочая программа дисциплины
Информатика и программирование
Направление подготовки
Математическое обеспечение и администрирование
Информационных систем
Профиль подготовки
Администрирование информационных систем
Квалификация (степень) выпускника
Бакалавр
Форма обучения
Очная
Рязань 2011
ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Цели освоения дисциплины “Информатика и программирование” соответствуют общим целям ООП ВПО по направлению подготовки “Математическое обеспечение и администрирование информационных систем”, которые определяются видами профессиональной деятельности бакалавра по данному направлению. В частности, целями являются:
· систематизация, формализация и расширение знаний по основам информатики, приобретенные в школе;
· привитие навыков алгоритмического мышления, культуры алгоритмизации и нисходящего структурного программирования;
· формирование теоретической базы и практических умений и навыков для решения задач на компьютере в императивных СП.
Дисциплина формирует основы логического и алгоритмического мышления, умения разработки алгоритма решения задачи и базовые навыки современной культуры программирования.
МЕСТО ДИСЦИПЛИНЫВ СТРУКТУРЕ ООП БАКАЛАВРИАТА
Дисциплина “Информатика и программирование” относится к базовой части цикла дисциплин “Фундаментальная математика и естественнонаучный цикл”.
Для успешного освоения дисциплины студент должен иметь компетенции, формирование которых предусмотрено ООП среднего (полного) общего образования или среднего профессионального образования.
Освоение данной дисциплины необходимо как предшествующее в первую очередь для дисциплин “Объектно-ориентированные языки и системы”, “Архитектура вычислительных систем и компьютерных сетей”, “Операционные системы и оболочки”, а также для большинства дисциплин профессионального цикла.
КОМПЕТЕНЦИИ ОБУЧАЮЩЕГОСЯ, ФОРМИРУЕМЫЕ В РЕЗУЛЬТАТЕ
ОСВОЕНИЯ ДИСЦИПЛИНЫ
В соответствии с ФГОС ВПО и ООП ВПО по направлению подготовки “Математическое обеспечение и администрирование информационных систем” в процессе освоения дисциплины студентом формируются и демонстрируются следующие компетенции:
· работа в команде (ОК2);
- способность применять знания на практике (ОК5);
- способность учиться (ОК7);
- способность адаптироваться к новым ситуациям (ОК8);
- умение находить, анализировать и контекстно обрабатывать научно-техническую информацию (ОК9);
- фундаментальная подготовка по основам профессиональных знаний (ОК10);
- владеет основными методами, способами и средствами получения, хранения, переработки информации, имеет навыки работы с компьютером как средством управления информацией (ОК12);
- базовые знания в различных областях (ОК13);
- определение общих форм, закономерностей, инструментальных средств для данной дисциплины (ПК1);
- умение понять поставленную задачу (ПК2);
- самостоятельное построение алгоритма и его анализ (ПК11);
- знать проблемы современной информатики, ее категории и связи с другими научными дисциплинами (ПК20);
- знать содержание, основные этапы и тенденции развития программирования, математического обеспечения и информационных технологий (ПК21).
В результате освоения дисциплины обучающийся должен демонстрировать следующие результаты образования.
ЗНАТЬ:
· понятие предмет и задачи исследования информатики как науки (ОК9, ОК13, ПК1, ПК20);
· понятие сущность и значение информации в развитии современного информационного общества (ОК9, ПК1, ПК20);
· этапы решения задачи на компьютере (ОК5, ОК10, ОК12, ОК13, ПК1);
· понятие алгоритма и его основные свойства (ОК9, ОК10, ОК13, ПК1, ПК11);
· основные понятия алгоритмической системы: представление информации в виде данных, система команд исполнителя, алгоритмический язык исполнителя (ОК9, ОК10, ОК13, ПК1, ПК11);
· основные средства записи и типы алгоритмов (ОК9, ОК10, ОК13, ПК1, ПК11);
· основные парадигмы программирования (ОК9, ОК10, ОК13, ПК1, ПК21);
· номенклатуру языков программирования различного уровня и их возможности (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· составные части алгоритмического языка программирования (алфавит, синтаксис, семантика) и способы их описания (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· концепцию типов данных (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· структуру программы на императивном языке программирования (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· основные понятия императивных алгоритмических языков программирования и их классификацию: идентификаторы, данные и их типы, операции, стандартные функции, выражения, операторы (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· цели и составные части концепции нисходящего структурного проектирования алгоритмов и программ (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· алгоритмические структуры, их основные свойства и приемы использования (ОК5, ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· синтаксис и семантику основных операторов императивных языков программирования Бейсик, Паскаль и Си (присваивания, ввода-вывода, ветвления, циклов), способы реализации алгоритмических структур средствами языков программирования (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· особенности ввода с клавиатуры и вывода на монитор в императивных СП на основе языков Бейсик, Паскаль и Си (ОК5, ОК9, ОК12, ПК1, ПК21);
· основные синтаксические конструкции, используемые в языках программирования Бейсик, Паскаль и Си для описания и обработки данных типа массив (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· прием “флаг” и уметь применять его при решении учебных задач (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· понятие алгоритмического модуля и его свойства (ОК9, ОК10, ОК12, ОК13, ПК1, ПК11);
· принципы выделения и правила записи алгоритмических модулей (ОК9, ОК10, ОК12, ОК13, ПК1, ПК11);
· семантику вызова алгоритмического модуля, в том числе, рекурсивного вызова, и механизмы реализации межмодульного интерфейса (ОК9, ОК10, ОК12, ОК13, ПК1, ПК11);
· синтаксис и семантику реализации алгоритмического модуля средствами языков Бейсик, Паскаль и Си (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· способы передачи параметров (ОК5, ОК9, ОК12, ОК10, ОК13, ПК1, ПК21);
· синтаксис типов запись с фиксированными полями, указатель и типизированный файл в языке Паскаль (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· синтаксис типов структура, указатель и файл в языке Си (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· понятия статического и динамического объекта программы на языках Паскаль и Си (ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· синтаксис и семантику основных средств управления использованием динамической памятью в языках Паскаль и Си (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
· структуру данных файл и основные действия с файлами последовательного доступа (ОК5, ОК9, ОК10, ОК12, ОК13, ПК1, ПК21);
· синтаксис и семантику основных средств обработки файлов в СП Turbo-Pascal и Turbo-C++ и последовательность их использования для организации ввода и вывода (ОК5, ОК9, ОК12, ОК13, ПК1, ПК21);
УМЕТЬ:
· принимать ту роль в группе, команде, которую ему отводят (ОК2);
· делится информацией и опытом с членами группы, команды (ОК2);
· организовывать самостоятельную познавательную деятельность: планировать свое личное время, ставить цели и достигать их, осуществлять самоанализ, самооценку своей образовательной деятельности (ОК7, ОК8);
· интегрировать новую информацию в уже имеющуюся личностную систему знаний (ОК7, ОК9);
· находить, анализировать и контекстно обрабатывать научно-техническую информацию (ОК8, ОК9);
· записывать алгоритмы с помощью блок-схем (ОК5, ОК10, ОК13, ПК1, ПК11);
· описывать алфавит и основные синтаксические конструкции языков с помощью нормальных форм Бэкуса-Наура (ОК10, ОК13, ПК1, ПК21);
· разрабатывать и записывать алгоритмы и программы в соответствие с принципом структурности (ОК5, ОК8, ОК10, ОК12, ПК1, ПК2, ПК11, ПК21);
· анализировать структуру алгоритмов (ОК10, ПК11);
· при решении учебной задачи конкретизировать и описать основные понятия, данные и их типы, уметь организовать ввод и вывод, реализовать алгоритмические структуры средствами, по крайней мере, трех императивных языков программирования (ОК5, ОК8, ОК10, ОК12, ПК1, ПК2, ПК11, ПК21);
· составлять алгоритмы и программы обработки массивов (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21);
· составлять алгоритмы и программы обработки строк (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21);
· решать учебные задачи в соответствие с принципом модульности (ОК5, ОК8, ОК10, ОК12, ПК1, ПК2, ПК11, ПК21);
· разрабатывать и использовать библиотеку пользователя в СП Turbo-Pascal и Turbo-C++ (ОК5, ОК8, ОК12, ПК1, ПК21);
· составлять простейшие алгоритмы и программымоделирования движения графического изображения (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21);
· использовать тип указатель для организации односвязного списка, очереди и стека (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21);
· решать учебные задачи по обработке данных типа запись, структура, файл и линейных динамических структур данных средствами систем программирования (СП) Turbo-Pascal и Turbo-C++ (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21).
ВЛАДЕТЬ:
· основными методами, способами и средствами переработки информации на основе парадигмы императивного программирования (ОК5, ОК12, ПК2, ПК11, ПК21);
· навыками проектирования, ввода, отладки и тестирования программ в средах, по крайней мере, трех императивных систем программирования (ОК5, ОК8, ОК12, ПК1, ПК2, ПК11, ПК21).
СТРУКТУРА И СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Общая трудоемкость дисциплины составляет 18 зачетных единиц 576 часов.
№ п/п | Дисциплина | Семестр | Число недель | Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) аттестации (по семестрам) | Формы текущего контроля успеваемости (по неделям семестра) Формы промежуточной аттестации (по семестрам) | |||
Информатика и программирование | 1, 2, 3 | Л | ЛР | ПЗ | СР | Текущий контроль: 2 неделя – защита ЛР №1 4 неделя – защита ЛР №2 6 неделя – защита ЛР №3 8 неделя – КР №1 9 неделя – защита ЛР №4 11 неделя – защита ЛР №5 14 неделя – защита ЛР №6 17 неделя – КР №2 18 неделя – защита ЛР №7 20 неделя – защита ЛР №8 22 неделя – КР №3 23 неделя – защита ЛР №9 25 неделя – защита ЛР №10 28 неделя – защита ЛР №11 30 неделя – защита ЛР №12 31 неделя – КР №4 32 неделя – защита ЛР №13 36 неделя – защита ЛР №14 37 неделя – защита ЛР №15 39 неделя – защита ЛР №16 40 неделя – защита ЛР №17 41 неделя – защита ЛР №18 42 неделя – КР №5 43 неделя – защита ЛР №19 45 неделя – защита ЛР №20 47 неделя – защита ЛР №21 49 неделя – защита ЛР №22 51 неделя – защита ЛР №23 54 неделя – защита ЛР №24 Формы промежуточной аттестации: 1 семестр – зачет 2 семестр – экзамен 3 семестр – экзамен | ||
Л – лекции, ПЗ – практические занятия, ЛР – лабораторные работы; СР – самостоятельная работа студента, КР- контрольная работа.
№ п/п | Темы, разделы дисциплины | Кол-во часов | Компетенции | |
л/лр/пз/ср | Коды компетенций | общее кол-во компетенций | ||
1 семестр (18/72/0/90) | ||||
Информатика как наука и как вид практической деятельности | 2/0/0/4 | ОК9, ОК10, ОК13, ПК1, ПК20 | ||
Алгоритмическая система и ее составные части | 0/0/0/2 | ОК9, ОК10, ОК13, ПК1, ПК11 | ||
Основные понятия и простейшие средства алгоритмических языков программирования | 2/4/0/6 | ОК2, ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Концепция нисходящего структурного проектирования. Разработка разветвляющихся алгоритмов и программ в соответствии с принципом структурности | 4/16/0/20 | ОК2, ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Разработка циклических алгоритмов и программ в соответствии с принципом структурности | 3/24/0/22 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Ввод с клавиатуры и вывод на монитор средствами алгоритмических языков | 1/12/0/12 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Структурированный тип данных массив | 6/16/0/24 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
2 семестр (36/72/0/108) | ||||
Символьный и строковый типы данных | 6/20/0/26 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Разработка алгоритмов в соответствии с принципом модульности | 2/8/0/10 | ОК2, ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Реализация принципа модульности средствами алгоритмических языков программирования | 10/20/0/30 | ОК2, ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Обзор графических возможностей систем программирования (СП) Qbasic и Turbo-Pascal | 2/8/0/10 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Структурированный тип данных запись | 4/4/0/8 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 |
Тип данных указатель | 8/8/0/16 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Структурированный тип данных файл | 4/4/0/8 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
3 семестр (18/72/0/90) | ||||
Парадигмы программирования | 1/0/0/1 | ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК21 | ||
Общая характеристика языков программирования семейства Си | 1/2/0/3 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК21 | ||
Разработка разветвляющихся алгоритмов и программ в СП Turbo-C++ | 2/10/0/12 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Разработка циклических алгоритмов и программ в СП Turbo-C++ | 2/8/0/10 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Ввод с клавиатуры и вывод на монитор средствами С++ | 1/8/0/9 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Массивы в языке Си | 2/8/0/10 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Строки в языке Си | 2/8/0/10 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Реализация принципа модульности средствами языка Си | 3/16/0/19 | ОК5, ОК7, ОК8, ОК9, ОК10, ОК12, ОК13, ПК1, ПК2, ПК11, ПК21 | ||
Тип данных структура | 1/4/0/5 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Динамические переменные в языках семейства Си | 2/6/0/8 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 | ||
Тип файл в СП Turbo-C++ | 1/2/0/3 | ОК5, ОК7, ОК8, ОК9, ОК12, ПК1, ПК2, ПК11, ПК21 |
Содержание разделов дисциплины
1. Информатика как наука и как вид практической деятельности. История информатики, место информатики в системе наук. Теоретическая и прикладная информатика. Технические средства реализации информационных процессов. Принципы фон Неймана как основа структуры современного компьютера. Позиционные системы счисления. Представление в компьютере целых чисел. Представление в компьютере действительных чисел. Программные средства реализации информационных процессов. Алгоритмизация и программирование как составные части информатики. Основные этапы компьютерного решения задач.
2. Алгоритмическая система и ее составные части. Алгоритмическая система как совокупность средств и понятий. Понятие алгоритма и исполнителя алгоритма. Представление информации в виде данных: понятие о вводе/выводе; входные, выходные и промежуточные данные. Система команд исполнителя. Константы, переменные, операции, функции и выражения. Понятие типа данных. Алгоритмический язык исполнителя. Средства записи алгоритмов. Блок-схемы алгоритмов.
3. Основные понятия и простейшие средства алгоритмических языков программирования. Программирование как этап решения задачи на компьютере. Понятие языка программирования высокого уровня. Составные части языка высокого уровня: алфавит, синтаксис, семантика. Метаязыки описания конструкций языков программирования. Расширенные Бэкуса-Наура формы, примеры метаформул. Структуры программ и концепции типов данных в алгоритмических языках на примере языков Qbasic и Turbo-Pascal. Оператор как логически завершенная конструкция алгоритмического языка программирования. Различные классификации операторов: исполняемые и неисполняемые, простые и составные. Различные классификации типов данных: простые и структурированные, стандартные и определяемые пользователем. Основные простые типы данных в языках Qbasic и Pascal (кроме логического): идентификаторы стандартных типов, диапазоны, операции и функции, синтаксис типа диапазон. Особенности целочисленной и действительной арифметики в СП Qbasic и Turbo-Pascal. Синтаксис разделов программы на языке Turbo-Pascal, понятие порядкового типа в языке Pascal. Синтаксис и семантика оператора присваивания, знакомство с операторами ввода/вывода в языках Qbasic и Pascal. Общая характеристика императивных СП Qbasic и Turbo-Pascal: основное меню, окна редактирования и результатов выполнения программы, диалоговые окна, встроенная система помощи. Написание, ввод, отладка и выполнение программ линейной структуры в СП Qbasic и Turbo-Pascal.
4. Концепция нисходящего структурного проектирования. Разработка разветвляющихся алгоритмов и программ в соответствии с принципом структурности. Цели и составные части концепции нисходящего структурного проектирования. Взаимосвязь принципов нисходящего проектирования, модульности и структурности. Алгоритмические структуры как основа структурного кодирования. Базовые алгоритмические структуры: следование и развилка. Вложение (суперпозиция) алгоритмических структур как основной прием принципа структурности. Присоединение алгоритмических структур. Правила пунктуации в программах на алгоритмическом языке. Составной оператор в языке Pascal. Логический тип данных в алгоритмических языках Qbasic и Pascal. Операции отношения и логические операции. Алгоритмические структуры, реализующие ветвления. Организация ветвлений средствами алгоритмических языков: синтаксис и семантика строчного и блочного условных операторов в Qbasic, условного оператора в Pascal, операторов выбора в языках Qbasic и Pascal. Понятие о приеме программирования “флаг”. Примеры алгоритмов и программ разветвляющейся структуры. Разработка блок-схем алгоритмов разветвляющейся структуры. Написание, ввод, отладка и выполнение программ разветвляющейся структуры в СП Qbasic и Turbo-Pascal.
5. Разработка циклических алгоритмов и программ в соответствии с принципом структурности. Базовая алгоритмическая структура цикл с предусловием. Цикл с постусловием. Проблема зацикливания. Цикл с параметром. Синтаксис и семантика операторов циклов в языках Qbasic и Pascal. Особенности системной организации циклов с параметром в СП Qbasic и Turbo-Pascal. Рекомендации по программированию циклов. Примеры циклических алгоритмов и программ. Разработка блок-схем алгоритмов циклической структуры. Написание, ввод, отладка и выполнение программ циклической структуры в СП Qbasic и Turbo-Pascal.
6. Ввод с клавиатуры и вывод на монитор средствами алгоритмических языков. Понятие о текстовом режиме монитора, текущее положение курсора. Синтаксис и семантика операторов ввода с клавиатуры в СП Qbasic и Turbo-Pascal. Особенности ввода с клавиатуры символьной и строковой информации в СП Turbo-Pascal. Общая характеристика операторов вывода на монитор в императивных алгоритмических СП. Синтаксис оператора PRINT в Qbasic. Организация слитного и зонального вывода средствами оператора PRINT, примеры. Особенности вывода значений числового и строкового типа. Организация форматированного вывода средствами оператора PRINT USING в Qbasic: синтаксис, символы форматирования, основные форматы для вывода значений строкового и числового типа, семантика. Синтаксис и семантика оператора вывода на монитор в СП Turbo-Pascal. Понятие о библиотеках СП Turbo-Pascal. Форматированный вывод текстовой и числовой информации на монитор в СП Turbo-Pascal. Диалоговые программы. Дружественность интерфейса с пользователем. Примеры организации форматированного вывода на монитор. Разработка блок-схем алгоритмов, написание, ввод, отладка и выполнение программ с форматированным выводом на монитор в СП Qbasic и Turbo-Pascal.
7. Структурированный тип данных массив. Синтаксис и семантика оператора резервирования памяти в Qbasic, примеры. Особенности распределения памяти в СП Qbasic. Синтаксис определения типа массив в языке Pascal. Рекомендации по описанию переменной типа массив и понятие полной совместимости типов в языке Pascal, примеры. Использование переменной типа массив в операторе присваивания. Элемент массива (переменная с индексами). Основные алгоритмы и программы обработки числовых массивов: поиск максимума (минимума), поиск элементов с заданными свойствами, сортировка методом пузырька, модифицированный алгоритм сортировки методом пузырька. Примеры алгоритмов и программ обработки массивов, в том числе с использованием приема “флаг”. Разработка блок-схем алгоритмов обработки массивов. Написание, ввод, отладка и выполнение программ обработки массивов в СП Qbasic и Turbo-Pascal.
8. Символьный и строковый типы данных. Стандартный идентификатор строкового типа в языках Qbasic и Pascal. Строковый тип в языке Pascal как массив символов. Операция конкатенации в Qbasic и Turbo-Pascal. Синтаксис и семантика функции MID$ и оператора MID$. Функции и процедуры для работы со строками в языке Turbo-Pascal. Примеры алгоритмов и программ обработки данных строкового типа. Написание, ввод, отладка и выполнение программ обработки строк в СП Qbasic и Turbo-Pascal.
9. Разработка алгоритмов в соответствии с принципом модульности. Понятие алгоритмического модуля, его свойства и правила выделения. Концепция “черного ящика”. Правила записи алгоритмического модуля: спецификация и тело модуля. Входные и выходные формальные параметры. Блок вызова алгоритмического модуля. Фактические параметры. Семантика вызова алгоритмического модуля и механизм реализации межмодульного интерфейса. Понятие рекурсии. Семантика рекурсивного вызова. Примеры простейших алгоритмов, составленных в соответствии с принципом модульности. Разработка блок-схем алгоритмов в соответствии с принципом модульности.
10. Реализация принципа модульности средствами алгоритмических языков программирования. Способы записи алгоритмического модуля средствами алгоритмических языков программирования: процедуры и функции. Синтаксис процедуры, синтаксис и семантика оператора процедуры в языке Qbasic. Способы передачи параметров значением и ссылкой. Синтаксис процедуры, синтаксис и семантика оператора процедуры в языке Pascal. Параметры значения и параметры переменные. Рекомендации по выбору способа передачи параметров. Примеры простейших программ, составленных в соответствии с принципом модульности. Синтаксис функции в языках Qbasic и Pascal. Рекомендации по использованию функций в императивных СП Qbasic и Turbo-Pascal. Примеры простейших программ с использованием функций пользователя. Синтаксис процедурного типа в языке Pascal. Рекомендации по использованию процедурного типа для решения задач: параметры процедуры и параметры функции. Пример алгоритма и программы решения задачи с использованием процедурного типа. Примеры алгоритма и программ решения задачи рекурсивной природы. Понятие о библиотеке СП Turbo-Pascal. Обзор стандартных модулей. Синтаксис раздела модулей программы и особенности трансляции процедур и функций модуля СП Turbo-Pascal. Синтаксис модуля пользователя и рекомендации по организации библиотеки пользователя в СП Turbo-Pascal. Длинная целочисленная арифметика. Примеры программ сложения и вычитания натуральных чисел с числом рарядов больше десяти. Написание, ввод, отладка и выполнение программ в соответствии с принципом модульности в СП Qbasic и Turbo-Pascal.
11. Обзор графических возможностей СП Qbasic и Turbo-Pascal. Понятие о графическом режиме монитора, текущее положение графического курсора. Операторы установки параметров окна результатов и задания текущего цвета изображения в языке Qbasic. Обзор стандартных средств языка Qbasic для изображения графических примитивов: точек, отрезков, прямоугольников, окружностей и эллипсов, дуг окружностей и эллипсов. Операторы стандартных процедур модуля Graph библиотеки СП Turbo-Pascal для определения подходящего графического драйвера, инициализации и прекращения графического режима и задания текущего цвета изображения. Обзор стандартных процедур модуля Graph для изображения графических примитивов: точек, отрезков, прямоугольников, окружностей и эллипсов, дуг окружностей и эллипсов. Простейший алгоритм моделирования движения графического изображения (анимация). Написание, ввод, отладка и выполнение программ моделирования движения графического изображения в соответствии с принципом модульности в СП Qbasic и Turbo-Pascal.
12. Структурированный тип данных запись. Синтакис типа запись с фиксированными полями в языке Pascal. Рекомендации по описанию переменной типа запись, примеры. Использование переменной типа запись в операторе присваивания. Селектор записи (переменная с точкой). Синтаксис оператора присоединения. Примеры алгоритмов и программ обработки данных типа запись. Разработка блок-схем алгоритмов обработки данных типа запись. Написание, ввод, отладка и выполнение программ обработки данных типа запись в соответствии с принципом модульности в СП Turbo-Pascal
13. Тип данных указатель. Понятия статических и динамических объектов программы на языке Паскаль. Синтаксис типа указатель (ссылочный тип) в языке Pascal. Рекомендации по описанию переменной типа указатель, примеры. Синтаксис и семантика оператора резервирования (захвата) памяти под динамическую переменную в языке Pascal, примеры. Использование переменной типа указатель в операторе присваивания и в выражениях отношения с операциями = и <>. Динамическая переменная (переменная с крышкой). Синтаксис и семантика освобождения области памяти динамической переменной в языке Pascal. Понятие динамических структур данных. Использование типа указатель для организации динамического односвязного списка по принципам ссылки вперед и ссылки назад. Примеры алгоритмов и программ создания динамических односвязных списков. Алгоритмы вставки (добавления), удаления и поиска элемента динамического односвязного списка. Структуры данных на основе односвязных списков: очередь и стек. Рекомендации по созданию и обработке динамических структур данных очередь и стек с примерами фрагментов алгоритмов и программ. Разработка блок-схем алгоритмов создания и обработки динамических структур данных. Написание, ввод, отладка и выполнение программ создания и обработки динамических структур данных в соответствии с принципом модульности в СП Turbo-Pascal.
14. Структурированный тип данных файл. Понятие файла, файлы данных различного доступа. Основные действия с файлами данных последовательного доступа: запись (вывод в файл) и чтение (ввод из файла). Обзор файловых типов данных в языке Pascal, синтаксис типизированного файлового типа. Рекомендации по описанию переменной типа файл, примеры. Синтаксис и семантика основных операторов для работы с типизированными файлами данных в СП Turbo-Pascal: связь файловой переменной с файлом на внешнем устройстве, открытие файла для записи и чтения, вывод в файл и ввод из файла, закрытие файла. Функция конец типизированного файла. Рекомендации по корректной обработке типизированных файлов с примерами фрагментов алгоритмов и программ. Разработка блок-схем алгоритмов создания и обработки типизированных файлов. Написание, ввод, отладка и выполнение программ создания и обработки типизированных файлов в соответствии с принципом модульности в СП Turbo-Pascal.
15. Парадигмы программирования. Основные парадигмы программирования: императивная, событийно-управляемая (объектно-ориентированная и параллельная), декларативная (функциональная и логическая). Архитектура и возможности семейства языков высокого уровня.
16. Общая характеристика языков программирования семейства Си. Особенности языков программирования семейства Си. Структура простейшей программы на языке Си: раздел препроцессора и раздел функций. Синтаксис разделов программы, составной оператор. Понятие о библиотеке языка Си. Трансляция программ в СП (СП) семейства Си. Основные простые типы данных в языке Си: идентификаторы типов, модификаторы типов, диапазоны значений, синтаксис и семантика оператора резервирования памяти, инициализация переменных, операции и функции, преобразование типов. Некоторые особенности операций языка Си: перегрузка операции деления, операция присваивания и возможные варианты записи выражений с использованием операции присваивания, операции инкремента и декремента в префиксной и постфиксной форме, операции взятия адреса и содержимое по указанному адресу. Знакомство с операторами потокового ввода/вывода. Общая характеристика императивной СП Turbo-C++: основное меню, окна редактирования и результатов выполнения программы, диалоговые окна, встроенная система помощи.
17. Разработка разветвляющихся алгоритмов и программ в СП Turbo-C++. Интерпретация данных целого типа как данных логического типа в языке Си. Операции отношения и логические операции. Организация развилок средствами языка Си: синтаксис и семантика условных оператора и операции. Операция запятая. Примеры организации развилок средствами Си. Синтаксис и семантика оператора переключателя. Организация посредством переключателя структуры выбор, пример. Разработка блок-схем алгоритмов разветвляющейся структуры. Написание, ввод, отладка и выполнение программ разветвляющейся структуры в СП Turbo-C++.
18. Разработка циклических алгоритмов и программ в СП Turbo-C++. Синтаксис и семантика операторов циклов в языке Си: циклы с предусловием и постусловием, цикл for. Особенности системной организации цикла for в СП Turbo-C++. Рекомендации по программированию циклов. Примеры циклических алгоритмов и программ. Разработка блок-схем алгоритмов циклической структуры. Написание, ввод, отладка и выполнение программ циклической структуры в СП Turbo-C++.
19. Ввод с клавиатуры и вывод на монитор средствами С++. Синтаксис и семантика операторов потокового ввода/вывода. Манипуляторы. Примеры организации потокового ввода/вывода. Синтаксис и семантика функций форматированного ввода/вывода. Синтаксис формата ввода, символы преобразования и модификаторы. Примеры организации форматированного ввода. Синтаксис формата вывода, управляющие символы. Примеры организации форматированного вывода. Написание, ввод, отладка и выполнение программ с форматированным выводом на монитор в СП Turbo-C++.
20. Массивы в языке Си. Синтаксис и семантика оператора резервирования памяти под массив, примеры. Идентификатор массива как указатель на область памяти, захваченной под массив. Использование переменной типа массив в выражении с операцией присваивания. Особенности распределения памяти под элементы массива и инициализация массивов в СП семейства Си. Традиционная индексная и альтернативная, с помощью операции “*”, адресация элементов массива, примеры. Примеры обработки массивов средствами языка Си. Разработка блок-схем алгоритмов обработки массивов. Написание, ввод, отладка и выполнение программ обработки массивов в СП Turbo-C++.
21. Строки в языке Си. Строки как массивы символов. Особенности инициализации и организации ввода строк в языке Си. Стандартные функции обработки строк в языке Си. Алгоритмы копирования, удаления и замены части строки средствами языка Си, примеры. Разработка блок-схем алгоритмов обработки строк. Написание, ввод, отладка и выполнение программ обработки строковых данных в СП Turbo-C++.
22. Реализация принципа модульности средствами языка Си. Синтаксис функции в языке Си. Формальные и фактические параметры. Способы передачи параметра простого типа. Рекомендации по использованию функций в программах на C++, примеры. Параметры массивы и параметры функции, примеры. Функции с аргументами по умолчанию, примеры. Перегрузка функций, пример. Классы памяти в языке Си. Рекомендации по организации простейшей библиотеки пользователя средствами СП Turbo-C++. Разработка блок-схем алгоритмов в соответствии с принципом модульности. Написание, ввод, отладка и выполнение программ в соответствии с принципом модульности в СП Turbo-C++.
23. Тип данных структура. Синтаксис типа структура в языках семейства Си. Оператор определения типа пользователя, пример. Определение типа структура с помощью тэга. Рекомендации по описанию переменной типа структура, примеры. Использование переменной типа структура в выражении с операцией присваивания. Член структуры (идентификатор с точкой). Разработка блок-схем алгоритмов обработки данных типа структура. Написание, ввод, отладка и выполнение программ обработки данных типа структура в соответствии с принципом модульности в СП Turbo-C++.
24. Динамические переменные в языках семейства Си. Синтаксис типа указатель (ссылочный тип) в языках семейства Си. Рекомендации по описанию переменной типа указатель. Синтаксис и семантика оператора захвата памяти под динамическую переменную. Идентификатор динамической переменной в языках семейства Си (идентификатор со звездочкой). Синтаксис и семантика освобождения области памяти динамической переменной. Синтаксис и семантика операторов захвата и освобождения области памяти для динамического массива. Использование типа указатель для организации односвязного списка, определение типа элемента односвязного списка с помощью тэга. Адресация члена динамической переменной типа структура с помощью литеры алфавита “–>” (идентификатор со стрелкой). Рекомендации по организации вставки (добавления), удаления и поиска элементов линейных динамических структур данных. Примеры алгоритмов создания и обработки линейных динамических структур данных и соответствующих программ на языке C++. Разработка блок-схем алгоритмов создания и обработки линейных динамических структур данных. Написание, ввод, отладка и выполнение программ создания и обработки линейных динамических структур данных в соответствии с принципом модульности в СП Turbo-C++.
25. Тип файл в СП Turbo-C++. Организация файлов данных в языках семейства Си. Синтаксис и семантика захвата памяти под указатель на буфер файла. Синтаксис и семантика функции открытия файла. Атрибуты режима по умолчанию для записи (вывода), чтения (ввода) и добавления данных. Атрибуты режимов текстового и бинарного файла данных. Синтаксис и семантика функций форматированной записи данных в файл и форматированного чтения данных из файла. Функция конец файла в СП Turbo-C++. Рекомендации для СП Turbo-C++ по корректному открытию файла и чтению данных из файла, примеры. Синтаксис и семантика функции закрытия файла. Примеры алгоритма и программы обработки файла данных, в которых для хранения промежуточных результатов используется линейная динамическая структура. Разработка блок-схем ал