Алгоритмы и структуры данных: подготовка к интервью

Наши выпускники работают в Apple, Google, Facebook
📅 Начало : 6 сентября 2021 г.

💣 Наши преимущества

🌴
100% онлайн
Уроки в удобное время после работы/учебы
🤖
Фокус на практике
Напишем код для 100+ задач по алгоритмам и структурам данных за 8 недель
🚀
Топовая программа
Учебный план, который проходят студенты бакалавриата в Принстоне
🎓
Дружное сообщество
Забудьте об обучении программированию в одиночку

🚀Для кого этот курс

😎
Кто готовится к интервью в Google и Facebook
Алгоритмы и структуры данных - фокус технических интервью в топовых технологических компаниях.
👻
Кто завершил nFactorial Start

Данный курс - логическое продолжение курса «Создание сильной базы в компьютерных науках для начинающих».
🏆
Для спортивных программистов

Тех, кто хочет улучшить свой рейтинг в LeetCode и Codeforces, а также участвовать в олимпиадном программировании (IOI, ACM ICPC)
Записаться на курс

Чем мы отличаемся?

🎯
Успех завершения
Процент завершения курсов «учись сам по себе» - 7%. Процент успешного завершения онлайн-курсов в nFactorial School - 90%.
👭
Дружная тусовка, где можно быть самим собой
Благодаря ежедневным воркшопам и совместным упражнениям группа сильно сближается, становится чуть ли не семьей и с нетерпением ждет вечерней встречи друг с другом.
🏇
Соревнования по программированию
Со второй половины потока - каждую пятницу онлайн-соревнования по программированию между участниками курса: 90 минут, 5-7 задач.
🌎
Интересные сокурсники
Благодаря онлайн формату получается по-настоящему разношерстная и интересная группа сокурсников: казахстанцы из 🇺🇸 🇯🇵 🇩🇪 🇫🇷 🇧🇪 🇪🇸 🇮🇪 🇷🇴 🇷🇺 🇹🇷 🇦🇪 🇰🇬.
🧗
Высокая интенсивность
Регулярные интерактивные 90+ минутные воркшопы. 40 воркшопов за 8 недель. Фокус - на практике: за один воркшоп мы пишем и разбираем код от 3-х до 13 задач разной сложности. Впечатляющие еженедельные проекты для закрепления материала.
👻
Имидж ничто, понимание - все
Один из принципов сообщества nFactorial - «Being Good > Looking Good» или «Имидж ничто, понимание - все». Это помогает раскрепостить участников, не стесняться показаться глупым и задавать вопросы, каждый раз когда есть сомнение или непонимание.
Записаться на курс

Учебный план

Неделя

Система непересекающихся множеств. Анализ алгоритмов. Временная сложность. Использование памяти. Cтеки и очереди.

1
2

Неделя

Java для продвинутых: наследование, generics, интерфейсы, итераторы. Элементарная сортировка: выбором, вставкой, двоичный поиск, компараторы. Сортировка слиянием. Разделяй-и-властвуй.

Проект - Подсчет порога перколяции с помощью симуляции Монте-Карло и системы непересекающихся множеств.

Неделя

Быстрая сортировка. Выбор элемента ранга k. Равные ключи. Системная сортировка. Приоритетная очередь. Двоичная куча. Сортировка кучей. Хэш-таблица. Двоичное дерево поиска.

Проект - Реализация двухсторонней и вероятностной очередей с помощью массивов и связанных списков.

3
4

Неделя

Геометрические приложения: поиск интервалов, поиск точек пересечения отрезков, KD-деревья. Сбалансированные деревья поиска. 2-3 деревья. Красно-черные деревья. Реализация хэш-таблиц: хэш-функции, метод цепочек, линейное пробирование.

Проект - Решение головоломки “Пятнашки / Игра в 15” с помощью A*-поиска.

Неделя

Недельные каникулы, чтобы перевести дух и нагнать не до конца понятый материал.

5
6

