

Free MIT Online Class teaches CS fundamentals using Python - bluemoon
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/

======
jiggy2011
Python is such a better language for teaching programming and CS fundamentals
than Java or C++.

There is of course a case to make for teach C , ASM or LISP first.

Trying to teach something like OO best practices will be lost on students if
they haven't done enough programming to understand code complexity and why OO
might be a useful paradigm.

Java is especially bad because you need to use the static keyword as well and
the System.out object just to get "hello world" working

~~~
RodgerTheGreat
While it might be unnecessarily punishing, Forth could be an interesting
introductory language. I think it says something very positive about a
language when the first thing[1] you learn to do isn't how to write an
expression, make a loop or describe a conditional branch- it's how to define a
procedure and break a task down into parts.

[1]<http://www.forth.com/starting-forth/sf1/sf1.html>

------
kreek
Nice to see Shaw, Zed A. 'Learn Python the Hard Way' in the recommended
textbooks :)

------
datagramm
I've been following this in my spare time for the last month. I've found it
really useful. As a sysadmin who doesn't really do any _proper_ programming
day to day and ends up learning just enough to scrape by in a few languages,
I've found it really beneficial to go back to basics and learn to _think_ like
a proper computer scientist.

------
wyclif
Dear HN, what is the conventional wisdom here on the merits of this course vs.
other Python methods of learning, tutorials, classes, &c?

~~~
jiggy2011
I don't know about conventional wisdom but I can give you my opinion.

Disclaimer: I have not taken this course, neither am I a python Wizard.

Their stated goal:

 _"It aims to provide students with an understanding of the role computation
can play in solving problems.

It also aims to help students, regardless of their major, to feel justifiably
confident of their ability to write small programs that allow them to
accomplish useful goals."_

The point here is that teaching python is _not_ the primary goal so if you are
already a competent programmer you may find it more efficient to pick up a
more reference style book.

However, I can imagine this course explaining principles such as turing
machines, possibly some data structures and computational logic.

Thus I can imagine it might be useful to people who are not going to be
programmers but need an appreciation for the type of work that a programmers
might do and what is possible with a computer. So maybe a business person or a
designer.

It might also be useful for self taught programmers who want an introduction
to the more rigorous aspects of CS and a more formal way of thinking about
their programs.

~~~
carb
I haven't taken the class, but have helped many friends through the course if
they needed it.

The class is more of an introduction to programming using Python than a class
about learning Python the language. They learned some things like sorting,
searching, testing, basic hash tables, etc. However, the primary reasons the
course exists are to see let students explore Computer Science or because
their major requires that they take either 6.00 (This course) or 1.00 (Same
type of course, but in Java.)

If you want to learn Python and you're an experienced programmer, this class
will take you maybe a night or two to breeze through. I would recommend taking
other courses on OCW instead though with a more specific focus. If you want
basic-intermediate algorithms, take 6.006. If you want low-level, 6.004 is a
great introduction. (If you want advanced algorithms, buy CLRS and take
6.046).

tl;dr: 6.00 is more for people that have never programmed anything before, not
to learn Python.

------
stephensikes
New update to a great course that many (myself included) have used to get
started.

~~~
wyclif
New update? I've seen this posted here before, sure enough. What part of the
course has been updated?

~~~
stephensikes
Looks like it is a whole new term rather than a pure update. The original was
with Prof Grimson and Guttag from Fall '08, this one is just Prof Guttag from
Spring '11. The biggest change is the addition of OCW Scholar (which means the
course is designed with more of an online flow -- for 'independent learners').

------
caycep
This isn't the famous SICW class?

~~~
cschmidt
No, this is 6.00, which sounds like it is aimed at non-majors. My 11 year old
son wanted to go through it with me, and so far the first lecture was good for
him. 6.001 is the SICP course.

------
melvinng
It will be a dream come true if Waterloo taught CS with Python.

~~~
emptyaccount
While Python is my language of choice, I'm happy Waterloo starts off with
Racket (Scheme/Lisp family language). Very little syntax to learn and great
for recursion. I'm not really qualified to comment whats best, I just know I
enjoyed it.

