Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
Executable pseudocode is an oxymoron.
Why MIT switched from Scheme to Python (2009)
21–30 of 249 posts
Re: Why MIT switched from Scheme to Python (2009)
#22Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
Re: Why MIT switched from Scheme to Python (2009)
#23Re: Why MIT switched from Scheme to Python (2009)
#24Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
Yes. One of the biggest complaints that computer science departments used to get from students is that they weren't learning any languages that employers are using.
On the contrary, I suspect that such a person is likely to be better suited to build software in either of the latter two.
I also suspect that Python is not a particularly good first language for someone who aims for a professional career building software.
Re: Why MIT switched from Scheme to Python (2009)
#25Scheme it's far easier to grasp. With SICP you basically rewrite a Scheme within a Scheme. And you teach Calculus to the interpreter to solve further problems. Online SICP: http://sarabander.github.io/sicp/
https://mitp-content-server.mit.edu/books/content/sectbyfn/b...
Re: Why MIT switched from Scheme to Python (2009)
#26Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
Executable pseudocode is an oxymoron.
The point is that python's syntax reads a lot more plainly and logically for learning than something like Java.
Re: Why MIT switched from Scheme to Python (2009)
#27Earlier quoted context omitted.
Shouldn't that be the point?
I remember when universities wouldn't teach languages higher level than C/++ because "the languages changed too quickly and the 4 year degree would be obsolete by the time the students graduate". Instead, they focused purely on the low level engineering aspects of the software meeting the hardware, with only advanced classes focusing on things like AI research (pre-LLM days) or modelling fluid dynamics on specialized…
After getting my eyes opened a little bit, I read SICP and it was mind blowing. I read a little Haskell, wrote a little Clojure and a lot of Scala. And even though the day job now is Java and Python, I’m much better off for having bothered to learn it.
Re: Why MIT switched from Scheme to Python (2009)
#28Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
Are functional languages more computer science than imperative languages?
Formal reasoning about imperative programs in terms of their (e.g. axiomatic) semantics is only in a grad-level course, and the programs you can reason about are really, really limited compared to the functional ones. (The last time I TA'd the FP class, one of the homeworks involved proving a simple compiler correct. When I took the grad course, I think the most complicated program we proved correct was selection sort.)
I think "reasoning about programs" is more computer-science than "writing programs," and choosing an imperative language signals that you're not emphasizing the former.
Re: Why MIT switched from Scheme to Python (2009)
#29Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
And honestly you could go your whole career without touching it, maybe only for the naming of an anonymous function.
Boolean logic, graphs, FSMs, set theory, mathematical proofs, pretty much all user here or there. Lambda calculus? Unless you're one of those Haskell fans, meh.
Re: Why MIT switched from Scheme to Python (2009)
#30I was one of the last batches of students on the old Scheme curriculum. I absolutely loved it! Understanding that all loops could be done via recursion, and what a side effect is, is what fundamentally made me fall in love with CS. I've heard good things about the new, and now newer, curriculum but I know I wouldn't have had the awakening I did if it weren't for scheme. RIP SICP --- ps another fun story: we had some…
I think this only held for R4RS and earlier. You can fit War and Peace on one page if you condense it enough.