Неделя

Графы. Представление. DFS - поиск в глубину. Поиск пути. Неориентированные и ориентированные графы. BFS - поиск в ширину. Топологическая сортировка. Минимальное остовное дерево. Алгоритм Крускаля. Алгоритм Прима.

Проект - Реализация KD-деревьев с эффективным поиском в интервале и поиском ближайшего соседа.

Неделя

Кратчайший путь в графе. Алгоритм Беллмана-Форда. Алгоритм Дейкстры. Динамическое программирование: кратчайший путь в ориентированном графе. Максимальный поток. Алгоритм Форда-Фулкерсона. Наименьший разрез графа.

Проект - Измерение родства двух существительных с помощью графа WordNet.

7
8

Неделя

Сортировка строк. Подсчет ключей. LSD radix sort. MSD radix sort. 3-сторонний radix quicksort. Суффиксные массивы. Бор или префиксное дерево. Тернарный бор поиска. Сжатие данных. Кодирование длин серий. Сжатие Хаффмана. Алгоритм Лемпеля-Зива-Велча.

Проект - Content-aware cжатие фотографий, сохраняющее самые интересные объекты на фото.

Неделя

Дизайн алгоритмов. Типы алгоритмов. Жадные алгоритмы. Алгоритмы потока. Динамическое программирование. Разделяй-и-властвуй. Вероятностные алгоритмы.

Проект - Реализация преобразования Барроуза-Уилера для сжатия данных.

9
Записаться на курс

🎒 Команда

Арман Сулейменов, автор программы

Основатель, nFactorial School. В прошлом: со-основатель и CTO, Hora.AI (Индия, инвестор - глава поиска в Google), со-основатель и CEO, Zero To One Labs (ведущая студия мобильной разработки, 30 разработчиков, 40+ продуктов в портфолио). Выпускник Принстонского Университета по специальности «Компьютерные науки». Финалист ACM ICPC World Finals (студенческого чемпионата мира по программированию) в 2009г (Стокгольм, Швеция) и 2011г (Орландо, Флорида). Арман преподавал семинары курса «Введение в компьютерные науки» в Принстонском университете в течение 4 семестров в 2010-2012 гг.

Ескендир Султанов, главный лектор

Лектор, nFactorial School. Руководитель инновационного центра и центра олимпийской подготовки в Международном университете информационных технологий (МУИТ), тренер по программированию в РФМШ, преподаватель в Яндекс.Лицей, лектор по алгоритмам и структурам данных в МУИТ. Трехкратный финалист ACM ICPC World Finals (2019-2021) в качестве тренера. За время работы в РФМШ подготовил 50+ призеров Республиканских и Международных олимпиад.

Куаныш Сейлханов, ментор

Ментор, nFactorial School. Разработчик, Rita (Бельгия).
В прошлом: разработчик, Humanise.AI (Великобритания); участник nFactorial Incubator 2017. Образование: Nazarbayev University (2022).

Аида Оспанова, ментор

Ментор, nFactorial School. Backend-разработчик, Kaspi.kz.
В прошлом: стажер-программист, Yandex (Россия); стипендиант программы Google Student Retreat; участница Ethereum Summer Camp 2020 (США). TОП 2% среди 2040 участников Google Kick Start Contest, 2019 (Великобритания). Обладатель бронзовой медали ICPC Northeastern European Subregional Contest, 2019.
Образование: КБТУ (2020), Nazarbayev University (2022).

Записаться на курс

💰 Цена

За что вы платите?

- 8 недель интенсивного обучения
- 40 интерактивных 90-минутных воркшопов
- За одну неделю: 3 живые лекции и 2 семинара в режиме реального времени
- Еженедельные офисные часы с менторами: 3 часа в неделю
- Итого: 84 часа обучения
- Оценки и обратная связь за 7 еженедельных проектов
- 4 пятничных соревнований: 90 минут, 5-7 задач, разбор решений
- Доступ к учебным материалам: 40 видео, слайды, код для 100+ программ
- Доступ к ежедневным домашним заданиям
- Доступ на закрытые онлайн-форум и чат сообщества с менторами
- Ревью/инспекции кода однокурсниками
- Study-партнер из числа сокурсников, меняющийся каждую неделю
- Сертификат Бронза/Серебро/Золото в зависимости от успеваемости
$999
Записаться на курс
Рассрочка: $400 x 3 месяцев

