|
|
|
|
|
by lyriendel
6302 days ago
|
|
I was a TA for 6.01 two years ago. 6.01 and 6.02 (Intro to EECS II, may have replaced 6.001 and 6.002, but their purposes are fundamentally different, as someone else mentioned earlier. They're now both introductions to a wide range of CS topics--6.01 covers not just software engineering, but feedback and control, circuits, and probability and planning; 6.02 covers things like signal processing, digital logic, and networking. Good computer scientists nowadays need to (or at least should) know so much more than how to write good, clean, modular code. As the 6.01 FAQ says, they still teach software abstraction ideas including functional programming, higher-order
functions, and object-oriented programming. They chose Python mostly because Python is easily approachable. But most of 'modernizing' 6.001 isn't about moving from scheme to Python--it's focusing on learning how to modularize/abstract and model/analyze across a variety of different contexts (not just software, but linear systems, circuits, and AI). Also, 6.01 actually assumes that you have some programming experience already. When I TAed, at least, we assumed working knowledge of basic Python from week 1 and told people to go read a Python tutorial/book if they didn't have such. If you don't know how to program at all, you're supposed to take 6.00 first, which is the real 'Introduction to Programming' course. Except that most people skip it because they already know how to program or think they can learn on their own (and because it's kind of seen as a remedial course, which is especially unfortunate for people who really don't know how to program already--6.01 is pretty harsh if you've never programmed before). |
|