Учебная программа курса или дисциплины

advertisement
Учебная программа курса или дисциплины
«Основы программирования»
Цель и задачи курса
Цель дисциплины “Основы программирования” - ознакомить студентов с основами
программирования и основами современных языков программирования с точки зрения
пользователей языков. В частности, в курсе рассматриваются основные конструкции
языков программирования, анализируются основные типы и структуры данных,
освещаются вопросы объектно-ориентированного программирования и сетевого
программирования, дается краткий обзор компонентной технологии программирования.
1.
Введение в языки программирования
Эволюция языков программирования. Краткий обзор эволюции языков программирования
(ЯП). Стандартизация языков программирования. Понятие синтаксиса и семантики ЯП.
Среды программирования.
2.
Основные конструкции языков программирования
Синтаксис и семантика высокоуровневых языков программирования. Константы и
переменные, скалярные и составные типы данных, контроль типов и преобразование
типов, выражения и присваивание; условные и циклические управляющие структуры;
функции и способы передачи параметров; структурные конструкции, средства
ввода/вывода.
3.
Алгоритмы и процесс решения задачи
Стратегии решения задачи; роль алгоритма в процессе решения задачи; стратегии
реализация алгоритма; стратегии отладки; определения и свойства алгоритма.
4.
Объектно-ориентированное программирование
Объектно-ориентированная разработка; инкапсуляция и информационное упрятывание;
отделение описания поведения от реализации; классы, подклассы и наследование;
полиморфизм; иерархия классов; пакеты классов и протоколы взаимодействия;
программирование на основе шаблонов.
5.
Основные структуры данных
Основные структуры данных: массивы, записи, строки и их представление данных в
памяти. Методы распределения памяти (статическое, автоматическое, динамическое);
управление памятью периода выполнения. Представление и реализация списков; стеков,
очередей, хеш-таблиц, графов и деревьев.
6.
Рекурсия
Понятие рекурсии; математические рекурсивные функции; примеры рекурсивных
процедур; рекурсия и метод “разделяй и властвуй”; реализация бэктрекинга (backtracking)
посредством рекурсии; реализация рекурсии с помощью стека, примеры рекурсивных
функций, применение рекурсии при трансляции языков программирования, метод
рекурсивного спуска.
7.
Событийно-управляемое, параллельное и распределенное программирование
Методы обработки и распространение событий; управление параллелизмом с помощью
механизма обработки событий; обработка исключений. Методы программирования
сетевых приложений.
8.
Прикладные программные интерфейсы (API) и их применение
API-программирование; браузеры; программирование по примерам (example); отладка в
API-окружении; методы обработки данных, основанные на компонентных технологиях;
понятие промежуточного программного обеспечения (Middleware).
Литература.
1.
2.
3.
4.
5.
6.
Т. Пратт, М. Зелковиц. Языки программирования. 2002 г.
Д. Э. Кнут Искусство программирования. 2000 г.
Баженова И.Ю. C++ & Visual Sdudio.NET. М. «КУДИЦ-ОБРАЗ», -2003. - 448 с.
Баженова И.Ю. Delphi 7. М. «КУДИЦ-ОБРАЗ», -2003. - 448 с.
Баженова И.Ю. JBuilder 5. Программирование на Java. М. «КУДИЦ-ОБРАЗ»
Майкл Морган. Java 2. Руководство разработчика. 2000 г.
Варианты экзаменационных билетов
БИЛЕТ № 1
1. Эволюция развития языков программирования
2. С++. Указатели и ссылки
БИЛЕТ № 2
1. Объектно-ориентированное программирование
2. Серверные приложения. Применение трехзвенных архитектур
Download