Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#604 overall

EECS 110 Introduction to Programming

Northwestern University

1 recommender · 3 threads · recommended in 1 year, 2010 · score 1.0

Go to course ↗

An introductory Python programming course from Northwestern University (EECS 110, Spring 2010 offering) built around problem sets, covering projects such as fractal generation, maze solvers, Conway's Game of Life, and an optional 3D pool game. It is aimed at people who have never programmed before.

Commenters call it a great, fun, problem-set-driven intro to Python that gets you actually writing code, with one commenter saying it was their favorite programming class.

Programming Languagesbeginnerfreeself-paced text#python#introduction to programming#problem sets#fractals#game of life#maze solver

Recommendations by year

20062026

What commenters said (3)

  1. Strongly recommendsmetamemetics2010in “Land of Lisp: Learn to Program in Lisp, One Game at a Time”
    build a graphical HTML5 game as a finale

    sounds great, I'm interested.

    My favorite programming class was an intro course in python where we generated fractals, programmed maze solvers, built conway's game of life, and had an option of creating a 3D pool game for final project, etc: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index...

    Although the course is intended for people who have never programmed before, it allows you to do a lot of cool stuff by deliberately not explaining how the libraries used are implemented. I don't think using external libraries in tutorial books is bad, as long as you change\vary the library being used each problemset or chapter. Then no one library is enforced as canon. The student just learns the generalized methodology of hooking in with other people's code and writing a decoupled application, which are essential practical programming.

    I think it's OKAY to risk throwing in slightly off-topic components in a learning-by-doing book. The best "django" book I've seen had a chapter all about jQuery\JavaScript.

    Games are still always good problem domains for enhancing student engagement even if they are text-based. Having now looked at the sample chapter, I'm sure you did a great job and I'll put it on my to buy list.

  2. Strongly recommendsmetamemetics2010in “Ask HN: Okay okay, I'll learn to program...now what?”

    Python. Do not do the official guide. Do not read the documentation. Do something that forces you to program examples of increasing difficulty.

    In short, do this course: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index...

    All the labs and assignments are online. You get to make maze solvers, generate fractals, implement Conway's Game of Life, lots of genuinely fun stuff. Just work through it and tell yourself you are doing it for fun not for work. You'll be done before you know it. Good luck!

  3. Recommendsmetamemetics2010in “Ask HN: How to get started in web programming?”

    1) If you feel the need to brush up on python, try writing more than few simple examples. A great Intro to Python course, all online, all problem-set based where you actually write a bunch of stuff: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/

    Otherwise just jump into Django right NOW.

    1) Do the tutorial on the site: http://docs.djangoproject.com/en/dev/intro/tutorial01/

    2) Get a copy of "Django 1.0 Web Site Development" by Ayman Houriyeh. I think this is hands down the best Django book you can get. Why? Because it has a basic intro to jQuery as well and goes through integrating jQuery with your Django site. Don't worry about it being 1.0, it's still the book most worth your time.

    3) Download South and do the tutorial at http://south.aeracode.org/ . Never start a Django project without South now that you know it exists.

    4) Don't get any other books, Just Build It. Consult the docs, mailing-list, and #django-users as needed.

    You probably won't need an IDE for your first site as you'll probably be looking up functions in the Docs manually to see the examples, but if you need one later do ECLIPSE+pyDev.

    edit: as for struggling with language to choose, if you need any reasons to stick with Python:

    -Underlying implementation is getting faster and faster: http://codespeak.net/pypy/dist/pypy/doc/

    -It has reached critical mass in a variety of fields in addition to web development. The SEC is even considering requiring companies to submit executable Python source code instead of certain documents.

    -You have experience in C\C++ programmer and it is easy to run C from Python. You might find Python experience speeds up desktop application development as well.

    -You probably already know enough Python to get started with Django, learning another language will slow down your momentum, you've already made a good-enough-decision that's not worth the resources optimizing more than just trying to launch.

    ALSO: get the FireBug plugin for firefox asap and start pressing F12 on every site you visit.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help