Why Structure and Interpretation of Computer Programs matters / Почему SICP важен: SICP
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
SICP был революционным по многим причинам.Самое существенное,что он резко поднял планку в введение в CS.Перед SICP,первые CS курсы целиком состояли из изучения деталей некоторых языков программирования.SICP отходит от деталей в сторону изучения общей картины о программировании R11baka 16.04.13 в 11:11 |
|
|
SICP фобращает внимание на центральную идею абстракции-нахождение общих паттернов в частных задачах и конструирования программ которые реализуют каждый паттерн.Сложно использовать концепцию функций как данных,и эта концепцию тяжело изучить сначала,но она становится очень мощной как только изучена.Это вписывает в первый курс о CS 3 различные парадигмы (функциональную,обьектно-ориентированую и декларативную),когда остальные курсы толком не обсуждает 1 парадигму R11baka 16.04.13 в 11:23 |
||
|
Еще одной революционной идеей был выбор языка программирования.На сегодняшний день много введений в CS используют любой из популярных языков на текущий момент:от Паскаля к C к С++,в Java или Python.Scheme никогда не использовался в индустрии,ео прекрасно подходит как введение в CS.C одной стороны,у него есть простой,единый синтаксис для всего.В остальных языках одно обозначение для переменных,другое для условных вычислений,2 или 3 синтаксиса для циклов,другие для вызовов функций.Курсы изучающие эти языки ,тратят по крайней мере половину времени на изучение синтаксиса.В моей SICP основанном курсе в Беркли мы тратим на изучение синтаксиса первый час и это все что нам нужно.Остальное время мы изучаем идеи,не синтаксис.Также неспотря на простоту Scheme очень универсальный язык,позволяющий изучать три парадигмы программирования и R11baka 16.04.13 в 12:08 |
||
|
В частности,позволяя увидеть как реализовано обьектно-ориентированое программирование,и ООП языки не кажутся такими волшебными для наших студентов.Scheme это диалект Lisp ,и прекрасно справляется с функциями как данными,но это урезанная версия по сравнению с теми что используются в профессиональном программировании,с минимумом рюшечек.Это было очень храбро для Anelson и Sussman изучать вводный курс на лучшем из возможных языков для изучения,не обращая внимания на жалобы ,что всe рабочие места на других язык.Однажды изучив идею,они думали,и мой опыт подсказывает также,изучение еще одного языка программирования не настолько ьрудное,это работа на выходные.Я говорю моим студентам "язык который вы потратите большую часть своего рабочего времени еще не был изобретен,поэтому мы не можем преподавать его вам.Вместо этого вмы дадим вам навыки изучать языки программирования,как только они появляются" R11baka 16.04.13 в 12:36 |
||
|
В конечном счете SICP был оптмистично настроен ,что ожидать от студентов 1 курса.SICP студенты пишут интерепретатор для языка программированя,которые боле подходят для junior или senior.Текс не легок для чтения,на нем нет боковых панелей,и цветних вставок или интересных вставок,которые олицетворяют современный учебники для студетнов с низкой концентрацией внимани.Здесь нет лишних упражнений,аждое упражнене учит нововй важной идее. R11baka 16.04.13 в 12:44 |
||
|
Статистически,курс основанные на SICP были меньшинством.Но книга имела влияние за пределами меньшинства.Это вдохновило ряд более поздних учебников,пытаться следовать стандартам SICP.Использование Sсheme как языка для обучения было расширено от средней школы,до аспирантуры.Даже более популярные курсы стали чувствительными к программным парадигмам,хотя большинство из них концентрируются на ООП парадигме.Идея что информатика должна быть об идеях,а не только о практике программирования,была расширена и на нетехнические идеио социальных вычислениях R11baka 16.04.13 в 12:55 |
||
|
SICP очень долгое существование что необычно для учебников в CS.Обычно книга продолжает жить с языком программирования,для которого она написана.У SICP крепкие позиции на протяжении 25 лет,а не собирается выхожить из печати.Вычисления серьезно изменились за это время,от гигантских менфреймов до персональных ПК и телефонов.Но главные идеи стойщие позади остаются темиже самыми,которые точно отражены в SICP R11baka 16.04.13 в 13:43 |
||
|
Я учил SICP с 1987.Курс увеличивался за это время,мы добавили главы о паралелизме,управлениею потоками,интерфейсе юзреа,и кдиент/серверной парадигме.Но по существу это тот же курс.Каждые 5 лет ктото из факультета предлагает использовать язык X вместо,и каждый раз я говорю "когда ктото пишет лучшуу компьютерную книгу в мире,это будет хорошо" и голосованием остаемся с SICP.Мы довольно скоро узнаем сможет ли курс пережить свою пенсию R11baka 16.04.13 в 14:04 |
||
|
Недавнее обсуждение было острым,потому что MIT подвергся модернизации.Люди вне MIT описали это как "MIT решил перейти на Python",но это не содержательное описание.MIT решил перейти от учебной программы связанной вокруг тему (архитектура,обработка сигналов) кк программе связанной вокруг приложений(построить робота)Все в этих курсах должно быть реорганизовано,и выбор языка программирования был наименьшим из этих выборов.Их подход тяжелее в обучении,с одной стороны этот курс требует EE факультет и CS факультет.Возможно первый подход потребует столь же глубокой революции,которая была за SICP ,но пока этого не случилось R11baka 16.04.13 в 14:26 |
||
|
По моему опыту,относительно немного студентов ,которые ценят сколько они изучают в моем курсе пока проходят его.Но в обзорах наших студентов,это самый популярный курс в ретроспективе,и я регулярно получаю email от давно выпустившихся студентов которые говоря мне об использовании в их работе идей которые были как башни слоновойй кости для студентов.Изобретение MapReduce программдля параллельной обработки данных в Google,базированне на функциональных идеях,помогло убрать репутацию башни из слоновой кости R11baka 16.04.13 в 13:38 |
