В результате изучения дисциплины студент должен

Знать основы прикладного, системного и объектно-ориентированного программирования на языках 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. Программирование (создание) базы данных и диалоговой системы управления базой данных. Создание собственной библиотеки подпрограмм.