Введение в язык программирования Java. Основные концепции программирования. Анатомия программы. Встроенные типы данных. Преобразование типов. Шаги в разработке программы. Условные выражения: оператор 'if'. Циклы: оператор 'while', цикл 'for'. Вложенный код. Отладка (дебаггинг) программ.
Массивы. Код для обработки массивов. Двумерные массивы. Стандартный ввод и вывод. Графика. Фракталы. Анимация.
Проект 🌎 - «Симуляция и визуализация солнечной системы: 8 планет, вращающихся вокруг солнца с разными скоростями, ускорениями и силами притяжения, действующими между ними».
Недельные каникулы, чтобы перевести дух
Функции и библиотеки. Пример использования: цифровое аудио. Применение: распределение Гаусса. Модульное программирование. Классические примеры. Рекурсивная графика. Оптимизация: предотвращение "экспоненциальной" работы. Динамическое программирование.
Проект 🔵 - «Фракталы, треугольник Серпинского, множество Мандельброта, плюс создание собственного фрактала / рекурсивной графики (будет конкурс на самый оригинальный фрактал)».
Объектно-ориентированное программирование. Цвет. Обработка изображения. Обработка строк. Создание новых типов данных. Примеры: электрический заряд, черепашья графика, комплексные числа.
Проект 🔢 - «Распознавание рукописных цифр с помощью элементарного машинного обучения».
Скорость алгоритмов. Эмпирический анализ. Математические модели. Асимптотическая сложность. Алгоритмы поиска: последовательный поиск, бинарный поиск. Алгоритмы сортировки: сортировка вставкой, сортировка слиянием, самая длинная повторяющаяся подстрока.
Проект 🔢😮 - «Введение в машинное обучение и нейронные сети. Классический метод обучения перцептрона. Собственная реализация перцептрона и мульти-перцептрона для распознавания рукописных цифр».
Классические структуры данных. API и клиенты. Стеки, очереди, связанные списки и их реализация.
Проект 🚶 - «Эвристики для решения задачи коммивояжера (классическая задача в комбинаторной оптимизации), где нужно найти самый выгодный маршрут для продавца, чтобы пройти все указанные города и вернуться в исходный город».
Основатель, nFactorial School. В прошлом: со-основатель и CTO, Hora.AI (Индия, инвестор - глава поиска в Google), со-основатель и CEO, Zero To One Labs (ведущая студия мобильной разработки, 30 разработчиков, 40+ продуктов в портфолио). Выпускник Принстонского Университета по специальности «Компьютерные науки». Финалист ACM ICPC World Finals (студенческого чемпионата мира по программированию) в 2009г (Стокгольм, Швеция) и 2011г (Орландо, Флорида). Арман преподавал семинары курса «Введение в компьютерные науки» в Принстонском университете в течение 4 семестров в 2010-2012 гг.
Одним из любимых воспоминаний от учебы в nFactorial School было участие в моем первом соревновании по программированию в режиме реального времени!
До начала курса у меня не было никакого опыта в программировании. Но сейчас, благодаря искренней заинтересованности преподавателей nFactorial School в нашем обучении, я умею решать задачки уровня «Easy» на Leetcode.
Я чувствую, что получил колоссальные знания. Программирование - это очень интересно. Конечно, очень challenging, но, когда есть результаты, это приносит колоссальное удовольствие.
Я чувствую, что получил колоссальные знания. Программирование - это очень интересно. Конечно, очень challenging, но, когда есть результаты, это приносит колоссальное удовольствие.
Всего за 8 недель я сделал сильный скачок, теперь все одноклассники просят моего совета по информатике. Поэтому я решил открыть клуб любителей программирования в своей школе. Спасибо, что помогли мне найти мою страсть!
Я чувствую, что получил колоссальные знания. Программирование - это очень интересно. Конечно, очень challenging, но, когда есть результаты, это приносит колоссальное удовольствие.
Данный курс разработан для новичков. Вам не нужны какие-либо предварительные знания или опыт в программировании.
15-20 часов в неделю. За одну неделю: просмотр 3 предзаписанных видео-лекций, выполнение домашних работ и еженедельных проектов.
Абсолютно! Это единственный способ обучения в нашей программе. Наша программа была разработана для участников, которые работают или учатся полный рабочий день. Вам будет представлен доступ на видео-лекции, которые вы сможете смотреть в любое удобное для вас время!
Да. Это может быть ПК или Mac. Требования к компьютеру - минимальные. Главное - это версия операционной системы. Если у Вас ПК, то необходима 64-битная версия Windows 8 или 10. Если у Вас Mac, то - версии от Mac OS X 10.13 (High Sierra) до Mac OS X 10.15 (Catalina). Если у Вас Linux, то нужна 64-битная версия Linux.
Основываясь на предыдущем опыте Армана по ведению данного курса, многие студенты с опытом программирования находят этот курс нестандартным, увлекательным и чрезвычайно полезным для создания прочной базы в компьютерных науках. В этом курсе мы рассмотрим алгоритмическую сложность, алгоритмы сортировки и поиска, классические структуры данных.
Строгих ограничений нет, но мы предпочитаем студентов старше 15 лет. Мы готовы делать исключения. В первом потоке nFactorial Start самому младшему участнику было 12 лет, а самому старшему - 44.
К концу программы у вас будут фундаментальные знания в области компьютерных наук, объектно-ориентированного программирования и Java. Вне зависимости от ваших целей, программа nFactorial Start позволит правильно подготовиться к следующим специализациям: алгоритмы, веб-разработка, мобильная разработка, разработка игр, анализ данных, машинное обучение и т.д.. Из нашего опыта: прыгать в одну из этих специализаций с нуля без сильной базы в программировании очень неэффективно, сильно замедляет процесс обучения и имеет низкий процент успеха.
Как опытные менторы и разработчики, мы знаем большинство современных языков, таких как Python, Ruby, JavaScript или Go. Мы выбрали Java, потому что он не такой низкоуровневый, как C (с ненужной сложностью для новичков), но также и не слишком высокоуровневый, как Python (который скрывает много чего 'за кулисами'). Java широко используется, доступна, охватывает полный набор современных абстракций, непрерывно развивается с начала 90-х годов и имеет множество автоматических проверок на наличие ошибок в коде. Это также отличный язык для обучения объектно-ориентированному программированию, который будет полезен в мобильной и полнофункциональной веб-разработке. Как заметил создатель C++ Бьярне Страуструп: «Есть только два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется».