Search

What the Quote?

"...and Jed has dysentery."

Tim Tripcony

"I don't need your book, I already know how to beat Trogdor."

Steven Rodgers

"You look a little different now, but you still smell the same."

Kathy Tripcony

« quote of the day | Main| will Ajaxian notice XPages? »

in which Stanford teaches me to be a programmer

Category education
For the second time in my life, I'm taking a semester-long course on programming. The first was in grade school, wherein I was taught BASIC (and a little bit of Logo); the second is Programming Methodology, offered by Stanford Engineering Everywhere. I heard about this months ago, but finally dove in yesterday:
For the first time in its history, Stanford is offering some of its most popular engineering classes free of charge to students and educators around the world.

In other words, you can download all the course materials (except the textbooks, which thus far seem optional), assignments, and even the actual lectures... for free. In fact, all the lectures are on YouTube, but you can also download them as MP4 via BitTorrent. The MP4 files are ~700 MB apiece, but they appear to be seeded by a couple machines at Stanford, so when I noticed I was pulling the first lecture at about 700Kb/s, I got carried away and downloaded the lectures for all three "Introduction to Computer Science" courses to my NAS... 59 GB in less than 24 hours. Reckon I'll be getting another "nastygram" from Comcast about my gratuitous abuse of bandwidth.

Since the first course uses Java as the language in which to convey core programming principles (i.e. knowing a written language doesn't make you a writer, hence, knowing a programming language doesn't necessarily make you a programmer), the course materials actually include a custom distribution of Eclipse, and each assignment starts in the form of a project template that you import into Eclipse and then fill in the blanks, so to speak. By the way, if all of this sounded pretty good until you saw "the J word", don't fret... in fact, take comfort: although the first lecture was mostly useless (here's how the grading scale works, this is the date of the final - which has already happened, of course... taking these courses doesn't mean you have to turn in homework or take exams, just that you get the same information as if you'd paid tuition without having to pay tuition... or even having to leave the comfort of your favorite piece of furniture), by the end of the second, the professor had explained for and while loops in a way that made intuitive sense to Laura (who has decided to take these courses with me), who is one of the smartest people I know but has no prior programming experience, aside from being subjected to far more than her fair share of my frequent impassioned ravings about all things Domino.

One unique approach to the course material is that, instead of just teaching a language, the first portion of the course revolves around a programmatic robot named "Karel", so just like with Logo, even very simple, basic programs produce visual interactions that make it easy to understand how each method call maps to a runtime result. In other words, before they bother explaining the intricacies of Java as a language, they establish a connection between code construction and program execution. Compared with the typical "Hello World" approach to introducing a language to a beginner, this provides a much more concrete way of immediately seeing how plain text becomes software: why print to a console when you could call the turnLeft() method and see a robot turn left?

The professor is a bit frenetic, speaks rather rapidly and eccentrically, even throws candy at students who ask questions (to reward them for class participation by elevating their blood sugar level), so at first I thought it might be difficult to glean useful information, but it turns out that his style is actually very effective. Having glanced at the overview of all the lectures for the course and watched the first two, I can already tell this much: although Java is just the vehicle they chose to communicate more fundamental programming "truth", when I'm finished with this course, I'll be better at Java than I am at LotusScript (I know, I'm eating my words from several previous posts)... but even my LotusScript should improve as a result. You're welcome, Nathan... I consider it a jump start on a New Year's resolution.

Comments

Gravatar Image1 - SWEET!

Keep us posted.

-Devin.

Gravatar Image2 - Tim,

Thanks for the post. I have actually been looking for a way to go back to school online and this seems like it will fit the bill nicely.

Happy New Year.
E

Gravatar Image3 - Thanks for the heads-up on this. This may jumpstart my 2009 goals as well...

Gravatar Image4 - Thanks for the post and the resource. My daughter wants to learn programming and more about computer science. Please post an update in a week or two and let us know how this works out for you. We are interested.

Eric

Gravatar Image5 - I'll be better at Java than I am at LotusScript

That's not saying much. Emoticon

(I keeed.... I keeed)

Gravatar Image6 - I'm not sure how MIT compares to stamford, but there appears to be a significant amount of courses available from MIT OpenCourseWare.

{ Link }

Here's a short one on introduction to programming. This one uses Python as a programming language.
{ Link }

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Contact Me

Elsewhere

Assorted Linkage


Locations of visitors to this page