- •Автор-составитель:
- •Содержание
- •1.2 Требования к уровню освоения содержания дисциплины
- •1.3 Объем дисциплины
- •1.3.1 Объем дисциплины и виды учебной работы
- •1.3.2 Распределение часов по темам и видам учебной работы
- •1.4 Содержание дисциплины Введение
- •Раздел 1 Основы алгоритмов
- •Тема 1 Этапы решения задач на эвм
- •Тема 2 Алгоритм и его свойства
- •Тема 3 Основные структуры алгоритмов
- •Раздел 2 Программирование
- •Тема 4 Введение в языки программирования
- •Тема 5 Системы программирования
- •Тема 6 Основные конструкции языков программирования
- •Тема 7 Операторы языка программирования
- •1.7 Список литературы Основная:
- •Дополнительная:
- •Часть 2. Материалы, устанавливающие содержание и порядок проведения промежуточной и итоговой аттестации
- •2.1 Занятия для самостоятельной работы студентов
- •2.2 Темы курсовых (контрольных) работ, рефератов и методические рекомендации по их выполнению
- •2.3 Вопросы для подготовки к экзамену
- •2.4 Учебно-методическое обеспечение дисциплины
- •2.4.1 Методические указания для преподавателей
- •2.4.2 Методические указания для студентов
- •2.4.3 Методическое обеспечение дисциплины
- •2.4.4 Материально-техническое и информационное обеспечение дисциплины
Тема 6 Основные конструкции языков программирования
Синтаксис и семантика высокоуровневых языков программирования. Концепция типов данных. Константы и переменные, скалярные и составные типы данных, контроль типов и преобразование типов, операции.
Основная абстракция в структурном подходе – подпрограммы (процедуры и функции), построение и использование. Подпрограммы (описание и вызов). Подпрограммы без параметров. Способы обмена данными с подпрограммами. Параметры-значения, параметры-переменные. Передача в качестве параметра имени функции. Побочные эффекты при вызове функции.
Тема 7 Операторы языка программирования
Операторы: присваивание, ввод, вывод. Простейшие программы. Выражения в языке: арифметические и логические.
Организация повторений работы программы. Составной и условный операторы. Оператор выбора.
Простейшие циклы. Циклы с итерациями и циклы в циклах. Примеры использования языковых конструкций.
Тема 8 Структуры данных
Основные структуры данных: массивы, записи, строки и их представление данных в памяти. Основные классы памяти; управление динамической памятью. Представление и реализация списков, стеков, очередей, хеш-таблиц, графов и деревьев.
Организация работы с файлами. Определение и типы файлов. Встроенные языковые средства для работы с файлами разных типов. Последовательный и прямой доступ к компонентам файлов.
Раздел 3 Алгоритмические методы решения вычислительных задач
Тема 9 Алгоритмическое решение задач сортировки
Организация сортировки в динамических структурах данных. Способы сортировки на разных расстояниях и в разных направлениях: быстрая сортировка, шейкер-сортировка. Поразрядная сортировка.
Тема 10 Алгоритмическое решение задач поиска
Задача поиска в больших массивах данных. Последовательный, ускоренный поиск, метод транспозиции. Хеш-функция. Организация таблиц методом хеширования. Редактирование хеш-таблиц.
Лабораторная работа № 3: Разработка алгоритмов и программ сортировки и поиска данных
Тема 11 Программирование рекурсивных алгоритмов
Понятие рекурсии. Виды рекурсии (прямая и косвенная). Механизм рекурсии. Использование рекурсии для записи решений. Древовидные структуры. Бинарное дерево. Правила обходов деревьев: инфиксная форма, префиксная форма, постфиксная форма. Особенности использования рекурсии для построения дерева. Сортировка и поиск с помощью дерева.
Тема 12 Объектно-ориентированное программирование
Объектно-ориентированная разработка; инкапсуляция и информационное упрятывание; отделение описания интерфейса от реализации; классы, подклассы и наследование; полиморфизм; иерархия классов; пакеты классов и протоколы взаимодействия; программирование на основе шаблонов.
Лабораторная работа № 4: Объектно-ориентированная методология разработки программ
Тема 13 Событийно-управляемое, параллельное и распределенное программирование
Методы обработки и распространение событий; управление параллелизмом с помощью механизма обработки событий; обработка исключений. Методы программирования сетевых приложений.
1.5 Темы практических занятий
Выполнение практических работ программой курса не предусмотрено.
1.6 Темы лабораторных работ
Лабораторные работы предназначены для приобретения практических навыков в работе по разработке алгоритмов и программ.
№№ и названия разделов и тем |
Цель и содержание лабораторной работы |
Результаты лабораторной работы |
Лабораторная работа № 1: Проектирование базовых структур алгоритмов | ||
Раздел 1. Тема 3 |
Разработка блок-схем решения различных задач |
Блок схемы. Практические навыки разработки алгоритмов. Отчет. |
Лабораторная работа № 2: Освоение средств разработки программ | ||
Раздел 2. Тема 5 |
Изучение основных методов и инструментов разработки программного обеспечения. |
Практические навыки разработки программ. Отчет. |
Лабораторная работа № 3: Разработка алгоритмов и программ сортировки и поиска данных | ||
Раздел 3. Тема 10 |
Изучение алгоритмов сортировки и поиска данных. |
Блок-схемы. Тексты программ. Практические навыки. Отчет. |
Лабораторная работа № 4: Объектно-ориентированная методология разработки программ | ||
Раздел 3. Тема 12 |
Изучение основ объектно-оринтированной разработки программного обеспечения |
Тексты программ. Практические навыки. Отчет. |
Для выполнения лабораторных работ предусмотрены Методические указания к лабораторным работам по дисциплине «Программирование и основы алгоритмов»