Мы уже рассказывали про визуальный язык Scratch, который отлично подходит, чтобы обучить детей основам программирования. Snap! расширяет возможности Scratch, позволяя юным разработчикам перейти на новый уровень компьютерных знаний.
Как и зачем появился Snap!
Изначально Snap! был встроенным расширением одной из версий Scratch. Сегодня это полностью независимая среда программирования, которая предлагает возможности, отсутствующие в родительском языке.
Эти функции изначально не стали включать в Scratch, чтобы не усложнять обучение детей программированию. Разработчики справедливо посчитали, что самое важное для ребёнка - это усвоить базовые принципы, которые позволяют создавать простейшие программы. Именно благодаря тому, что они сосредоточились на ограниченном наборе функций, Scratch и оказался так эффективен для работы с самыми маленькими программистами. В свою очередь, Snap! предназначен для аудитории постарше, условно - тинейджеров.
Главные отличия Snap! от Scratch
Альтернативное название этого языка - Build Your Own Blocks ("Создавай свои собственные блоки"). В этом и заключается одно из главных преимуществ Snap по сравнению с Scratch. Он позволяет ученикам объединять написанные последовательности команд в новый элемент, который потом можно добавлять в новые цепочки. Фактически это реализация функций, которые во взрослых языках называются вложенными. В результате относительно сложные программы удаётся создавать, как по "щелчку пальцев" - именно это и означает слово "snap".
Схожим образом Snap! позволяет создавать прочие объекты первого класса - т.е. такие элементы, которые могут быть передаваться в качестве параметров, возвращаться из функций, присваиваться переменным. Например, так можно легко оперировать списками и даже списками списков, работать с объектами (спрайтами) согласно принципам прототипного программирования. Этот стиль программирования используется, например, в JavaScript, позволяя разработчику применять клонированные объекты.
Обучение программированию в Snap! готовит учеников к знакомству с Python, JavaScript, C и прочими популярными языками. Как и в случае Scratch, всё происходит фактически без использования кода, что сильно снижает порог входа в мир разработки и избавляет слушателей курсов от страхов, что они не справятся с непонятным и скучным материалом.
Остались вопросы? Напишите нам, и мы расскажем о содержании курса и прочих интересующих вас деталях.