Live data from Hacker News

Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

cemerick.com

1–10 of 141 posts

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#2
> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment.

I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money".

I learned Scheme as a first language and I will be forever grateful for it.

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#3
post #2

> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment. I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money". I learned Scheme as a first language and I will be forever grateful for it.

If it was any other school than MIT I might agree, but since it’s MIT I doubt that is what the parents are thinking.

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#4
post #2

> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment. I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money". I learned Scheme as a first language and I will be forever grateful for it.

Do you think that "How to Design Programs"[1] is the best intro book? Should it be followed by SICP[2]?

[1] https://htdp.org/ [2] https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#6
post #2

> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment. I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money". I learned Scheme as a first language and I will be forever grateful for it.

Do you think that "How to Design Programs"[1] is the best intro book? Should it be followed by SICP[2]? [1] https://htdp.org/ [2] https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

I really like htdp, it was used for a bit in my intro class as well, but that curriculum also covered concepts that weren’t from the book. I also have been forever grateful for being taught scheme as my first language.

Previous discussion on HN about the second addition:

https://news.ycombinator.com/item?id=14932552

EDIT: I feel like it is not all-encompassing but it is a good start. It is definitely unique in the concepts that it covers.

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#9
post #2

> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment. I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money". I learned Scheme as a first language and I will be forever grateful for it.

If the parents are really that concerned about their kids learning the wrong first programming language in college, then they're not helicoptering enough! Why didn't they teach their kids to program JavaScript or Logo when they were in middle or elementary school?

https://snap.berkeley.edu

https://bjc.berkeley.edu

Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)

#10
I think scheme was better educationally but harder pedagogy. It requires a french metric tonne of time and contact time and patience to get some ideas through. I speak as one who did FORTRAN 74 first and tried to learn LISP self taught. Talking to others who did LISP first, what they did is recapitulate the instantiation of fundamental data structures and algorithm concepts while we just made 10x over engineered battering Rams out of rusty iron bars.

Python3 (which I live in btw) doesn't exactly exude it's functional elements beyond the simple lamda you have to import from functools so recursive solutions don't lend themselves to it syntactically speaking, inherently in the language.

OTOH those battering rams come in handy for beating simple problems into submission.

Post reply on HN