4 ms·
Speaking as one of the people who helped lead the push for moving to Python in 15-110 and 15-112, the reduction of OOP was extremely deliberate. At the end of
by dgacmu 12y ago
Speaking as one of the people who helped lead the push for moving to Python in 15-110 and 15-112, the reduction of OOP was extremely deliberate.
At the end of the day, Python won because it could be used to express programming concepts quite clearly in both an imperative and, to a slightly limited degree, functional manner, in ways that were appropriate for a variety of domains. And it did it in a way that substantially reduced the "boilerplate" syntax burden, which most of us take for granted, but is a large pain for newcomers to programming.
print "hello, world"
is very easy for a beginner.
Depending on what your background is,
[(i*3) for i in [1, 2, 3]]
may be a very clear way to multiply every element of an array by 3. Or it may be confusing as heck. :)
Our general hope is that by the time our current first years make it through the program that there will be even less of an emphasis on OOP needed. C0, for example, introduces an additional component of formal reasoning, and my shift of 15-440 replaced C++ with Go, which has a modestly less "OOP"-centric flavor. The big drawback now is that the transition from 110/112 to the formality of C0 and the functional intro with ml is rather jarring. That's partly by design, to get people to think about computer science differently than what they might have learned about "programming" in high school, but we'll see if we can optimize it.
(I'm posting about this because I'll be teaching 15-112 with David Kosbie next Spring.)
- aniruddhc 12y agoProfessor Anderson, You should go back to teaching Distributed Systems in Go next semester. Pretty please.