[vc_row][vc_column][vc_column_text]

Алгоритмы – это “соль” программирования: задачи сортировки,поиска, обхода “дерева”, “рюкзак”, “коммивояжер” и т.п. Курс рассчитан на 2-х летний курс обучения.Каждый модуль курса рассчитан на полугодие,12 занятий по 2 урока в неделю(1.5 астрономических часа).

Курс рекомендован учащимся 9–10-х классов, которые обладают базовыми знаниями по программированию в объеме любого из курсов: “Основы программирования на Java” или “Основы программирования в 1С:Предприятие 8“. Но сложность олимпиад по программированию растет год от года, сложно добиться серьезных успехов, начиная “олимпиадную карьеру” в 9-10 классе.

Поэтому было принято решение дополнить курс Стартовым модулем, занятия по которому можно проводить с детьми 7-8 класса, не имеющими предварительной подготовки. Модуль написан с расчетом именно на средний школьный возраст, олимпиадное программирование представляется в нем занимательным занятием, несмотря на обычное отсутствие наглядности в алгоритмическом программировании. При желании, можно начать обучение на курсе и со стартового модуля, предварительной подготовки по нему не требуется.

На курсе:

Сможете на лету решать основные задачи из области арифметики: разложение числа на цифры, на простые множители, делимость, арифметика остатков.
Освоите классические алгоритмы и хитрые трюки для решения задач на обработку последовательностей.
Узнаете, как легко решать задачи обработки матриц: линейный поиск, переворот, максимумы и минимумы.
Изучите различные методы сортировки, в том числе использующие тонкие оптимизации.
Приступите к основам высшего пилотажа в программировании – алгоритмам обработки графов, стеков и очередей.
Вы узнаете, что такое олимпиадное программирование,и в чем заключаются особенности автоматической проверки алгоритмов.
Познакомитесь с тестирующей системой Ejudge, в которой проходят  все крупнейшие соревнования по спортивному программированию.
Полученных знаний и навыков хватит, чтобы начать выступать на олимпиадах по программированию.

Продолжительность обучения:
4 модуля (2 года)

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][TS_VCSC_Fancy_Tabs_Container tabs_centered=»true» tabs_preloader=»0″ tab_contid=»60fcc453-06f7-2″][TS_VCSC_Fancy_Tabs_Single title=»Модуль 1″ tab_id=»1569492501577-5″ padding=»padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;»][vc_column_text css=».vc_custom_1569492617127{padding-right: 15px !important;padding-left: 15px !important;}»]

Программа курса “Алгоритмы. Олимпиадное программирование”.

Занятия рассчитаны на 4 модуля (4 семестра, 2 года)

Приведена программа только первого модуля.

Каждое занятие состоит из небольшой лекции (примерно 30 минут) с разбором простой задачи. В оставшееся время дети самостоятельно решают задачи и проверяют решение, используя систему автоматической проверки программ ejudge, которая применяется на всех олимпиадах по программированию. Преподаватель будет помогать детям и отвечать на их вопросы индивидуально. Ребенок по желанию (его лично и родителей) может продолжать решение дома и проверять решение задач онлайн в системе ejudge, соревнуясь с другими учениками своего клуба и других1С:Клубов программистов. Всего на каждое занятие будет предложено примерно по 10 задач – от простейших до сложных. Сложная задача будет соответствовать олимпиадному уровню (Муниципальные олимпиады, Всероссийская олимпиада). Ребенок не обязательно должен решать все задачи модуля на занятии или дома. Уровень и полноту решения задач определяет сам ребенок и его родители. Если ребенок свободно решает задачи десятого олимпиадного уровня, он может претендовать на хорошие баллы в олимпиаде. Для детей, изъявивших желание участия в олимпиадах, могут быть проведены отдельные занятия (сборы).

 

Модуль 1.

Занятие №1. Знакомство

  • Алгоритмы
  • Тестирующая система

Занятие №2. Типы данных и отладка

  • Типы данных в Java
  • Примитивные типы
  • Объекты
  • Классы-обертки
  • BigInteger и BigDecimal
  • Отладка

Занятие №3. Решение задач из области арифметики

  • Проверка на четность
  • Немного теории
  • Цифры числа
  • Получение цифр числа
  • Проверка на простоту
  • Сумма делителей
  • Количество делителей
  • Разложение на простые множители

Занятие №4. НОД(GCD) и НОК(LCM)

  • Немного теории
  • Немного о задачах

Занятие №5. Однопроходные алгоритмы

  • Чтение
  • Сумма элементов
  • Максимум из всех
  • Максимум из четных
  • Второй максимум
  • Немного о задачах
  • Чтение больших объемов данных
  • Пример использования класса StreamTokenizer для быстрого чтения последовательности чисел

Занятие №6. Массивы

  • Создание массива
  • Ввод (считывание) массива из N элементов
  • Вывод всех элементов массива
  • Поиск максимума
  • Поиск индекса максимального
  • Поиск индекса заданного числа в массиве
  • Вывод массива в обратном порядке
  • Косвенная адресация

Занятие №7. Сортировка массива

  • Сортировка выбором (метод минимума)
  • Немного теории
  • Метод сортировки обменами (метод пузырька)

