Why Did M.I.T. Switch from Scheme to Python?
danweinreb.org
Why Did M.I.T. Switch from Scheme to Python?
1–10 of 66 posts
Re: Why Did M.I.T. Switch from Scheme to Python?
#2The ground up approach is something like SICP, with fundamentals in lambda calculus or Turing machines. Students learn rules such as how a Lisp evaluates an expression and write programs which apply the rules. It's not necessary that this be taught using Lisp, but it seems to be popular, because it greatly reduces distractions when understanding and writing actual programs. In any case, the ground-up approach generally teaches first a system of rules, and only once the rules are understood does it move on to programs.
The top-down approach, on the other hand, starts with programs. Often the students are given a partially written program and are asked to improve it. The curriculum doesn't focus on rules because they all have exceptions. It's much more like engineering and less like mathematics. As the article says, nowadays "a real engineer is given a big software library, with a 300-page manual that’s full of errors. He’s also given a robot, whose exact behavior is extremely hard to characterize...."
What's better? Some schools (such as my alma mater, Brown) have two intro classes, one for each method of teaching. I chose the rules-based bottom-up approach when I was an undergrad, and it was very good, and I was convinced it was the better way to go.
But I'm losing my conviction, partially because MIT is changing it and they must know what they're doing (heh), and partially because I'm coming to the understanding that everybody uses libraries and this is not going to change. The top-down approach doesn't really provide any sense that there should be libraries, that code should be organized, that you can write to an interface and document your code. People can learn these sorts of things later, though.
Re: Why Did M.I.T. Switch from Scheme to Python?
#3Re: Why Did M.I.T. Switch from Scheme to Python?
#4This issue is a fundamental one that everybody teaching programming or computer science must answer. Is it better to teach CS from the ground up or top down? The ground up approach is something like SICP, with fundamentals in lambda calculus or Turing machines. Students learn rules such as how a Lisp evaluates an expression and write programs which apply the rules. It's not necessary that this be taught using Lisp, b…
Re: Why Did M.I.T. Switch from Scheme to Python?
#5The title is a bit misleading. The gist of TFA is that MIT is switching from Scheme to Python in its INTRODUCTION TO PROGRAMMING course. That would seem to me to be a bit of a no brainer. I find python to be a much more acceptable alternative than BASIC in introducing people new to coder in a way that is more in line with sound computer engineering practices.
Re: Why Did M.I.T. Switch from Scheme to Python?
#6A lot of the charm of academia, to me, is that it gives you some breathing room to step back from the mess, and look for unifying principles. There might be a bit of a shock when the student first graduates, but in the long term they're often better off with the kind of knowledge that they couldn't easily pick up through osmosis.
Re: Why Did M.I.T. Switch from Scheme to Python?
#7This issue is a fundamental one that everybody teaching programming or computer science must answer. Is it better to teach CS from the ground up or top down? The ground up approach is something like SICP, with fundamentals in lambda calculus or Turing machines. Students learn rules such as how a Lisp evaluates an expression and write programs which apply the rules. It's not necessary that this be taught using Lisp, b…
My own feeling is something like this. Before Newton there was Kepler. Now Kepler was no dummy and he used the exacting measurements of Tycho Brahe to arrive at a very accurate model of planetary motion. He found that planets traveled in ellipses not circles, and he knew that they swept out equal areas in equal times (among other things). In short, he had a very firm "top-down" grasp on what planets did.
Then along came Newton, a "bottom-up" thinker if there ever was one (calculus was invented in what was perhaps the most supreme feat of yak shaving ever http://catb.org/jargon/html/Y/yak-shaving.html ). He found that there was an underlying and unifying idea, gravity, that explained why the planets behave as they do.
So to cap off my analogy, I've found that if I've worked in a sufficiently bottom-up way on something then sometimes what seems complex or intricate collapses down into some small and elegant solution that I wouldn't have seen if I were coming from the other direction (or at least it would be much more difficult).
Re: Why Did M.I.T. Switch from Scheme to Python?
#8The title is a bit misleading. The gist of TFA is that MIT is switching from Scheme to Python in its INTRODUCTION TO PROGRAMMING course. That would seem to me to be a bit of a no brainer. I find python to be a much more acceptable alternative than BASIC in introducing people new to coder in a way that is more in line with sound computer engineering practices.
Re: Why Did M.I.T. Switch from Scheme to Python?
#9I find this justification downright weird. Yes, a class like 6.001 is an extremely purified and unrealistic view of modern software engineering. But the same could be said of any theoretical subject. The people at the Large Hadron Collider are probably spending a lot more time reading 300-page technical manuals than they are reading Feynman. A lot of the charm of academia, to me, is that it gives you some breathing r…
Re: Why Did M.I.T. Switch from Scheme to Python?
#10The title is a bit misleading. The gist of TFA is that MIT is switching from Scheme to Python in its INTRODUCTION TO PROGRAMMING course. That would seem to me to be a bit of a no brainer. I find python to be a much more acceptable alternative than BASIC in introducing people new to coder in a way that is more in line with sound computer engineering practices.
Why is this guy being voted down for a decently formed comment?