Обучаем программированию
с 2015 года

8
СЕЗОНОВ
300+
ПРИЛОЖЕНИЙ
470+
ВЫПУСКНИКОВ

⭐️Сообщество программистов из Google, Facebook и Amazon

Запуск собственного iOS приложения в App Store было исполнением моей давней мечты. Дальше круче - активные пользователи стали платить за мой продукт!
Нурдаулет Болатов, Software Engineer, Facebook (Лондон, Великобритания); nFactorial '2015
nFactorial - один самых счастливых периодов в моей жизни и одна из причин, почему я получил стажировку в Apple.

Ерсултан Сапар, Software Engineering Intern, Apple ’20 (Купертино, Калифорния); UC Berkeley 2022; nFactorial '2017
Сказать, что nFactorial
повлиял на мою жизнь, значит ничего не сказать. Я встретил много новых друзей и получил удовольствие от увлекательного путешествия!
Ануар Сериков, Software Engineer, Google (Лондон, Великобритания); nFactorial '2015

nFactorial в медиа

Нурсултан Назарбаев, первый Президент РК
Досым Сатпаев, политолог
Асет Исекешев, секретарь Совета Безопасности РК

FAQ

Что мне нужно знать для участия в данной программе?

keyboard_arrow_down

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

Сколько часов мне нужно будет уделять обучению в программе nFactorial?

keyboard_arrow_down

15-20 часов в неделю. За одну неделю: 3 видео-лекции в режиме реального времени, 2 живых семинара, выполнение еженедельного проекта.

Могу ли я учиться удаленно и совмещать с работой/учебой?

keyboard_arrow_down

Абсолютно! Это единственный способ обучения в нашей программе. Наша программа была разработана для участников, которые работают или учатся полный рабочий день. Вам будет представлен доступ на видео-лекции, которые вы сможете смотреть в любое удобное для вас время! Интерактивные лекции и семинары будут проводиться в вечернее время.

Нужен ли мне компьютер?

keyboard_arrow_down

Да. Это может быть ПК или Mac. Требования к компьютеру - минимальные. Главное - это версия операционной системы. Если у Вас ПК, то необходима 64-битная версия Windows 8 или 10.  Если у Вас Mac, то - версии от Mac OS X 10.13 (High Sierra) до Mac OS X 10.15 (Catalina). Если у Вас Linux, то нужна 64-битная версия Linux.

Сколько менторов будут поддерживать студентов во время прохождения обучения?

keyboard_arrow_down

В течение 8 недель студентов будут сопровождать 1-2 ментора и 1 координатор программы.

Есть ли возрастные ограничения для участия в программе?

keyboard_arrow_down

Строгих ограничений нет, но мы предпочитаем студентов старше 15 лет. Мы готовы делать исключения.

Почему Java?

keyboard_arrow_down

Как опытные менторы и разработчики, мы знаем большинство современных языков, таких как Python, Ruby, JavaScript или Go. Мы выбрали Java, потому что он не такой низкоуровневый, как C (с ненужной сложностью для новичков), но также и не слишком высокоуровневый, как Python (который скрывает много чего 'за кулисами'). Java широко используется, доступна, охватывает полный набор современных абстракций, непрерывно развивается с начала 90-х годов и имеет множество автоматических проверок на наличие ошибок в коде. Это также отличный язык для обучения объектно-ориентированному программированию, который будет полезен в мобильной и полнофункциональной веб-разработке. Как заметил создатель C++ Бьярне Страуструп: «Есть только два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется».

Записаться на курс