+375 (29) 833-85-20 info@cron.is
Computer Science Online

Вы можете быть где угодно, необходимо лишь подключение к интернету

Cronis – образовательный проект для тех, кто хочет изучить computer science для карьерного роста и новых профессиональных возможностей.

Мы устраняем ваши пробелы в знаниях, рассказываем о Computer Science доступно и интересно, и что важно – экономим ваше время. Мы не просто делимся заученным материалом, а помогаем углубиться вам в темы, которые мы досконально изучили в процессе формирования материалов. Программа основного курса поможет готовиться к интервью и просто строить карьеру.
Est. 2016

Краткая лекция

Сложность алгоритмов

Кому полезен курс

Отрывок из вебинара

Google

Как прошел ученик

Как проходит обучение

  • Вы получаете данные для доступа к нашему онлайн-сервису
  • Вы присоединяетесь к нашему онлайн-сервису используя удобный Вам браузер
  • Смотрите и слушаете лекцию
  • Задаете вопросы голосом или в чате
  • Получаете домашнее задание

Возникли вопросы?

На кого рассчитан курс

Студенты

Вы молоды, решительны, хотите узнать новое и упорядочить знания в голове.

Junior

Вы недавно начали свою карьеру, но знаний все еще не хватает. Вы учите фреймворки по совету друзей или старших товарищей, но не уверены, пригодятся ли они вам.

Developer

Вы уже приняли участие в одном-двух проектах. И Вам кажется, что Вы знаете, что нужно делать. Но за этими проектами Вы могли упустить много важного из фундаментальных знаний computer science.

Senior и старше

Вам кажется, что Вы уже все знаете и Вас ничем не удивишь. Подумайте еще раз. Подумайте, сколько Вы забыли из того, что на самом деле относится к computer science, но сколько фреймворков Вы знаете.

Маленький секрет: в Google у Вас не спросят про фреймворки.

Продолжительность курса 78 академических часов

Месяца

Часа лекция

Раз в неделю

Лекций

Ксения Романчик

Разработчик
★★★★★

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

Сергей

Senior Software Developer
★★★★★

Материал был подобран и преподнесен довольно хорошо, все мои вопросы касательно преподаваемых тем были покрыты полностью. Данный курс помог мне освежить память по многим темам и подчерпнуть много нового. Буду рекомендовать этот курс людям, которые хотят более детально углубиться в различные структуры данных и алгоритмы.

Виктория Романчук

System Administrator Engineer
★★★★★

Курс оказался очень полезным, с удовольствием обучалась два месяца и ни разу не пожалела! Во всем находила только положительное. Материалы хорошо подобраны и представлены ровно в том объеме, в котором они лучше всего усваивались, а также понравились преподаватели! Я получила очень много дополнительных знаний и, если раньше я сомневалась, стоит ли заниматься программированием (я администратор серверов), то теперь во мне появился интерес, и я собираюсь в дальнейшем развиваться в этом направлении. Эти курсы я уже советую своим знакомым.

Павел

Software Developer
★★★★★

Проходил курсы в течение 2-х месяцев. Преподаватели очень понравились. Они смогли создать прекрасную учебную атмосферу. Обучение проходило на высшем уровне. Материалы вовремя присылались и можно было всегда выяснить любой непонятный момент. Сама подача материала была очень доступной, а преподаватели – специалисты высокого уровня. По окончанию обучения получил сертификат.

Онлайн обучение

Начало: 24 января
Количество лекций: 26
Расписание: пн, чт с 19:00 до 21:30
Стоимость: от 1144 BYN / месяц

Темы курса

Модуль 1

Двоичная система счисления
  • Системы счисления
  • Из десятичной в двоичную и обратно
  • Принцип работы процессора
  • Двоичное представление отрицательных чисел
  • Сложение и умножение двоичных чисел
  • Вычитание двоичных чисел
  • Двоичное представление плавающей точки
  • Решение задач
Битовые операции
  • Размерности величин
  • Адресация памяти
  • Big & Little Endian
  • Примитивные битовые операции
  • Классические битовые операции
  • Сжатие параметров
  • Битовый вектор
  • Реализация битового вектора
  • Решение задач
Стек и очередь
  • Причины создания стека
  • Аппаратный стек x86
  • Аппаратный стек
  • Алгоритм работы процессора с данными
  • Визуализация потока данных в компьютере
  • Размещение стека в памяти
  • Работа с аппаратным стеком
  • Что принес стек в программирование
  • Переполнение стека
  • Трассировка кода
  • Раскручивание и скручивание
  • Стек и типы данных
  • Пример работы кадров стека
  • Программный стек
  • Очереди
  • Решение задач
