Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

241–245 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#241
post #93

Earlier quoted context omitted.

well, i started coding in 1st grade (logo, then basic) but this was a summer program hosted by Johns Hopkins. It was highly theoretical - we learned about DFAs, NFAs, epsilon-NFAs, and turing machines.

Wow, I had completely forgotten about writing that interpreter for the PURPLE language [1] in that class. Thanks for the memories! [1] http://www.mattababy.org/~belmonte/Teaching/CS1/PURPLE_proje...

Were you in that class with me? drop a line. Would love to hear from someone else in that class!

Re: Programming by poking: why MIT stopped teaching SICP

#242
I'm not techie, so i'd like to ask if my interpretation is ok. The switch from scheme to python is in the tidal change of conceptual thinking? Previously, giants & pioneers approach AI systematically, w consistent logic and clean structure (like maths language).

However, for now, the narrative shifts to "poking around, hoping to poke the right thing"?

I use Racket & its thinking for research. I think that structured thinking is still intellectually important. So it'd still survive, as there'd still be people sticking w it.

Re: Programming by poking: why MIT stopped teaching SICP

#243
post #127

Earlier quoted context omitted.

I disagree. The field has exploded. It's becoming more and more difficult to take vertical slices of every sub-field. What should we consider fundamental? Programming languages, automata theory, set theory, compilers, assembly language programming, microprocessors and system architecture, algorithms, graph theory, category theory, artificial intelligence, machine learning, operating system, parallel and distributed p…

> What should we consider fundamental? A fair question, and a full answer would be too long for a comment (though it would fit in a blog post, which I'll go ahead and write now since this seems to be an issue). But I'll take a whack at the TL;DR version here. AI, ML, and NLP and web design are application areas, not fundamentals. (You didn't list computer graphics, computer vision, robotics, embedded systems -- all a…

> You need automata theory... Turing-completeness... PDAs and FSAs...

Why? I know that stuff inside and out, and across multiple jobs I have used none of it ever. What chance to use this favourite bit of my education did I miss? (Or rather, might I have missed, so that you might speak to the general case)

> You need to know how to compile a high-level language down to an RTL.

Why? Same comment as above.

> You need to understand what a fixed point is and why it matters.

Well, I don't, and I don't. I request a pointer to suitable study material, noting that googling this mostly points me to a mathematical definition which I suspect is related to, but distinct from, the definition you had in mind.

Otherwise... as I read down this thread I was all ready to disagree with you, but it turns out I'd jumped to a false conclusion, based on the SICP context of this thread. Literacy, what a pain in the butt.

In particular, the idea that ((the notion of an environment) is a fundamental/foundational concept) is a new idea to me, and immediately compelling. I did not learn this in my academic training, learned it since, and have found it be very fruitful. Likewise with lexical vs dynamic binding, actually.

Re: Programming by poking: why MIT stopped teaching SICP

#244
post #127

Earlier quoted context omitted.

> What should we consider fundamental? A fair question, and a full answer would be too long for a comment (though it would fit in a blog post, which I'll go ahead and write now since this seems to be an issue). But I'll take a whack at the TL;DR version here. AI, ML, and NLP and web design are application areas, not fundamentals. (You didn't list computer graphics, computer vision, robotics, embedded systems -- all a…

> You need automata theory... Turing-completeness... PDAs and FSAs... Why? I know that stuff inside and out, and across multiple jobs I have used none of it ever. What chance to use this favourite bit of my education did I miss? (Or rather, might I have missed, so that you might speak to the general case) > You need to know how to compile a high-level language down to an RTL. Why? Same comment as above. > You need to…

>> You need automata theory... Turing-completeness... PDAs and FSAs...

> Why?

So you can write parsers. To give a real-world example, so you can know immediately why trying to parse HTML with a regular expression can't possibly work.

>> You need to know how to compile a high-level language down to an RTL.

>Why?

So that when your compiler screws up you can look at its output, figure out what it did wrong, and fix it.

>> You need to understand what a fixed point is and why it matters.

> Well, I don't, and I don't. I request a pointer to suitable study material

http://ocw.mit.edu/courses/electrical-engineering-and-comput...

Particularly lectures 2A and 7A.

Re: Programming by poking: why MIT stopped teaching SICP

#245
post #93

Earlier quoted context omitted.

Wow, I had completely forgotten about writing that interpreter for the PURPLE language [1] in that class. Thanks for the memories! [1] http://www.mattababy.org/~belmonte/Teaching/CS1/PURPLE_proje...

Were you in that class with me? drop a line. Would love to hear from someone else in that class!

Did you take the class in Los Angeles in 1997?
Post reply on HN