In this talk at the NYC Lisp meetup, Gerry Sussman was asked why MIT stopped teaching the legendary 6.001 course...

>In this talk at the NYC Lisp meetup, Gerry Sussman was asked why MIT stopped teaching the legendary 6.001 course, which was based on Sussman and Abelson’s classic text The Structure and Interpretation of Computer Programs (SICP). Sussman’s answer was that: (1) he and Hal Abelson got tired of teaching it (having done it since the 1980s). So in 1997, they walked into the department head’s office and said: “We quit. Figure out what to do.” And more importantly, (2) that they felt that the SICP curriculum no longer prepared engineers for what engineering is like today. Sussman said that in the 80s and 90s, engineers built complex systems by combining simple and well-understood parts. The goal of SICP was to provide the abstraction language for reasoning about such systems.

>Today, this is no longer the case. Sussman pointed out that engineers now routinely write code for complicated hardware that they don’t fully understand (and often can’t understand because of trade secrecy.) The same is true at the software level, since programming environments consist of gigantic libraries with enormous functionality. According to Sussman, his students spend most of their time reading manuals for these libraries to figure out how to stitch them together to get a job done. He said that programming today is “More like science. You grab this piece of library and you poke at it. You write programs that poke it and see what it does. And you say, ‘Can I tweak it to do the thing I want?'”. The “analysis-by-synthesis” view of SICP — where you build a larger system out of smaller, simple parts — became irrelevant. Nowadays, we do programming by poking.

Is he right Jow Forums?

Attached: SICP.jpg (931x1398, 194K)

Other urls found in this thread:

web.archive.org/web/20160504164044/http://www.posteriorscience.net/?p=206
twitter.com/NSFWRedditImage

maybe, its also kind of an academic critique, theres plenty of options to do the "old style" of programming they advocate still

Yes.

especially writing control logic. engineers should know more about programming than drawing 300 pages of gates and io signals that they hand off to a mere cad draftsman.

He is right in the sense that you shouldn't read SICP in order to get a programming job.
You read SICP to achieve satori.

lt was too hard for non-whites.

this. it's fucking obvious, and you should be able to tell straight away by sussman's sad joke answer

Attached: 3245234522.jpg (649x528, 14K)

coincidentally europe's universities got rid of SICP during the bologna reform in preparation for the refugee invasion. the more you know.

Attached: x1080-XVj.jpg (1489x1080, 127K)

I think the book is still useful and the techniques are good to learn, but the OPs quote about programming by poking is (mostly) right.

Some of the most used software are massive open source projects that the vast majority of people don’t fully understand. It also doesn’t make sense to roll your own Spark or Kafka when these open source projects have much more manpower and expertise than you do. It still takes skill and knowledge to understand how these tools work and how to build things with them, and to be a good engineer you can’t just blindly use these tools and hope they’ll hold your hand. But with these tools we can build software that can do a lot more than programmers were able to in the past.

Programming has always been built on abstraction. Who fully understands C or Unix?

>Programming has always been built on abstraction.
Only when they first created C to address the deficiencies of assembly. Everything after that was needless "abstraction" for the sake of "abstraction".

So basically I should read HTDP instead. Thanks OP.

Well that's an awfully diplomatic way to say that people nowadays are fucking retards that can't actual solve problems independently but merely glue libs together and fuck around until something sort of kinda works maybe.

It's not confined to CS though, I'm in an entirely different field and all around the curriculum is in decline, people aren't as intelligent or as capable of reasoning as they were in the past.

that's what it looks like, yep

oh wow a textbook from the 80s about computer technology is out of date. who would've guessed?

>Who fully understands C
A lot of people? It’s a very small language.

I bet you role your own network stacks, dbs, load balancers and messaging queues too.

The real patrician path is Euclidean geometry -> philosophy -> mathematical logic (Leibniz, Boole, and Frege) -> the fundamentals of electrical engineering -> assembly language -> C -> some contemporary high-level language like Java or Python

>Nowadays, we do programming by poking
It's come full circle. In the old days (the 80s), we did programming by POKEing and PEEKing

>Java or Python
>high-level language

Attached: 1553963402436.png (482x357, 102K)

>Forth -> some actually good high-level language like Lisp
ftfy

>people aren't as intelligent or as capable of reasoning as they were in the past

They most certainly are. The difference is that we needed warm bodies to take care of unoriginal works while those who are intelligent and capable take on new problems. Every generation thinks that the next generation is full of idiots because the things that were difficult for them are made easy. It's been going on forever, consider what Socrates thought about writing:

>[Writing] will create forgetfulness in the learners’ souls, because they will not use their memories; they will trust to the external written characters and not remember of themselves. The specific which you have discovered is an aid not to memory, but to reminiscence, and you give your disciples not truth, but only the semblance of truth; they will be hearers of many things and will have learned nothing; they will appear to be omniscient and will generally know nothing; they will be tiresome company, having the show of wisdom without the reality.

There will always be intelligent people around, and those intelligent people will help the less intelligent do work that would otherwise be far beyond their capabilities. That's progress - and while the programs these less intelligent people write are less efficient than what could be made by a genius, that genius' time can now be spent on real, difficult problems instead of the ten millionth boring-as-fuck-who-cares-if-its-slow-but-lucrative-program.

you're missing this:
>As to why they chose Python as an alternative, Sussman joked that it was “late binding” decision. Python has a ton of libraries that make it applicable to many types of projects that instructors might want to assign (like writing software to control a robot.)
>Sussman admitted that the SICP curriculum was “more coherent” than what they have now and that they still don’t know what the right curriculum should be.
web.archive.org/web/20160504164044/http://www.posteriorscience.net/?p=206

Except you can measure the decline in today's students proficiency, or lack thereof. Now guess what. They do.

>he says, while posting within a communcations protocol, within a browser within an operating system

Skipping calculus and discrete math ...

lmao the actual state of "programmers" these days

Those are useless junk and discrete "math" isn't even math.

Im arguing that they should not be skipped.

>discrete math
Whoever knew counting could be this fucking hard?
>muh generating functions
Holy fuck.

Attached: 1723452001499545.png (639x360, 229K)

>Who fully understands C
Everyone who has used it for more than a week.

That's a different thing altogether. We have an explosion in the number of students going to college. We don't have an increase in the frequency that we get geniuses. Of course the proficiency of students is going down - everybody is getting in.

That doesn't mean that there are any fewer intelligent people around, it just means that the overall quality is down because of the number of warm-body-code-monkeys they're putting through.

Holy fuck. The current state of Jow Forums

Yes. Brian Kernighan has said the same thing. If you ask more programmers and computer scientists I am sure you will find similar sentiment.

then why is there debates over the nature of C in the linux kernel developers mailing list ? Surely those guys have programmed more than a week.

I just took a look at this book out of curosity, the prologue was talking about how programmers were wizards, then I flipped to a random chapter and it says imperative programming is bad and it's teaching people fucking Scheme
This is the shit they teach people at school? Is this is why this board is so fucking retarded?

He's not wrong, but it's also a magnificently stupid approach

>we want the code monkey alumni
Shame to see MIT go substandard. Even my university funnels every CS, CE, and EE major through a discrete math course taught with Lisp.

cose we not need more programming langiages

Attached: 8QUEENS_SCRIPTBASIC.png (556x504, 21K)

>quins
The worst part about working with scientific code is all the 5-character max variable names. Fucking F77

big surprise that someone throwing the term code monkey around also lacks reading comprehension.

>Who fully understands C or Unix?
>The C Programming Langauge covers the entire langauge at a level suitable for beginner programmers and experienced programmers, has a reference manual for the language, and a reference manual for the standard library in 260 pages
>Who fully understands C or Unix?
A lot of people, user. A lot of people.

People debate the philosophy of C, but the actual language is insanely small.
>Since C is relatively small, it can be described in a small space, and learned quickly. A programmer can reasonably expect to know and understand and indeed regularly use the entire language.
-K&R

>lol why would we want our computer science grads to understand computer science when they can just mix and match libraries in Python

this was not about philosophy but rather syntax and semantics. The language standards and compilers sure aren't the same from the day of K&R.

nobody takes CS because they want to learn computer science. Actual computer science is largely useless

>The language standards and compilers sure aren't the same from the day of K&R.
They've been extended, sure, but the core of the language is largely the same. Most of the debates stem from style and mannerism preferences. C is still a really small language and you're a brainlet if you don't fully understand it. You're probably also confusing people debating how to implement ideas with debating the language.

that's a dumb distinction by that logic every language is simple (other than some troll languages people created). Writing a line of code and implementing an idea as you call it are indistinguishable in practice.

>by that logic every language is simple
No, they are not. Again, 260 pages is enough to explain C's entire feature set and house a reference manual for the language and standard library. You sound like you don't know what you're talking about. What are these discussions you're even referencing?

except socrates was right in many regards. individually we have fallen but as a whole we have grown. the 'machina' is being built on the back of warm shoulders but cold hearts. we are being pushed in a certain direction by (((forces))) and for that greater 'good' you see The Decline of Western Civilization.
enjoy it. drink some brut!

Attached: 1443753121394.jpg (1280x720, 128K)