Занятие №8. Символы и строки в Java

  • Символы
  • Класс String
  • Создание строки
  • Чтение строки
  • Длина строки
  • Сравнение строк
  • Добавление к строке
  • Преобразование различных типов в строку и обратно
  • Извлечение символа и подстроки
  • Поиск в строке
  • Функции замены
  • Разворот строки

[/vc_column_text][/TS_VCSC_Fancy_Tabs_Single][TS_VCSC_Fancy_Tabs_Single title=»Модуль 2″ tab_id=»1569492501612-9″ padding=»padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;»][vc_column_text css=».vc_custom_1569492626860{padding-right: 15px !important;padding-left: 15px !important;}»]

Алгоритмы. Олимпиадное программирование. Модуль 2

Занятие 1. Вспомнить всё!

Занятие 2. Рекурсия I

Занятие 3. Рекурсия II

Занятие 4. Алгоритм поиска в глубину (DFS – Depth First Search)

Занятие 5. Применения поиска в глубину

Занятие 6. Сортировка слиянием

Занятие 7. Быстрая сортировка

Занятие 8. Командная олимпиада

Занятие 9. Динамическое программирование I.

Занятие 10. Динамическое программирование II

Занятие 11. Системы счисления

Занятие 12. Дорешивание

[/vc_column_text][/TS_VCSC_Fancy_Tabs_Single][TS_VCSC_Fancy_Tabs_Single title=»Модуль 3″ tab_id=»1569492577079-2-3″ padding=»padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;»][vc_column_text css=».vc_custom_1569492645931{padding-right: 15px !important;padding-left: 15px !important;}»]

“Алгоритмы. Олимпиадное программирование”. Модуль 3.

Занятие 1. Вспомнить всё – 2!

Занятие 2. Основные понятия и формулы комбинаторики

  • Правила суммы и произведения
  • Формулы основных комбинаторных чисел
  • Теоретические задачи

Занятие 3. Генерация комбинаторных объектов

  • Универсальный алгоритм генерации всех заданных объектов
  • Генерация следующей перестановки в лексикографическом порядке
  • Генерация перестановки по номеру
  • Генерация номера размещения по объекту

Занятие 4. Задачи динамического программирования I (НВП)

  • Наибольшая возрастающая подпоследовательность
  • Код на Java Вывод самой НВП
  • Сложность алгоритма поиска и вывода НВП

Занятие 5. Динамическое программирование II (НОП)

Занятие 6. Задачи динамического программирования III (расстояние Левенштейна)

  • Определение и применения
  • Редакционное предписание

Занятие 7. Алгоритм Флойда-Уоршалла

  • Взвешенные графы
  • Описание алгоритма Рекуррентное соотношение
  • Код алгоритма
  • Восстановление ответа
  • Циклы отрицательного веса

Занятие 8. Алгоритм Дейкстры

  • Описание алгоритма
  • Пример работы
  • Код алгоритма
  • Сложность алгоритма
  • Вывод ответа

Занятие 9. Олимпиада

  • Состав команды
  • Подготовка к соревнованиям
  • Стратегия и тактика поведения во время тура
  • Рекомендации по процессу практического программирования олимпиадной задачи
  • Как бороться со штрафным временем
  • Как потратить последние 15 минут тура
  • Как вести себя после тура

Занятие 10. Бинарный поиск

  • Сложность метода
  • Метод дихотомии
  • Бинарный поиск по ответу

Занятие 11. Игры I. Ним

  • Ограничения
  • Выигрышные и проигрышные позиции
  • Игра “Ним”

Занятие 12. Игры II. Сумма игр

  • Постановка задачи
  • Сведение любой игры к Ниму
  • Функция Шпрага-Гранди для одной игры
  • Функция Шпрага-Гранди для суммы игр
  • Суммы игр “на практике”
  • Реализация

Занятие 13. Геометрия. Основы

  • Действительные числа
  • Основные объекты
  • Линейное взаиморасположение объектов
  • Углы GeomVis

Занятие 14. Геометрия. Окружности и многоугольники

  • Окружность
  • Многоугольник
  • Выпуклость многоугольника
  • Площадь многоугольника
  • GeomVis

Занятие 15. Выпуклая оболочка

  • Наивный алгоритм
  • Алгоритм Джарвиса
  • Алгоритм Грэхэма

Занятие 16. Куча (HEAP)

  • Устройство
  • Реализация
  • Пирамидальная сортировка
  • Очередь с приоритетами

[/vc_column_text][/TS_VCSC_Fancy_Tabs_Single][/TS_VCSC_Fancy_Tabs_Container][/vc_column][/vc_row][vc_row][vc_column][vc_custom_heading text=»ЗАЯВКА НА КОНСУЛЬТАЦИЮ ПО КУРСУ» font_container=»tag:h2|text_align:center»][TS-VCSC-Shortcode tscode=»JTVCcXVmb3JtJTIwaWQlM0QlMjIxMiUyMiUyMG5hbWUlM0QlMjIlRDAlQTAlRDAlOUUlRDAlOTElRDAlOUUlRDAlQTIlRDAlOUUlRDAlQTIlRDAlOTUlRDAlQTUlRDAlOUQlRDAlOTglRDAlOUElRDAlOTAlMjIlNUQ=» tscodenormal=»quform»][/vc_column][/vc_row]

©2024 ООО "ПАРТНЕР СОФТ"

ИНН 3706012437 / ОГР 1053705618911.

Введите данные:

Forgot your details?