Кодировки и строки
  • ASCII
  • Работа с ASCII-строками
  • Кодовые страницы
  • OEM кодовые страницы
  • Mojibake
  • ANSI и Microsoft
  • Проблема иероглифов
  • Single-byte Character Set
  • Double-Byte Character Set
  • Unicode
  • Basic Multilingual Plane
  • Хранение символов из кодовых страниц
  • Кодировки: USC-2, UFT-8, UTF-16, UTF-32
  • Суррогатные пары
  • Причина использования UTF-16 в языках программирования
  • Типы строк: C-String, P-String, Immutable String
  • Проблема конкатенации строк
  • Проблема получения подстроки
  • StringBuilder
  • Решение задач
Рекурсия
  • Определение рекурсии в реальном мире
  • Виды рекурсивных функций
  • Первая рекурсивная функция
  • Скелет простейшей рекурсивной функции
  • Правило шести
  • 7 правил написания рекурсивных функций
  • Критичность размера меньшей задачи
  • Упрощение рекурсивного кода
  • Трассировка рекурсивных функций
  • Замечания к правилам написания рекурсивной функции
  • Функция с двумя рекурсивными вызовами
  • Построение дерева рекурсивных вызовов
  • Рекурсия в цикле
  • Решение задач
Оценка сложности алгоритмов. Big O
  • Причины изучения оценки сложности
  • Математическая функция
  • Оценка сложности
  • Случаи сложности
  • Сравнение сложностей
  • Сравнение математических функций
  • Нотация Big O
  • Решение задач
Оценка типичных сложностей
  • Оценка типичных сложностей
  • Сложение и умножение
  • Сложность log N
  • Строки и оценка сложности
  • Сложность рекурсивных функций
  • Амортизационный анализ
  • Сложность по памяти
  • Решение задач
Основы теории вероятностей и логики
  • Множества
  • Комбинаторика
  • Базовые понятия вероятностей
  • Произведение событий
  • Сумма событий
  • Закон распределения
  • Математическое ожидание
  • Метод дедукции
  • Оптимизация худшего случая
  • Решение задач

Модуль 2

Массив и связанный список
  • Виды и особенности массивов
  • Связанный список
  • Операции над связанным списком
  • Реализация однонаправленного связанного списка
  • Реализация двунаправленного связанного списка
  • Реализация поиска
  • Реализация вставки
  • Реализация удаления из односвязного списка
  • Реализация удаления из двусвязного списка
  • Подход Runner
  • Решение задач
Хеш-функция
  • Ассоциативный массив
  • Хеш-функция
  • Метод деления по модулю
  • Метод умножения
  • Хеш объектов и чисел
  • Попытка создания хеш-таблицы
  • Проблемы хеш-функций
  • Отрицательный хеш
  • Проблема хешей и индексов
  • Правила вычисления хеша и индекса
Хеш-таблица
  • Виды хеш-таблиц
  • Метод цепочек
  • Коэффициент заполнения
  • Реализация метода цепочек
  • Оценка сложности метода цепочек
  • Линейный поиск
  • Реализация линейного поиска
  • Квадратичный поиск
  • Реализация квадратичного поиска
  • Двойное хеширование
  • Реализация двойного хеширования
  • Сложность открытой адресации
  • Сравнение производительности хеш таблиц
  • Универсальное хеширование
Поиск с возвратом. Динамическое программирование
  • Возврат составного значения из рекурсии
  • Поиск с возвратом
  • Задача полного перебора
  • Процессор, рекурсия и стек
  • Риски рекурсивных решений
  • Рекурсия в итерацию
  • Динамическое программирование
  • Оптимальный рюкзак
  • Использовать или нет рекурсию
  • Головная и хвостовая рекурсия
  • Решение задач

Модуль 3

Бинарное дерево поиска
  • Проблема поиска и сортировки
  • Бинарное дерево и бинарное дерево поиска
  • Вставка и поиск узла
  • Обход бинарного дерева поиска
  • Удаление узла
  • Реализация вставки и поиска узла
  • Реализация обхода бинарного дерева поиска
  • Реализация удаления узла
  • Решение задач
АВЛ-дерево
  • Определение АВЛ-дерева
  • Условный алгоритм вставки в АВЛ-дерево
  • Поиск места для вставки нового узла
  • Балансировка. Высота дерева
  • Поиск несбалансированного поддерева
  • Баланс фактор
  • Повороты дерева
  • Количество балансировок после вставки нового узла
  • Удаление из АВЛ-дерева
  • Реализация АВЛ-дерева
  • Решение задач
