Материал из Кружковое движение
Перейти к навигации
Перейти к поиску
Алгоритмы
Алгоритмы
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
Алгоритмы: теория и практика. Методы
|
Введение
- Простые алгоритмы(числа Фибоначчи, НОД) , О-символика
- Реализация простых алгоритмов на C++, Python и Java
Жадные алгоритмы
- Коды Хаффмана, очереди с приоритетом и непрерывный рюкзак
- Реализация жадных алгоритмов на C++, Python и Java
Разделяй и властвуй
- Принцип ""Разделяй и властвуй"": бинпоиск, умножение, сортировки
- Реализация алгоритмов ""разделяй и властвуй"" на C++, Python и Java
Динамическое программирование
- Наибольшая возрастающая подпоследовательность, расстояние редактирования, рюкзак
- Перемножение последовательности матриц
- Независимые множества во взвешенных деревьях
- Реализация алгоритма ""расстояние редактирования"" на C++, Python и Java
|
|
Stepik / CSC
|
Любой
|
14 часов видео
|
Алгоритмы: теория и практика. Структуры данных
|
Базовые структуры данных
Очереди с приоритетом и системы непересекающихся множеств
- Очереди с приоритетом
- Системы непересекающихся множеств
Хеш-таблицы
Деревья поиска
- АВЛ-деревья
- Дополнительные операции
- Сплей-деревья
|
|
Stepik / CSC
|
Любой
|
6 часов видео, 20 задач
|
Математическая логика и теория алгоритмов
|
Математическая логика
- Начало математической логики, софизмы и парадоксы
Основы теории множеств
- Интуитивная теория множеств, jперации над множествами
- Отношения, эквивалентность и порядок
- Функции (отображения)
Пропозициональная логика
- Высказывания и высказывательные формы
- Пропозициональные логические связки
- Тавтологии, Равносильности
Языки первого порядка
- Предикаты, кванторы, термы и формулы
- Формулы общезначимые, выполнимые, логически эквивалентные
- Перевод с естественного языка на логический и обратно
Аксиоматический метод
- Аксиоматическое построение математических теорий
- Формальные аксиоматические теории
- Исчисление высказываний
- Теории первого порядка
Математическое доказательство
- Математическая индукция
- Различные виды доказательств в математике
- Компьютерные доказательства
Теория алгоритмов
- Неформальная вычислимость и машины Тьюринга
- Частично-рекурсивные функции
- Тезис Черча
- Некоторые алгоритмически неразрешимые проблемы
- Асимптотические обозначения
- Алгоритмы и их сложность
- Сложность задач
|
|
Stepik / ТУСУР
|
Любой
|
8 часов видео, 250 тестов
|
Введение в теоретическую информатику
|
- Разрешающие деревья
- Схемы из функциональных элементов
- Пропозициональная логика
- Вычислимость
- Программы и универсальные функции
- Машины Тьюринга
- Ассоциативные исчисления
- Переборные задачи и их сложность, ускорение перебора
- Конечные автоматы
- Контекстно-свободные языки
- Игры, стратегии, теорема Цермело
- Код с исправлением ошибок, код Хемминга
- Коммуникационная сложность
- Криптография, код Диффи–Хеллмана, RSA
- Интерактивные доказательства
- Правила Хоара
|
|
Stepik / CSC
|
Старшая школа и студенты
|
14 часов видео
|
Теоретическая информатика: сложность вычислений
|
Разрешающие деревья
- Отгадывание числа: верхние и нижние оценки
- Отгадывание с ошибками
- Поиск максимума
- Сортировка: примеры, верхние и нижние оценки для n
- Ещё несколько задач
Схемы из функциональных элементов
- Связки, функциональные элементы, ДНФ и КНФ, полнота
- Оценки сложности. Сумма, сравнение
- Оценки сложности произвольных функций
Пропозиционная логика
- Формулы. Следование. Тавтологии. Выполнимость
- Следование и выводимость
- Исчисление резолюции? и его полнота
- Ещё о принципе Дирихле (приглашённый лектор --- Всеволод Опарин)
- Логика линейного программирования
Переборные задачи и их сложность
- Переборные задачи
- Полиномиальные задачи
- Неразрешимые задачи
- Сравнение сложности: сведение
- Переборные задачи вокруг нас
- NP-полные задачи
- Задача 3-CNF NP-полна
- Задача о независимом множестве NP-полна
- Задача о 3-раскраске NP-полна
- Задачи поиска сводятся к задачам проверки
Класс PSPACE
- Определение класса
- Игры, стратегии, кванторы
- Выигрышные и проигрышные позиции. Доказательство теоремы Цермело
- PSPACE и игры
Ускорение перебора
- Чего мы хотим
- Задача о раскраске графа
- Задачи 2-SAT и 3-SAT
|
|
Stepik / CSC
|
Старшая школа и студенты
|
13 часов видео, 100 тестов
|
Python
Python
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
Введение в Python (7-8 классы)
|
Основные конструкции
- Ввод и вывод информации, арифметические операции
- Условный оператор, циклы, основные типы данных.
Функции
- Стандартные и пользовательские функции
- Генераторы и сортировки
- Рекурсия
Структуры данных
- Словари, множества
- Линейные структуры данных
|
|
Stepik
|
Любой
|
21 урок, 150 задач
|
Основы программирования на Python
|
- Целые числа, ввод-вывод, простые операции со строками
- Условный оператор и цикл while
- Вещественные числа
- Функции и рекурсия
- Кортежи, цикл for, списки
- Сортировка
- Множества и словари
- Функциональное программирование
- Классы
|
|
Coursera / ВШЭ
|
Любой
|
70 часов на выполнение
|
Программирование на Python (простой)
|
Введение
- Установка Python и моя первая программа
- Арифметические и логические операции
- Переменные, ввод-вывод
Циклы, строки, списки
Функции, словари, интерпретатор, файл, модули
- Функции
- Словари
- Интерпретатор
- Модули NumPy, Matplotlib
|
|
Stepik / Институт Биоинформатики
|
Любой
|
4 часа видео, 100 тестов
|
Python: основы и применение (обычный)
|
Базовые принципы
- Объекты
- Функции и стек вызовов
- Классы, наследование, области видимости
Стандартные средства
- Ошибки и исключения
- Модули и импорт
- Итераторы и генераторы
- Работа с файлами
- Работа с функциями: functool и лямбда функции
- Стиль программирования: pep8 и документация
Применение: анализ текста
- Стандартные методы и функции для строк
- Регулярные выражения
- Обзорно об интернете: http-запросы, html-страницы и requests
- CSV/JSON
- API
- XML, библиотека ElementTree, библиотека lxml
|
|
Stepik / Институт Биоинформатики
|
Любой
|
5 часов видео, 50 тестов
|
Python часть 1. Погружение в Python
|
- Введение в Python
- Структуры данных и функции
- Объектно-ориентированное программирование
- Углубленный Python
- Многопоточное и асинхронное программирование
- Финальный проект
|
|
Coursera / МФТИ и mail.ru
|
Любой
|
48 часов на выполнение
|
|
Coursera / МФТИ и mail.ru
|
Любой
|
34 часов на выполнение
|
Python часть 3. Создание Web-сервисов на Python
|
- Общее представление о WEB
- Сбор данных со сторонних сайтов
- Beautiful Soup и работа с API
- Хранение данных. SQL / NoSQL
- Веб интерфейсы с Django и Bootstrap
- Работа с данными пользователя
- Дополнительный инструментарий
- Проект: умный дом
|
|
Coursera / МФТИ и mail.ru
|
Любой
|
68 часов на выполнение
|
|
Coursera / МФТИ и mail.ru
|
Старшая школа и студенты
|
50 часов на выполнение
|
Python для решения практических задач
|
Обработка web-страниц
- Скачивание web-страниц, обработка html как текста
- BeautifulSoup
Электронные таблицы
- Знакомство с электронными таблицами
- Работа с одним листом, с несколькими листами
- Запись в таблицы
XML
- Знакомство с XML
- OpenStreetMap как пример XML
- Обработка XML с разным количеством вложенных тэгов
- Как добыть нужную информацию, не читая документацию к API
Визуализация с использованием pyplot
Публикация данных
- Создание веб-сервера
- Обработка форм и генерация HTML
|
|
Stepik / CSC
|
Любой
|
3 часа видео, 25 тестов
|
|
Stepik / JetBrains
|
Любой
|
50 задач
|
C++
C++
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
|
Stepik / Яндекс и ВШЭ
|
Любой
|
2 часа видео, 100 задач
|
Программирование на языке C++
|
Введение в язык C++
- Характеристики языка C++
- Структура кода на C++
- Как компилируется программа на C++
- синтаксис C++
Как выполняются программы
- Как выполняются программы на C++
- Стек вызовов
- Указатели, массивы, ссылки
- Динамическая память
- Многомерные массивы
- Строки и ввод-вывод
Структуры и классы
- Структуры, методы
- Конструкторы и деструкторы
- Объекты и классы, модификаторы доступа
- Константность
- Конструктор копирования и оператор присваивания
- Класс массива
Объектно-ориентированное программирование
- Наследование, перегрузка, виртуальные методы
- Таблица виртуальных методов
- Объектно-ориентированное программирование
- Особенности наследования в C++
Дополнительные возможности C++
- Перегрузка операторов
- Правила переопределения операторов
- Умные указатели
- Ключевые слова static, inline и friend
- Шаблон проектирования Singleton
Шаблоны
- Шаблоны классов и функций
- Специализация шаблонов
- Ещё о шаблонах
|
|
Stepik / CSC
|
Любой
|
10 часов видео, 50 задач
|
Программирование на языке C++ (продолжение)
|
продвинутые возможности C++
- Множественное наследование
- Преобразование в стиле C++
- Информации о типах времени выполнения
- Указатели на функции, методы и поля класса
- Пространства имён
Нововведения стандартов C++11 и C++14
- Стандарты C++11 и C++14
- Семантика перемещения
- Как работают rvalue-ссылки
Стандартная библиотека шаблонов
- Стандартная библиотека шаблонов
- Последовательные и ассоциативные контейнеры
- Итераторы и умные указатели
- Алгоритмы
Обработка ошибок
- Обработка ошибок
- Исключения в деструкторах и конструкторах
- Спецификация исключений
- Гарантии безопасности исключении?
Многопоточность, библиотеки и метапрограммирование
- Многопоточное программирование
- Коллекция библиотек Boost
- Метапрограммирование: основы
- Метапрограммирование: генерация классов и проверка свойств
|
|
Stepik / CSC
|
Старшая школа и студенты
|
7 часов видео, 50 задач
|
Основы разработки на C++: белый пояс
|
- Знакомство с искусством C++, основные конструкции, типы данных
- Техника владения функциями и контейнерами
- Медитация над алгоритмами и классами
- Ката по вводу/выводу, исключениям и перегрузке операторов
- Первое кумитэ
|
|
Coursera / МФТИ и Яндекс
|
Старшая школа и студенты
|
48 часов на выполнение
|
Основы разработки на C++: жёлтый пояс
|
- Целочисленные типы, кортежи, шаблонные функции
- Тестирование и отладка
- Распределение кода по файлам
- Итераторы, алгоритмы и контейнеры
- Наследование и полиморфизм
- Курсовой проект
|
|
Coursera / МФТИ и Яндекс
|
Старшая школа и студенты
|
51 часов на выполнение
|
Основы разработки на C++: красный пояс
|
- Макросы и шаблоны классов
- Принципы оптимизации кода, сложность алгоритмов и эффективное использование ввода/вывода
- Модель памяти в C++
- Эффективное использование линейных контейнеров
- Move-семантика и базовая многопоточность
- Финальная задача
|
|
Coursera / МФТИ и Яндекс
|
Старшая школа и студенты
|
70 часов на выполнение
|
Основы разработки на С++: коричневый пояс
|
- Эффективное использование ассоциативных контейнеров
- Пространства имён и указатель this
- Константность и unique_ptr
- shared_ptr и RAII
- Функции: принципы понятного кода
- Финальная задача
|
|
Coursera / МФТИ и Яндекс
|
Старшая школа и студенты
|
74 часов на выполнение
|
Основы разработки на С++: черный пояс
|
- Неопределённое поведение и инструменты поиска проблем
- Сериализация и protobuf
- Хранение объектов в памяти и таблица виртуальных методов
- Вектор своими руками
- Продолжение финального проекта
- Задача «Электронная таблица»
|
|
Coursera / МФТИ и Яндекс
|
Старшая школа и студенты
|
52 часов на выполнение
|
Углубленное программирование на C/C++
|
Углубленное программирование на языке C
- Организация и использование оперативной памяти
- Основы многопоточного программирования. Вопросы качества кода
Объектная модель языка C++, обобщённое программирование
- Объектно-ориентированное программирование
- Шаблоны классов Обобщенное и безопасное программирование
Библиотеки промышленной разработки
- Практическое введение в STL
- Функциональное программирование. Практическое введение в Boost
Шаблоны проектирования, основы промышленной разработки
- Принципы и шаблоны объектно-ориентированного проектирования
- Идиоматика C++. Основы рефакторинга и качество исходного кода. С
|
|
Stepik / mail.ru
|
Старшая школа и студенты
|
16 часов видео, 50 тестов
|
Многопоточное программирование на C/C++
|
- Контейнеры, умные указатели, аллокаторы
- Сокеты Беркли, мультиплексирование
- Асинхронная работа с сетью
- Процессы, каналы, сигналы
- Очереди сообщений, семафоры, общая память.
- Потоки, средства синхронизации
- Параллельное программирование
|
|
Stepik / mail.ru
|
Старшая школа и студенты
|
14 часов видео, 50 тестов
|
C#
C#
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
|
Stepik / BEEGEEK
|
Любой
|
1 час видео, 250 тестов
|
Программирование на C#
|
Особенности и отличия C#
Управляемая платформа
- Управляемый код
- Сборка мусора
- Класс System.Object
- Мотивация платформы .NET
Простейшие конструкции и типы
- Файлы и модули
- Значимые типы
- Конвертация, частичные классы, делегаты
- События
Продвинутые конструкции и типы
- Значимые типы, допускающие присвоение null
- Интерфейсы IDisposable иIEnumerable
- Операторы foreach и yield
Асинхронный ввод-вывод
- Формулировка задачи масштабирования
- Асинхронный ввод-вывод в .NET
- Класс AsyncEnumerator
- Оператор await
- Контекст синхронизации
- Подводные камни
Language Integrated Query
- Строим LINQ to Objects
- Query expressions syntax
- LINQ to SQL
Интеграция в экосистему
- Опциональные параметры
- Именованные аргументы
- Проверка типов на этапе исполнения
- P/Invoke
|
|
Stepik / CSC
|
Любой
|
9 часов видео, 100 тестов
|
Java
Java
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
Java Базовый курс
|
Введение
- Что такое Java, откуда она взялась и зачем нужна
- Знакомство со средой разработки, Hello World
Базовый синтаксис
- Базовые типы
- Массивы и строки
- Управляющие конструкции: условные операторы и циклы
Объекты, классы и пакеты
- Основы ООП
- Пакеты и модификаторы доступа
- Объявление класса
- Наследование. Класс Object
- Абстрактные классы и интерфейсы
Обработка ошибок, исключения, отладка
- Исключения, try-catch
- Логирование
ввод-вывод, доступ к файловой системе
- Доступ к файловой системе
- Потоки байт и символов
- Продвинутые возможности
Generics, collections, streams
- Generics
- Коллекции
- Функциональные интерфейсы
- Stream API
|
|
Stepik / CSC
|
Любой
|
5 часов видео, 100 тестов
|
|
Stepik / mail.ru
|
Любой
|
8 часов видео, 50 тестов
|
|
Stepik / mail.ru
|
Любой
|
6 часов видео, 30 тестов
|
|
Stepik / JetBrains
|
Любой
|
|
Kotlin
Kotlin
Название курса |
Источник / Организация |
Возраст |
Длина курса
|
Введение в язык Котлин
|
- Базовые типы данных
- Структуры данных: списки, массивы, ассоциативные массивы, множества
- Объявление и использование функций и переменных
- Основные операторы
- Использование рекурсии
- Текстовый ввод-вывод
- Простейшие файловые операции
- Исключения и обработка ошибок
- Элементы функционального программирования: функции высших порядков, лямбды
|
|
Coursera / JetBrains и СПБПУ
|
Любой
|
11 часов на выполнение
|
Введение в Kotlin JVM
|
Синтаксис и семантика
- Ввод и вывод, базовая арифметика
- Выражения и методы
- Строки
- Логические выражения, сравнение переменных и тип Boolean
- Условный оператор, диапазоны чисел
- Практика - ""Обратная разработка""
- Оператор when
- Тип Double, библиотека Math
- Char, спецсимволы и экранирование
- Преобразование простых типов
- Оператор цикла for, repeat и массивы
- Функции
- Массивы и циклы - задачи
- Цикл while, операторы управления циклом
Kotlin и ООП
- Введение в ООП
- Классы
- Наследование и полиморфизм
- enum и interface
- Nullability
|
|
Stepik
|
Любой
|
11 часов на выполнение
|
Разработка Android-приложений на Kotlin
|
Знакомство с Kotlin
- HelloWorld, функции
- Циклы и ветвления
- Объектно-ориентированное программирование
- Коллекции и исключения
- Nullability
Архитектура Android и инструменты разработчика
- Основные особенности мобильной разработки
- Архитектура Android
- HelloWorld, отладочное логгирование, простой UI
Программирование пользовательских интерфейсов
- Особенности построения мобильных UI
- Архитектура UI в Android, программирование элементов управления
- Расширенные элементы управления
- Activity
- Группирование объектов, AdapterView
- Примеры AdapterView: GridView, Spinner
Android advanced
- Разрешения безопасности
- Файловая система
- Уведомления
Публикация Android-приложений
- Публикация Android-приложений
|
|
Stepik / ЛЭТИ
|
Любой
|
8 часов видео, 100 тестов
|
Введение в параллельное программирование с использованием OpenMP и MPI
|
- Введение в параллельный мир
- Основы OpenMP
- Директивы распределения работы и синхронизации работы
- Векторные вычисления с помощью OpenMP 4.0
- Анализ и оптимизация программ с использованием современных программных пакетов
- Системы с распределённой памятью. Основы MPI
- Прием и передача сообщений между отдельными процессами
- Коллективные операции
- Производные типы данных. Группы и коммуникаторы
|
|
Coursera / ТГУ
|
Старшая школа и студенты
|
26 часов на выполнение
|