Алгоритмы и сложность

Структуры и алгоритмы компьютерной обработки данных

Комплекс лекций с упражнениями для обучения моделированию задач на базе основных структур данных, алгоритмизации и программированию в среде MS Visual Studio 2010. Каждая тема содержит лекционный материал, примеры программных кодов, задания для аудиторной и самостоятельной работы.
Студентов 2 RU
490 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Алгоритмы и сложность
Объем

72 час.
Длительность

14 дней
Нагрузка в неделю

2 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Комплекс лекций с упражнениями для обучения программированию на языке С++, ориентированный на работу в среде MS Visual Studio 2010. Каждая тема имеет следующую структуру: название темы, цель, ключевые слова, теоретическая часть (необходимый для выполнения работы теоретический материал, который отражает основные положения лекции по соответствующей теме), примеры программных кодов в среде MS Visual Studio 2010, комплекс задач для аудиторной и самостоятельной работы (задачи представлены в порядке возрастания сложности).

Учебный план

Занятие
Экзамен экстерном
60 мин
1
Предисловие
2
Типы данных в языке С++
В лекции рассматриваются понятие типов данных в языках программирования, приводится классификация типов данных в С++, излагаются особенности представления базовых типов и операций над ними, рекомендации и правила выполнения операции преобразования базовых типов в С++.
3
Подставляемые (встраиваемые) функции. Перегрузка функций
В лекции рассматриваются понятия, объявление и использование в программах подставляемых и перегруженных функций в С++, механизмы выполнения подстановки и перегрузки функций, рекомендации по повышению эффективности программ за счет перегрузки или подстановки функций.
4
Производные типы. Тип указатель: указатели на объекты
В лекции рассматриваются определение и виды указателей, способы объявления, инициализация указателей на объекты, методы доступа к данным через указатели, размещение указателей и адресуемых ими объектов в памяти, операции над указателями.
5
Тип указатель: указатели на функции
В лекции рассматриваются определение указателя на функцию, способы объявления, адресуемость и обращение к функции через указатель, передачу фактических параметров указателю на функцию, использование указателя на функцию в качестве параметра функции.
6
Символьные данные и строки
В лекции рассматриваются понятия и определения символьных данных и строк, сходство и отличия их внутреннего представления, способы объявления, инициализация строк, методы доступа к элементам строк, определение размера строк, различные способы организации ввода/вывода символьных данных и строк.
7
Функции для работы со строками
В лекции рассматриваются библиотечные функции, предназначенные для работы со строками, и особенности их выполнения, приведены примеры использования таких функций при решении задач.
8
Решение задач на обработку строк
В лекции рассматриваются понятие, способы объявления, инициализация указателей на строки, применение функций обработки строк при решении типовых задач, особенности выполнения стандартных функций в контексте представления строк и указателей на строки.
9
Решение задач на обработку строк тест
60 мин
10
Массивы: одномерные массивы
В лекции рассматриваются понятие и виды массивов в языках программирования, определение, объявление, инициализация, способы генерации и вывод одномерных массивов, расположение в памяти элементов массивов, связь между указателями и массивами.
11
Одномерные массивы: задачи поиска, замены и перестановок элементов массива
В лекции рассматривается классификация типовых задач на обработку одномерных массивов, приводятся примеры алгоритмизации задач поиска, замены и перестановок в одномерных массивах.
12
Курсовая работа
13
Одномерные массивы: задачи сортировок элементов массива
В лекции рассматриваются понятие и виды сортировок массивов, критерии оценки трудоемкости выполнения алгоритмов сортировок одномерных массивов, приводятся примеры реализации простых сортировок.
14
Двумерные массивы: задачи поиска, замены и суммирования элементов двумерного массива
В лекции рассматриваются понятие, определение, объявление, инициализация, генерация и вывод двумерных массивов, расположение в памяти элементов массивов, связь между указателями и двумерными массивами, типовые алгоритмы поиска, замены и суммирования в двумерных массивах.
15
Двумерные массивы: задачи сортировок и перестановок в двумерных массивах
В лекции рассматриваются типовые задачи на обработку двумерных массивов, приводятся примеры алгоритмизации задач сортировок и перестановок в двумерных массивах.
16
Двумерные массивы: задачи сортировок и перестановок в двумерных массивах тест
60 мин
17
Структуры
Определение структурных переменных. Доступ к компонентам структуры. Поля битов в структурах. Объединения. Перечисления. Переменные структуры. Указатели структуры. Массив структур. Переименования типов.
18
Рекурсивные функции
Посвящена рекурсивным операциям, функциям и множествам, приведены примеры, рассмотрены различные виды рекурсии (примитивная, совместная, возвратная), а также частично рекурсивные функции и нормальные алгоритмы Маркова.
19
Структуры и указатели
В лекции рассматриваются определения, способы объявления, инициализация указателей на структуры, ограничения на использование указателей как типов элементов структур, методы доступа к данным структуры через указатели, использование указателей на структуры как параметров и значений функций.
20
Объединения
В лекции рассматриваются определения, способы объявления, объединений как частного случая структур, методы доступа к данным объединения, размещение объединений и определение их размера в памяти, использование объединений при объявлении переменных с изменяемой структурой.
21
Битовые поля
В лекции рассматриваются определение, объявление и размещение в памяти битовых полей, методы доступа к битовым полям, приемы использования битовых полей для побитового анализа данных.
22
Битовые поля тест
60 мин
23
Стандартные файлы и функции по работе с ними
В лекции рассматриваются понятия и определения файлов и потоков, классификация файлов, стандартные функции по работе с файлами, основные алгоритмы работы с файлами, приводятся примеры решения задач на организацию ввода-вывода и обработку данных в файлах.
24
Обработка файлов в потоковом режиме
В лекции рассматриваются понятие потокового режима при работе с файлами, потоки как типы данных, библиотечные функции ввода-вывода в потоковом режиме, примеры решения задач на обработку данных из файлов.
25
Прямой доступ к данным файла
В лекции рассматриваются понятие, особенности, способы организации и функции ввода-вывода в файлы на нижнем уровне, отличия низкоуровневого и потокового ввода-вывода в файлы, примеры, иллюстрирующие низкоуровневый обмен данными в файлах.
26
Работа с элементами файлов
В лекции рассматриваются особенности организации файлового ввода-вывода в С++ в потоковом и стандартном режимах, основные типы задач редактирования элементов файлов, способы алгоритмизации задач исключения, вставки и замены в файлах, приводятся примеры решения типовых задач.
27
Решение задач на обработку файлов
В лекции рассматриваются функции библиотеки классов потокового ввода-вывода, примеры реализации алгоритмов решения задач на обработку файлов.
28
Решение задач на обработку файлов тест
60 мин
29
Распределение памяти. Динамическое выделение памяти
В лекции рассматриваются определения, распределение, способы выделения и освобождения динамической памяти, взаимодействие указателей и участков динамической памяти.
30
Одномерные динамические массивы
В лекции рассматриваются определение, объявления, инициализация одномерных динамических массивов, способы выделения и освобождения динамической памяти под одномерный массив, доступ к элементам одномерного динамического массива.
31
Двумерные динамические массивы
В лекции рассматриваются определение, объявления, инициализация двумерных динамических массивов, способы и этапы выделения и освобождения динамической памяти под двумерный массив, доступ к элементам двумерного динамического массива.
32
Решение задач на динамические массивы
В лекции рассматриваются преимущества и недостатки управления динамической памятью, типичные ошибки при работе с динамической памятью, организация проверки выделения памяти, многомерные динамические массивы, приемы представления, чтения и записи динамических массивов.
33
Решение задач на динамические массивы тест
60 мин
34
Динамические структуры данных
В лекции рассматриваются определение, способы объявления, инициализация динамических структур, методы доступа к данным динамических структур, размещение их в памяти, преимущества и недостатки использования динамических структур в программах.
35
Динамические структуры данных: однонаправленные и двунаправленные списки
В лекции рассматриваются определения и виды списков, структура, способы объявления однонаправленных и двунаправленных списков, основные операции над элементами списков, приводятся примеры решения задач с использованием однонаправленных и двунаправленных списков.
36
Динамические структуры данных: очередь и стек
В лекции рассматриваются определения стека и очереди как частных случаев линейных списков, структура, способы объявления стеков и очередей, основные операции над их элементами, приводятся примеры решения задач с использованием стеков и очередей.
37
Динамические структуры данных: бинарные деревья
В лекции рассматриваются определения, свойства и виды деревьев, элементы, характеристики и способы объявления деревьев в программах, основные операции над элементами деревьев, понятие и виды обходов деревьев, приводятся примеры реализации основных операций над бинарными деревьями в виде рекурсивных функций.
38
Решение задач на динамические структуры данных
В лекции рассматриваются определения, способы объявления, инициализация и особенности использования при решении задач циклических списков, деков, красно-черных деревьев, приводятся примеры решения задач на обработку кольцевых списков, деков, красно-черных деревьев.
39
Решение задач на динамические структуры данных тест
60 мин
40
Алгоритмы обработки данных
В лекции рассматривается понятие ресурсной эффективности алгоритмов посредством анализа асимптотических функций временной и емкостной сложности, приводится классификация алгоритмов на основе функции временной сложности, рассматриваются общие методы оценки трудоемкости алгоритмов.
41
Рекурсия и рекурсивные алгоритмы
В лекции рассматриваются основные понятия рекурсии в контексте разработки алгоритмов с помощью рекурсивной триады, дается представление о ресурсной эффективности и о методе оценки рекурсивных алгоритмов через подсчет вершин рекурсивного дерева.
42
Решение задач на использование рекурсивных алгоритмов
В лекции рассматриваются опорные схемы решения задач рекурсивными способами, приводятся примеры разработки рекурсивных функций с помощью опорных схем.
43
Алгоритм перебора с возвратом
В лекции рассматривается общее и частное решения переборных задач, организация возвратной рекурсии, трудоемкость алгоритмов возвратной рекурсии, приводится пример решения задачи о расстановке ферзей на шахматной доске методом рекурсии с возвратом.
44
Алгоритм перебора с возвратом тест
60 мин
45
Алгоритмы поиска в линейных структурах
В лекции рассматриваются определение и классификация алгоритмов поиска в линейных структурах данных, описания и примеры реализаций алгоритмов последовательного поиска, поиска с барьером, бинарного поиска, приводится оценка трудоемкости алгоритмов поиска в линейных структурах.
46
Алгоритмы хеширования данных
В лекции рассматриваются определение и виды хеширования, методы разрешения коллизий в хеш-таблицах, основные алгоритмы хеширования, приводятся примеры программной реализации открытого и закрытого хеширования.
47
Алгоритмы поиска в тексте
В лекции рассматриваются основные понятия и алгоритмы, используемые в задачах поиска в тексте и приводятся примеры реализации основных алгоритмов поиска в тексте.
48
Алгоритмы поиска на основе деревьев
В лекции рассматриваются определение и виды деревьев поиска, приемы снижения трудоемкости поиска в древовидных структурах, приводятся описания алгоритмов поиска в двоичных упорядоченных, случайных и сбалансированных в высоту (АВЛ) деревьях, приводятся примеры программной реализации бинарного дерева поиска и АВЛ-дерева.
49
Алгоритмы сжатия данных
В лекции рассматриваются основные понятия и алгоритмы сжатия данных, приводятся примеры программной реализации алгоритма Хаффмана через префиксные коды и на основе кодовых деревьев.
50
Алгоритмы сжатия данных тест
60 мин
51
Алгоритмы сортировки массивов. Внутренняя сортировка
В лекции рассматриваются определение и классификация алгоритмов сортировок массивов, в частности, быстрых сортировок, изучаются параметры, характеризующие трудоемкость алгоритмов сортировок, рассматриваются описания и примеры программных кодов следующих алгоритмов быстрых сортировок: бинарная пирамидальная сортировка, сортировка слиянием, сортировка Шелла и сортировка Хоара.
52
Алгоритмы сортировки массивов. Внешняя сортировка
В лекции рассматриваются определение и классификация алгоритмов внешних сортировок, понятия фаз и путей в алгоритмах внешних сортировок, приводятся описания и реализации алгоритмов внешней сортировки слиянием и естественной сортировки.
53
Алгоритмы на графах. Алгоритмы обхода графа
В лекции рассматриваются основные понятия из теории графов, модели представления графов, на основе которых приводятся описания и реализации алгоритмов поиска в глубину и в ширину.
54
Алгоритмы на графах. Алгоритмы нахождения кратчайшего пути
В лекции рассматриваются постановка задачи и описание алгоритмов нахождения кратчайшего пути в графах, приводятся программные реализации алгоритмов Дейкстры, Флойда и переборного алгоритма.
55
Решение задач на использование алгоритмов обработки данных
В лекции даются общие рекомендации по решению задач повышенной сложности, рассматривается примеры программной реализации задач обработки данных, которые решаются с помощью алгоритмов сортировок, обходов графа и сжатия данных.
56
Решение задач на использование алгоритмов обработки данных тест
60 мин
57
Задания
Тренировочный экзамен
60 мин
Экзамен
60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдаётся автоматически после успешного завершения программы.

Стоимость программы

490 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.