Заголовок сообщает вам все, что вам нужно знать — Стэнфордский факультет компьютерных наук экспериментирует с заменой своего давнего введения в программирование на основе Java на вводный курс, основанный на JavaScript. Почему?
Какой язык использовать для обучения программированию — большой вопрос.
Вы выбираете что-то академически чистое, что может проиллюстрировать «большие идеи»?
Вы выбираете что-нибудь легкое для начала для вводных курсов?
Вы выбираете что-то, что является лучшим в реальном мире, чтобы у учащихся были востребованные навыки?
Удивительно, но если вы обучаете студентов информатики, вопрос намного проще — по той простой причине, что студенты CS должны изучать несколько языков и извлекать выгоду из сравнения своих сильных и слабых сторон. Так что в значительной степени не имеет значения, какой является первый язык — до тех пор, пока это не отталкивает их от всего проекта. Это говорит о том, что простота начала может быть самым важным фактором, который следует учитывать при принятии начального языка обучения для CS.
Так что, если вы были в ужасе от мысли о том, что красивую, но многословную Java вытесняет уродливый монстр, которым воспринимается JavaScript, подумайте над этим и помните, что это студенты CS.
Чтобы дать вам некоторое представление о текущем состоянии вещей, стоит сообщить о результатах опроса SIGCSE, который показал, чему на самом деле учили студентов CS:
Ява 84, Python 60, С ++ 54, JavaScript 28
Также есть небольшое количество Scheme, ML, Prolog, Assembly, Scratch, PHP … если вы можете назвать язык, кто-то будет его где-то преподавать.
Для справки, Stanford CS перешел с Pascal на C в 1992 году, на Java в 2002 году и теперь на JavaScript в 2017 году. Согласно Stanford Daily:
Эрик Робертс, заслуженный профессор информатики и пионер серии CS106, последние пять лет работал над переходом на JavaScript. Робертс написал новый учебник, создал задания соответствующего объема и подготовил новых ассистентов преподавателя (ТА).
Новый курс CS 106J имеет следующее описание курса
CS 106J: Методология программирования на JavaScript
Введение в разработку компьютерных приложений с упором на современные принципы разработки программного обеспечения: объектно-ориентированное проектирование, декомпозиция, инкапсуляция, абстракция и тестирование. Упор делается на хороший стиль программирования. Этот курс охватывает тот же материал, что и CS 106A, но использует JavaScript, наиболее распространенный язык для реализации интерактивных веб-страниц, вместо Java. Предварительный опыт программирования не требуется. Количество участников ограничено 100.
Условия: Spr | Единицы: 3-5 | Оценка: аккредитив или аккредитив / без кредита
Преподаватели: Дж. Каин (ИП); Робертс, Э. (ИП)
Это хорошая идея?
Это не такая уж плохая идея, как многие могут подумать. JavaScript — один из немногих широко используемых языков, которые работают по-другому. Это не клон Java с немного другим синтаксисом и синтаксическим сахаром. Он действительно подходит к проблеме программирования с другой стороны. Это его отличие, которое является источником множества плохих отзывов в прессе, и действительно глубокая ненависть, которую испытывают многие программисты Java / C ++ / C #, вынужденные его использовать. Это также причина, по которой так много людей пытались исправить это — где «исправить» означает направить его в сторону клона Java на основе классов.
JavaScript далек от совершенства, но с ним легко начать, и в нем достаточно функций, чтобы можно было проиллюстрировать идеи программирования, не привязывая учащегося к преобладающей догме объектно-ориентированного программирования на основе классов. Если они переживут первоначальную встречу с программированием, а я думаю, что JavaScript делает это более вероятным, тогда они будут готовы выучить еще два или три языка, прежде чем они закончат и отправятся в мир, где обучение продолжается.