скачать УЧЕБНАЯ ПРОГРАММА ПО ДИСЦИПЛИНЕ ПРОГРАММИРОВАНИЕ Маслянкин В.И. Для очной формы обучения ВСЕГО 260 лекции 69 семинары 70 Всего аудиторных занятий 139 самостоятельная работа 121 Требования ГОС к обязательному минимуму содержания основной образовательной программы: Основные этапы компьютерного решения задач; критерии качества программы; диалоговые программы; дружественность; постановка задачи и спецификация программы; способы записи алгоритма; программа на языке высокого уровня; стандартные типы данных; представление основных структур: итерации, ветвления, повторения; процедуры: построение и использование; типы данных, определяемые пользователем; записи; файлы; динамические структуры данных; списки: основные виды и способы реализации; программирование рекурсивных алгоритмов; способы конструирования программ; модульные программы; основы доказательства правильности; архитектура и возможности семейства языков высокого уровня. Целью изучения дисциплины является изучение основ программирования, включая постановку задачи, выбор метода решения задачи, создание или выбор алгоритма, реализацию алгоритма на языке программирования, отладку и тестирование программы; формирование представления о технологиях структурного и объектно-ориентированного программирования и проектировании программных продуктов и его применении к разработке программного и информационного обеспечения. ^ «Информатика», «Математическая логика», «Дискретная математика». В результате изучения дисциплины каждый студент должен:
Основные виды занятий: лекции и практические занятия. Основные виды текущего контроля занятий: выполнение и сдача домашних самостоятельных работ по каждой теме, контрольные работы по темам. Основной вид рубежного контроля знаний: зачет, курсовая работа, экзамен. ^ Тема 1. Алгоритмизация и основы программирования. Понятие алгоритма. Линейные алгоритмы, алгоритмы с ветвлением, циклические алгоритмы. Представление алгоритмов в графическом виде (блок-схема) и в псевдокоде. Элементарные алгоритмические конструкции. Типовые алгоритмы – суммирование, поиск максимума (минимума). Алгоритмы сортировки – подсчетом, методом вставки, методом пузырька. Алгоритм быстрой сортировки. Алгоритмы поиска – последовательный поиск, ступенчатый поиск, бинарный поиск. Динамические структуры данных: списки, очереди, стек. Методология разработки алгоритма. Оценка эффективности алгоритма. Качество программного обеспечения. Доказательное программирование. ^ Языки программирования и их классификация. Высокоуровневые языки программирования. Сравнительный обзор высокоуровневых языков программирования и общие понятия высокоуровневых языков программирования – типы данных, переменные, выражения, операторы ветвления, циклы, функции и т.д. Трансляция программы. Интерпретаторы и компиляторы. Исходный текст. Модули. Библиотеки. Исполняемая программа. Отладка и тестирование. Отладчик. Интегрированная среда программирования. Встроенный редактор. Препроцессор. Трансляция и сборка программы. Встроенный отладчик. Основные понятия: алгоритм, блок-схема, псевдокод, суммирование, упорядочивание, поиск, язык программирования, транслятор, отладчик, модуль, библиотека, приложение, тестирование. ^ Алфавит языка, лексемы. Ключевые слова и идентификаторы. Типы данных. Директивы препроцессора include и define. Понятие функции. Структура программы. Переменные и константы. Глобальные и локальные переменные. Область видимости переменных. Функции ввода/вывода. Операция присваивания. Арифметические выражения и операции. Операции сдвига. Преобразование типов данных. Библиотечные функции. Математические функции. Основные понятия: тип данных, идентификатор, переменная, константа, операция, оператор, выражение, директива препроцессора. ^ Операции отношения, условные выражения и логические операции. Операторы ветвления: условный оператор if. Полное ветвление. Неполное ветвление. Оператор множественного выбора switch. Конструкции case и default. Оператор прерывания break. Передача управления: оператор безусловного перехода goto. Метки. Основные понятия: ветвление, передача управления, метка, дизъюнкция, конъюнкция, отрицание. ^ Циклы с предусловием и постусловием. Реализация циклов с помощью операторов ветвления и передачи управления. Операторы цикла while, do while, for. Взаимное приведение циклов for и while. Оператор продолжения continue. Прерывание циклов. Вложенные циклы. Понятие об итерации. Рекурсивные и циклические алгоритмы. Основные понятия: предусловие, постусловие, тело цикла, передача управления, метка, итерация, рекурсия. ^ Массивы как однородные статические структуры данных. Числовые массивы. Алгоритмы обработки массивов: суммирование, поиск максимума (минимума), сортировка, поиск. Массивы различной размерности. Заполнение и инициализация массивов. Многомерные массивы. Алгоритмы работы с матрицами. Указатели. Динамические массивы. Арифметика указателей. Связь между массивами и указателями. Строки. Обработка строк как массивов символов. Библиотечные функции обработки строк. Массивы строк. Основные понятия: указатель, значение, адрес, разадресация, размерность, символ, копирование, конкатенация. ^ Организация и средства человеко-машинного интерфейса. Работа с экраном в текстовом режиме Задание цвета. Интерфейс командной строки. Горячие клавиши. Пассивное меню. Активное меню. Создание формы ввода на экран. Основные понятия: код клавиши, меню, пункт меню, команда меню. ^ Файлы. Типы файлов. Организация работы с файлами. Библиотечные функции, предназначенные для работы с файлами. Основные понятия: имя файла, полное имя файла, текстовый файл, бинарный файл, файл прямого доступа, открытие файла, закрытие файла, чтение, запись. ^ Работа с экраном в графическом режиме. Выбор графического драйвера и моды. Инициализация графического режима. Выбор инструментов рисования: пера, кисти (заливки), шрифта. Функции вывода графики. Графические примитивы. Основные понятия: драйвер, мода, координаты, пиксель, перо, заливка, шрифт, графический примитив. ^ Библиотечные и пользовательские функции. Прототип и описание функции. Возвращаемое значение. Передача параметров по значению и по адресу. Ссылки. Массивы в качестве параметров. Параметры со значениями по умолчанию. Функции в качестве параметров. Понятие функтора. Рекурсия. Перегрузка функций. Основные понятия: формальный параметр, фактический параметр, тип функции, прототип, рекурсия. ^ Пользовательские типы данных. Структуры. Массивы структур. Инициализация структур. Поля (данные) структур. Операции доступа данным. Переименование типов. Перечисления. Объединения. Битовые поля. Основные понятия: базовые типы данных, пользовательские типы данных, структура, поле структуры, операция доступа. ^ Принципы объектно-ориентированного программирования. Функциональное программирование. Визуальное программирование. Программирование баз данных. Программирование в компьютерных сетях. Программирование мультимедиа-сред. ^ Понятие инкапсуляции, полиморфизма, наследования, модульности и абстракции объектов. Понятие класса и объекта. Объявление класса. Данные-члены (свойства) и функции-члены (методы). Доступ к членам класса: открытые, закрытые и защищенные члены класса. Объекты. Обращение к членам объекта. Дружественные классы и функции. Передача объекта в качестве параметра функции. Основные понятия: инкапсуляция, полиморфизм, наследование. ^ Конструкторы. Свойства конструкторов. Конструктор по умолчанию. Параметры конструкторов. Конструктор преобразования. Деструктор. Вызов деструктора. Виртуальный деструктор. Указатель this. Оператор присваивания. Конструктор копий. Поразрядное (буквальное) копирование и развернутое копирование. Реализация копирования через присваивание. Основные понятия: инициализация, конструктор, деструктор. ^ Понятие перегрузки. Перегрузка функций. Перегрузка операций. Перегружаемые операции. Операции, не допускающие перегрузки. Перегрузка унарных операций. Перегрузка бинарных операций. Перегрузка операций как методов класса и как дружественных функций. Сравнение способов перегрузки операций. Основные понятия: перегрузка, операция, функция. ^ Строки C++. Класс string. Конструкторы, операции и методы класса строк. Потоковые классы. Предопределенные объекты cin и cout. Форматирование потоков. Методы обмена с потоками. Файловые потоки. Основные понятия: строка, поток, извлечение из потока, помещение в поток, флаг, манипулятор, файл. ^ Базовый и производный классы. Режимы доступа к членам базового класса. Конструкторы и деструкторы производных классов. Полиморфизм. Виртуальные методы. Множественное наследование. Использование виртуальных базовых классов. Чисто виртуальная функция. Абстрактные классы. Основные понятия: наследование, виртуальность, раннее связывание, позднее связывание. ^ Перегрузка функций. Шаблоны функций. Создание шаблонов функций. Классы-шаблоны. Создание и использование шаблонов классов. Библиотека STL. Алгоритмы и контейнеры. Вектор, список, стек, очередь. Основные понятия: шаблон, итератор, контейнер. ^ Понятие исключения. Генерация исключения, обработчики исключений. Абсолютный обработчик. Стандартный обработчик и его перегрузка. Исключения в классах. Исключения в функциях. Основные понятия: исключение, контролируемый блок, тип исключения, генерация исключения. ^ Этапы создания объектно-ориентированных программ. Понятие проекта. Понятие компонента. Реализация проекта. Отладка проектов. Средства проектирования. Основные понятия: проект, компонент, визуальная среда. ^ Структура и выполнение Windows –программ. Инициализация окон. Обработка сообщений. Управление памятью. Классы приложений. Классы-шаблоны и виртуальные функции для работы с Windows. Окно и его ресурсы. Методы создания ресурсов окна. Основные понятия: наследование, приложение, фрейм, дочернее окно, сообщение, цикл обработки сообщения, ресурсы. ^ Общие принципы создания графических программ. Вывод графических образов на экран. Хранение графических образов. Программирование графики для Windows. Графические объекты Windows. Библиотеки графических образов. Основные понятия: пиксель, перо, кисть, шрифт, контекст устройства, графический примитив, событие Paint. ^ Методика проектирования, ориентированная на потоки данных. Визуальное программирование: компоненты и события, обработка событий. Многооконный интерфейс и средства его создания. Средства автоматизации программирования (CASE - технологии). Основные понятия: визуальное программирование, компонент, свойства компонента, невизуальный компонент, стандартный диалог. ЛИТЕРАТУРА Основная:
Дополнительная.
|