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

СИКП на JS

Эти курсы перевернут ваше представление о том что такое код, данные и функции. Они базируются на легендарном курсе "Структура и Интерпретация Компьютерных Программ (СИКП). В этих курсах создаются свои собственные типы данных, из которых строятся другие типы, изучаются функции высшего порядка, каррирование, частичное применение и многое другое. Вы познакомитесь с отложенными вычислениями, мемоизацией и лямбда-исчислением.

Course

JS: Функциональное программирование

PRO

Тема функций — одна из центральных в JavaScript. Их мощь позволяет порой творить настоящие чудеса. Начиная с этого курса, функции начинают использоваться как данные, порождают другие функции и получают функции как аргументы.

View Course
Hours Count

Course

JS: Составные данные

PRO

Следующий шаг после освоения основ программирования это изучение идеи составных данных. Этот курс посвящён изучению концепций, позволяющих из простых типов данных составлять более сложные данные, необходимые для решения конкретной задачи и для реализации конкретной программы. На примере разработки простой графической библиотеки мы изучим как «подняться» от уровня простых чисел до уровня двумерных объектов и рисунков.

View Course
Hours Count

Course

JS: Последовательности

PRO

Продолжение изучения составных данных на более продвинутом уровне. Рассматриваем тип данных «список». В течение курса работаем над проектом «Генератор HTML», и на практике учимся понимать и использовать функции высшего порядка filter, map и reduce. Знакомимся с иерархическими структурами и уровневым проектированием.

View Course
Hours Count

Course

JS: Программирование, управляемое данными

PRO

В течение этого курса мы будем писать собственную карточную игру и знакомиться с такими важными концепциями программирования, как пользовательские типы, динамическая диспетчеризация по типу, позволяющая писать ёмкий, универсальный код, полиморфизм, передача сообщений между сущностями и, конечно, основы важнейшей темы — объектно-ориентированного программирования. Также мы перейдем к разработке через тесты (test driven development).

View Course
Hours Count

Course

JS: Коллекции

PRO

Этот курс посвящен конкретным приемам в работе с коллекциями, которые используются в языке JavaScript, а также изучению основных типов данных: массивов, ассоциативных массивов и множеств. В течение курса изучаются темы техники мемоизации, ленивых вычислений, использования функций высшего порядка, так называемых spread- и rest-операций и техник разрушающих присваиваний.

View Course
Hours Count

Challenges

JS: Составные данные
Pairs without functions
pairs.js -
JS: Составные данные
Triple
triple.js
JS: Составные данные
Pairs on strings
pair.js
JS: Последовательности
Select by selector
solution.js
JS: Последовательности
Take
take.js
JS: Последовательности
Select by selector
solution.js
JS: Последовательности
The Queens
solution.js
JS: Последовательности
Flattening
flatten.js
JS: Последовательности
Quick Sort
sort.js
JS: Последовательности
Lists based on strings
list.js
JS: Последовательности
Same Parity
solution.js
JS: Последовательности
Zip
zip.js
JS: Последовательности
Polygon perimeter
solution.js
JS: Коллекции
Arrays intersection
solution.js
JS: Коллекции
Query Sting Builder
solution.js
JS: Коллекции
Find the nearest
union.js
JS: Коллекции
NRZI encoding
solution.js
JS: Коллекции
Enlarge 2D array image
solution.js
JS: Коллекции
Find odd
solution.js
JS: Коллекции
Find the difference
solution.js
JS: Коллекции
Data normalization
solution.js
JS: Коллекции
From pairs
solution.js
JS: Коллекции
Exclude unnecessary
solution.js
JS: Коллекции
Chunking
solution.js
JS: Функциональное программирование
Currying
solution.js
JS: Функциональное программирование
Function composition
solution.js
JS: Функциональное программирование
Church Numerals
solution -