В результате изучения дисциплины студент должен
Знать основы прикладного, системного и объектно-ориентированного программирования на языках Object Pascal и С++, особенности синтаксиса программ и их элементов; знать принципы организации исследований, разработки программных проектов, хранения, поиска и обработки данных.
Уметь самостоятельно осваивать новые программные продукты, анализировать, находить, оценивать и применять эффективные программные решения; систематизировать знания и представление необходимости, создавать компоненты и модули программ; уметь формулировать задачу, выбирать и применять необходимый инструментарий для разработки специальных программных продуктов; решать типичные задачи разработки программных проектов с использованием технологии объектно-ориентированного программирования, использовать современные инструментальные средства при разработке программного обеспечения.
Владеть навыками программирования на языке высокого уровня, инструментальными средствами составления, трансляции, отладки и тестирования программ, навыками разработки и оформления проектной и рабочей технической документации, контроля соответствия разрабатываемых проектов и технической документации стандартам, техническим условиям и другим нормативным документам.
СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Первый семестр
Тема и содержание лекции (раздела) | Неделя | Часы |
1. Введение.Языки программирования низкого и высокого уровня, их достоинства и недостатки. Языки Turbo Pascal, Object Pascal, Turbo C, C++, Fortran и другие. Понятие и свойства системы, модели, алгоритма, программы. Назначение и критерии оценки программных продуктов. Связь задачи и технологии исследований с разработкой программного продукта, как инструмента исследований. Основные этапы программирования и решения задач на ЭВМ (отображение целей, возможностей, задач исследований, представление технологии исследований и программного проекта, согласование принципиальных решений и т.д.). | ||
2. Алгоритмы и программы.Определение алгоритма. Свойства алгоритма. Отличие алгоритма от понятий метод, процедура, функция. Программа как реализация алгоритма обработки данных и одновременно как совокупность описаний и исполняемых операторов. Алфавит языка. Понятия: служебное (зарезервированное) слово, идентификатор, константа, переменная, арифметическое и логическое выражения, операнд, операция, оператор, комментарий. Типы данных, переменных и операций. Синтаксис и структура основной программы, подпрограмм и программного проекта в Turbo Pascal и Object Pascal. Модуль как структурный элемент или блок программного проекта. Организация модуля и системы модулей. Зависимые и независимые модули. Связь между понятиями отображение и реализация. Локальные и глобальные элементы программы, их время жизни и область действия. Доступность элементов, управление доступностью. | 2,3 | |
3. Представление информации в ЭВМ.Понятие информации. Формы представления числовой, символьной и графической информации в ЭВМ. Типы, описание и классификация типов данных (базовые, стандартные, производные, порядковые, перечисляемые, интервальные, строки, массивы, множества, записи, указатели, файлы – общее представление). Типизированные константы и инициализированные переменные. Способы инициализации данных. Свойства типов и данных – области допустимых значений, допустимые операции. Виды и приоритет элементарных операций (унарные, бинарные, арифметические, логические, отношения). Явное и неявное преобразование типов операндов. | 4,5 | |
4. Основные операторы (условные, безусловные, присваивания, перехода, выбора, циклы), правила оформления и применения. Циклы с постусловием и предусловием. Операторы ветвления и выбора. Директивы компилятора (препроцессора). | ||
5. Собственные процедуры и функции, их объявление, описание, вызов. Формальные и фактические параметры. Передача значений и адресов переменных. Стандартные и собственные модули. Встроенные процедуры ввода-вывода информации. Спецификация формата вывода. | 7,8 | |
6. Массивы и сложные типы данных: записи, варианты, процедурные, файловые и указатели. Иерархические структуры типов, данных и подпрограмм. Описание, объявление и реализация. | 9-11 | |
7. Указатели.Адресация объектов в программе. Указатель, адресная арифметика, тип указателя. Статическая и динамическая области оперативной памяти. Статические и динамические переменные. Классы ошибок, возникающих при работе с указателями. Взаимосвязь между массивами и указателями. Разность указателей. Использование внешней памяти и динамическое управление требуемой оперативной памятью (управление расходом ресурсов и эффективностью программного продукта). Динамическое определение и преобразование типа переменной. Встроенные процедуры и функции для работы с динамическими элементами. | 12,13 | |
8. Связные списки, графы, сети и деревья. Односторонние и двухсторонние связи. Задачи на графах и задачи автоматизации работы с графами. Использование указателей. | 14-16 | |
9. Типизированные, нетипизированные и текстовые файлы. Файловая переменная, встроенные процедуры и функции для работы с файлами. | 17,18 |
Второй семестр
Тема и содержание лекции (раздела) | Неделя | Часы |
10. Введение в объектно-ориентированное программирование. Основная идея, принципы, понятия. Принципы визуального программирования с помощью Delphi и С++. | 1,2 | |
11. Объекты, классы, методы и свойства (в С++и Delphi). Инкапсуляция, наследование, полиморфизм. Конструкторы и деструкторы. | 3,4 | |
12. Интерфейс и система управления реализацией программного проекта. Создание экранных форм и программных средств диалога. | 5,6 | |
13. Графика, создание графических объектов. | 7,8 | |
14. События, исключения и сообщения Windows, их обработка. | 9,10 | |
15. Библиотеки, их создание и подключение. | ||
16. Языки Turbo С и С++в отличиях от Turbo и Object Pascal. Особенности синтаксиса программ, операций, операторов, описаний типов, констант, переменных и подпрограмм. | 12-17 |
СОДЕРЖАНИЕ ЛАБОРАТОРНЫХ ЗАНЯТИЙ
Цели и задачи лабораторных занятий:пояснение и закрепление текущего материала с помощью соответствующих задач программирования. Разбор примеров, иллюстрирующих лекционный материал, составление и отладка программ на основе полученных знаний. Приобретение навыков программирования.
Первый семестр
1. Освоение среды программирования и компилятора Turbo-Pascal фирмы Borland International. Ввод, составление, редактирование, трансляция и отладка программ. Примеры создания собственных (пользовательских) типов, описания и обработки данных. Эксперименты с типами данных.
2. Вычислительные задачи. Арифметические, логические операции и отношения. Программирование арифметических и логических выражений.
3. Массивы и множества. Операции с векторами, матрицами и множествами. Алгоритмы упорядочения элементов массива.
4. Строки. Операции и программы обработки символов и строк.
5. Сложные типы данных: записи, варианты, процедурные, файловые типы и указатели. Описания и применения. Задачи упорядочения. Применение оператора выбора.
6. Статические и динамические переменные. Встроенные и собственные процедуры и функции для работы с динамическими переменными.
7. Иерархические типы данных, указатели и связные списки. Организация, упорядочение, сокращение и расширение списка.
Второй семестр
8. Файлы и встроенные процедуры для работы с файлами. Создание модулей.
9. Среда программирования Delphi. Объекты, классы, формы. Визуальное программирование.
10. Практикум по программированию на языке С/С++.
11. Графы и сети. Примеры задач на графах. Рекуррентные соотношения.
12. Графика и графические задачи.
13. Конструирование и редактирование сети (графа). Разработка элементов графического редактора сетей. Обработка событий, исключений и сообщений Windows.
14. Программирование (создание) базы данных и диалоговой системы управления базой данных. Создание собственной библиотеки подпрограмм.