Why Structure and Interpretation of Computer Programs matters / Почему SICP важен

→The discussion has been sharper recently because MIT underwent a major redesign of their lower division EECS curriculum. People outside MIT tend to summarize that redesign as "MIT decided to switch to Python," but that's not a perceptive description. What MIT decided was to move from a curriculum organized around topics (programming paradigms, then circuits, then signal processing, then architecture) to a curriculum organized around applications (let's build and program a robot; let's build and program a cell phone). Everything about their courses had to be reorganized; the choice of programming language was the least of those decisions. Their new approach is harder to teach; for one thing, each course requires a partnership of Electrical Engineering faculty and Computer Science faculty. Perhaps in time the applications-first approach will spark a revolution as profound as the one that followed SICP, but it hasn't happened yet.
0 Недавнее обсуждение было острым,потому что MIT подвергся модернизации.Люди вне MIT описали это как "MIT решил перейти на Python",но это не содержательное описание.MIT решил перейти от учебной программы связанной вокруг тему (архитектура,обработка сигналов) кк программе связанной вокруг приложений(построить робота)Все в этих курсах должно быть реорганизовано,и выбор языка программирования был наименьшим из этих выборов.Их подход тяжелее в обучении,с одной стороны этот курс требует EE факультет и CS факультет.Возможно первый подход потребует столь же глубокой революции,которая была за SICP ,но пока этого не случилось
→I've been teaching a SICP-based course since 1987. The course has changed incrementally over that time; we've added sections on parallelism, concurrency control, user interface design, and the client/server paradigm. But it's still essentially the same course. Every five years or so, someone on the faculty suggests that our first course should use language X instead; each time, I say "when someone writes the best computer science book in the world using language X, that'll be fine" and so far the faculty have always voted to stay with the SICP course. We'll find out pretty soon whether the course can survive my own retirement.
0 Я учил SICP с 1987.Курс увеличивался за это время,мы добавили главы о паралелизме,управлениею потоками,интерфейсе юзреа,и кдиент/серверной парадигме.Но по существу это тот же курс.Каждые 5 лет ктото из факультета предлагает использовать язык X вместо,и каждый раз я говорю "когда ктото пишет лучшуу компьютерную книгу в мире,это будет хорошо" и голосованием остаемся с SICP.Мы довольно скоро узнаем сможет ли курс пережить свою пенсию
→SICP itself has had a longevity that's very unusual for introductory CS textbooks. Usually, a book lasts only as long as the language fad to which it is attached. SICP has been going strong for over 25 years and shows no sign of going out of print. Computing has changed enormously over that time, from giant mainframe computers to personal computers to the Internet on cell phones. And yet the big ideas behind these changes remain the same, and they are well captured by SICP.
0 SICP очень долгое существование что необычно для учебников в CS.Обычно книга продолжает жить с языком программирования,для которого она написана.У SICP крепкие позиции на протяжении 25 лет,а не собирается выхожить из печати.Вычисления серьезно изменились за это время,от гигантских менфреймов до персональных ПК и телефонов.Но главные идеи стойщие позади остаются темиже самыми,которые точно отражены в SICP
→In my experience, relatively few students appreciate how much they're learning in my course while they're in it. But in surveys of all our CS students, it turns out to be among the most popular courses in retrospect, and I regularly get visits and emails from long-gone students to tell me about how they're using in their work ideas that they thought were impractical ivory-tower notions as students. The invention of the MapReduce software for data parallelism at Google, based on functional programming ideas, has helped eliminate that ivory-tower reputation.
0 По моему опыту,относительно немного студентов ,которые ценят сколько они изучают в моем курсе пока проходят его.Но в обзорах наших студентов,это самый популярный курс в ретроспективе,и я регулярно получаю email от давно выпустившихся студентов которые говоря мне об использовании в их работе идей которые были как башни слоновойй кости для студентов.Изобретение MapReduce программдля параллельной обработки данных в Google,базированне на функциональных идеях,помогло убрать репутацию башни из слоновой кости
→Statistically, SICP-based courses have been a small minority. But the book has had an influence beyond that minority. It inspired a number of later textbooks whose authors consciously tried to live up to SICP's standard. The use of Scheme as a language for learners has been extended by others over a range from middle school to graduate school. Even the more mainstream courses have become sensitive to the idea of programming paradigms, although most of them concentrate on object oriented programming. The idea that computer science should be about ideas, not entirely about programming practice, has since widened to include non-technical ideas about the context and social implications of computing.
0 Статистически,курс основанные на SICP были меньшинством.Но книга имела влияние за пределами меньшинства.Это вдохновило ряд более поздних учебников,пытаться следовать стандартам SICP.Использование Sсheme как языка для обучения было расширено от средней школы,до аспирантуры.Даже более популярные курсы стали чувствительными к программным парадигмам,хотя большинство из них концентрируются на ООП парадигме.Идея что информатика должна быть об идеях,а не только о практике программирования,была расширена и на нетехнические идеио социальных вычислениях
→Finally, SICP was firmly optimistic about what a college freshman can be expected to accomplish. SICP students write interpreters for programming languages, ordinarily considered more appropriate for juniors or seniors. The text itself isn't easy reading; it has none of the sidebars and colored boxes and interesting pictures that typify the modern textbook aimed at students with low attention spans. There are no redundant exercises; each exercise teaches an important new idea. It uses big words. But it repays a close reading; every sentence matters.
0 В конечном счете SICP был оптмистично настроен ,что ожидать от студентов 1 курса.SICP студенты пишут интерепретатор для языка программированя,которые боле подходят для junior или senior.Текс не легок для чтения,на нем нет боковых панелей,и цветних вставок или интересных вставок,которые олицетворяют современный учебники для студетнов с низкой концентрацией внимани.Здесь нет лишних упражнений,аждое упражнене учит нововй важной идее.
→in particular, letting us see how object oriented programming is implemented, so OOP languages don't seem like magic to our students. Scheme is a dialect of Lisp, so it's great at handling functions as data, but it's a stripped-down version compared to the ones more commonly used for professional programming, with a minimum of bells and whistles. It was very brave of Abelson and Sussman to teach their introductory course in the best possible language for teaching, paying no attention to complaints that all the jobs were in some other language. Once you learned the big ideas, they thought, and this is my experience also, learning another programming language isn't a big deal; it's a chore for a weekend. I tell my students, "the language in which you'll spend most of your working life hasn't been invented yet, so we can't teach it to you. Instead we have to give you the skills you need to learn new languages as they appear."
0 В частности,позволяя увидеть как реализовано обьектно-ориентированое программирование,и ООП языки не кажутся такими волшебными для наших студентов.Scheme это диалект Lisp ,и прекрасно справляется с функциями как данными,но это урезанная версия по сравнению с теми что используются в профессиональном программировании,с минимумом рюшечек.Это было очень храбро для Anelson и Sussman изучать вводный курс на лучшем из возможных языков для изучения,не обращая внимания на жалобы ,что всe рабочие места на других язык.Однажды изучив идею,они думали,и мой опыт подсказывает также,изучение еще одного языка программирования не настолько ьрудное,это работа на выходные.Я говорю моим студентам "язык который вы потратите большую часть своего рабочего времени еще не был изобретен,поэтому мы не можем преподавать его вам.Вместо этого вмы дадим вам навыки изучать языки программирования,как только они появляются"
→Another revolution was the choice of Scheme as the programming language. To this day, most introductions to computer science use whatever is the "hot" language of the moment: from Pascal to C to C++ to Java to Python. Scheme has never been widely used in industry, but it's the perfect language for an introduction to CS. For one thing, it has a very simple, uniform notation for everything. Other languages have one notation for variable assignment, another notation for conditional execution, two or three more for looping, and yet another for function calls. Courses that teach those languages spend at least half their time just on learning the notation. In my SICP-based course at Berkeley, we spend the first hour on notation and that's all we need; for the rest of the semester we're learning ideas, not syntax. Also, despite (or because of) its simplicity, Scheme is a very versatile language, making it possible for us to examine those three programming paradigms and,
0 Еще одной революционной идеей был выбор языка программирования.На сегодняшний день много введений в CS используют любой из популярных языков на текущий момент:от Паскаля к C к С++,в Java или Python.Scheme никогда не использовался в индустрии,ео прекрасно подходит как введение в CS.C одной стороны,у него есть простой,единый синтаксис для всего.В остальных языках одно обозначение для переменных,другое для условных вычислений,2 или 3 синтаксиса для циклов,другие для вызовов функций.Курсы изучающие эти языки ,тратят по крайней мере половину времени на изучение синтаксиса.В моей SICP основанном курсе в Беркли мы тратим на изучение синтаксиса первый час и это все что нам нужно.Остальное время мы изучаем идеи,не синтаксис.Также неспотря на простоту Scheme очень универсальный язык,позволяющий изучать три парадигмы программирования и
→It focused attention on the central idea of abstraction -- finding general patterns from specific problems and building software tools that embody each pattern. It made heavy use of the idea of functions as data, an idea that's hard to learn initially, but immensely powerful once learned. (This is the same idea, in a different form, that makes freshman calculus so notoriously hard even for students who've done well in earlier math classes.) It fit into the first CS course three different programming paradigms (functional, object oriented, and declarative), when most other courses didn't even really discuss even one paradigm.
0 SICP фобращает внимание на центральную идею абстракции-нахождение общих паттернов в частных задачах и конструирования программ которые реализуют каждый паттерн.Сложно использовать концепцию функций как данных,и эта концепцию тяжело изучить сначала,но она становится очень мощной как только изучена.Это вписывает в первый курс о CS 3 различные парадигмы (функциональную,обьектно-ориентированую и декларативную),когда остальные курсы толком не обсуждает 1 парадигму
→SICP was revolutionary in many different ways. Most importantly, it dramatically raised the bar for the intellectual content of introductory computer science. Before SICP, the first CS course was almost always entirely filled with learning the details of some programming language. SICP is about standing back from the details to learn big-picture ways to think about the programming process.
0 SICP был революционным по многим причинам.Самое существенное,что он резко поднял планку в введение в CS.Перед SICP,первые CS курсы целиком состояли из изучения деталей некоторых языков программирования.SICP отходит от деталей в сторону изучения общей картины о программировании
Резюме
Пол:
мужчина
Родной язык:
русский
С нами:
с 4 марта 2013 г. (4975 дней)
Не является членом клуба.
Деятельность:
14 версий перевода с общим рейтингом 0
Написать R11baka личное сообщение