Курс ориентирован на учащихся 7-11 классов, имеющих базовые устойчивые навыки работы с компьютером и базовые навыки в программировании, полученныей в результате занятий на курсе "Основы программирования в среде Delphi" или самостоятельно, а также определенную математическую подготовку.
Основное внимание уделяется изучению различных структур данных и наиболее часто используемых алгоритмов на их основе.
Время, отводимое на занятия по каждой теме курса, определяется преподавателем для каждой группы индивидуально.
В конце курса, по желанию учащегося, проводится защита итогового проекта или организуется итоговый экзамен по курсу.
Запись на курс проводится по результатам тестирования.
Программа курса
- Переменные, простые типы данных.
- Массивы и основные операции с ними (пробег по массиву, поиск максимального элемента, среднее арифметическое и т.д).
- Алгоритмические операции. ВременнАя и емкостная сложность алгоритма.
- Простейшие сортировки: Bubble Sort, Shaker Sort, Selection Sort, Simple Insertion Sort.
- Двоичный поиск.
- Записи. Телефонная книжка.
- Рекурсия. Quick Sort, Merge Sort*, Shell Sort*.
- Сортировки O(N). Monkey Sort.
- Классы и объекты. Инкапсуляция.
- Динамическое выделение памяти. Указатели и списки.
- Стек и стековые операции. Реализация на базе ООП. Избежание рекурсии при помощи стека.
- Очередь. Реализация на базе ООП.
- Хэширование. Хэш-таблицы, хэш-функции. Открытое и закрытое хэширование.
- Двоичные кучи. Heap Sort. Очередь с приоритетом.
- Динамическое программирование. Одномерные, двумерные и многомерные задачи.
- Графы. Терминология. Виды. Приложения. Волновой алгоритм. Поиск в глубину.
- Двоичные деревья поиска. Визуализация.
- Алгоритмы сжатия данных. RLE. Алгоритм Шеннона-Фано.