Красно-черное дерево
  • Определение красно-черного дерева
  • Виды узлов
  • Определения для красно-черного дерева
  • Правила работы
  • Причина работы
  • Вставка
  • Удаление
  • Реализация
  • Решение задач
Полное бинарное дерево, куча, префиксное дерево
  • Определение полного бинарного дерева
  • Определение бинарной кучи
  • Поиск в куче
  • Вставка в кучу
  • Амортизация при вставке в кучу
  • Извлечение корня кучи
  • Создание кучи из набора данных
  • Хранение кучи в памяти
  • Реализация кучи
  • Реализация кучи в Java
  • Префиксное дерево
  • Вставка в префиксное дерево
  • Поиск в префиксном дереве
  • Удаление из префиксного дерева
  • Реализация префиксного дерева
  • Решение задач
Базовые сортировки
  • Параметры сложности сортировки
  • Сортировка пузырьком
  • Сортировка выбором
  • Сортировка вставками
  • Сравнение квадратичных сортировок
  • Сортировка слиянием
  • Сортировка кучей
  • Поразрядная сортировка
  • Решение задач
Быстрая сортировка Хоара
  • Распутанный массив
  • Задача расспутывания массива
  • Местоположение опорного элемента
  • Варианты расстояний между указателями
  • Сокращение функции partition
  • Визуализация алгоритма Хоара
  • Быстрая сортировка алгоритмом Хоара
  • Сложность алгоритма Хоара
  • Решение задач
Быстрая сортировка Ломуто. Внешняя Сортировка. Двоичный поиск
  • Алгоритм Ломуто
  • Реализация алгоритма Ломуто
  • Сложность алгоритма Ломуто
  • Ускорение быстрой сортировки
  • Быстрая сортировка против всех
  • Внешняя сортировка
  • Реализация внешней сортировки
  • Двоичный поиск
  • Решение задач
Графы
  • Определения и виды графов
  • Представления графа
  • Реализация графа
  • Поиск в глубину
  • Реализация поиска в глубину
  • Поиск путей в графе
  • Поиск циклов в графе
  • Топологическая сортировка
  • Сложность поиска в глубину
  • Поиск в ширину
  • Реализация поиска в ширину
  • Поиск кратчайшего пути на основе поиска в ширину
  • Реализация поиска кратчайшего пути на основе поиска в ширину
  • Двунаправленный поиск в ширину
  • Реализация двунаправленного поиска в ширину
  • Сложность одна и двунаправленного поиска в ширину
  • Поиск циклов на основе поиска в ширину
  • Алгоритм Дейкстры
  • Реализация алгоритма Дейкстры
  • Решение задач

Модуль 4

Процесс интервью
  • Как проходит интервью
  • Почему даже лучших кандидатов могут отвергнуть
  • Умение решать проблемы важно
  • Знание computer science необходимо
  • Визуализация мыслей позволяет сосредоточиться на главном
  • Как отбираются вопросы для интервью
Детали проведения интервью
  • Amazon
  • Apple
  • Facebook
  • Google
  • Microsoft
Прежде, чем пройти интервью
  • Где взять опыт
  • Написание резюме
  • Алгоритм подготовки к интервью
Общие вопросы на интервью
  • Какие Ваши слабости?
  • “Итак, расскажите о себе”
  • Как и какие вопросы задавать интервьюеру
  • Правильное описание проектов, где Вы участвовали
  • Как отвечать на общие вопросы
  • Думайте, как могут интерпретировать Ваши слова

Ваши бонусы

Бесплатные занятия

Первые два занятия бесплатны

Скидка 10%

При записи с другом, оба получают скидку

Удобно оплачивать

Возможность оплачивать поэтапно раз в месяц

Гарантия возврата денег

Возврат дене в течение 30 дней, если вам не нравится курс

Пожизненный доступ

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

Сертификат

По окончании курса вы получаете наш официальный сертификат

Онлайн обучение

Начало: 24 января
Количество лекций: 26
Расписание: пн, чт с 19:00 до 21:30
Стоимость: от 1144 BYN / месяц

Требования к составу слушателей

Знание основ программирования (язык не имеет значения)

Знание основ объектно-ориентированного программирования

v

Базовое знание английского языка

Наши преподаватели

Юрий Петранков, CEO

Инженер-программист, преподаватель

Мне нравится превращать сложные задачи в простые и понятные интерфейсы. Если я не пишу код, значит вы найдете меня, фотографирующего очередной пейзаж.

Павел Битюков

Технический консультант

Люблю разбираться как работают вещи, как устроены технологии, удивительно, сколько всего появилось за последнее время и как много можно быстро создать практически с нуля, чем я и занимаюсь.

Мы обучали

Нам удалось Вас заинтересовать?