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:
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.
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
Keep us posted.
-Devin.
Posted by Devin Olson At 07:02:55 AM On 12/29/2008 | - Website - |
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
Posted by Erskine Harris At 09:08:15 AM On 12/29/2008 | - Website - |
Posted by Ray Bilyk At 12:22:05 AM On 12/29/2008 | - Website - |
Eric
Posted by Eric Mack At 12:54:36 PM On 12/29/2008 | - Website - |
That's not saying much.
(I keeed.... I keeed)
Posted by Nathan T. Freeman At 06:33:33 PM On 12/29/2008 | - Website - |
{ Link }
Here's a short one on introduction to programming. This one uses Python as a programming language.
{ Link }
Posted by David Killingsworth At 06:51:09 AM On 01/05/2009 | - Website - |