Stanford: Introduction to Databases

Stanford: Introduction to Databases

Overall Course Rating:  10/10

Completion Date: April 1, 2013
Platform: Stanford Class2Go

—— Lectures ——
Jennifer Widom is a phenomenal MOOC teacher. She is able to condense a very complex subject matter into succinct videos including detailed examples. If you have never worked with databases or tables before, then it may be a bit difficult to pick up initially, but Widom does a great job of onboarding laypeople. She clearly has video lecturing experience from teaching the SCPD course online.

In addition, her lectures also cover a broad array of topics with good depth. Some topics I found particularly useful include XML, JSON, and differences between various open source SQL databases. Some of the topics are bit more abstract, such as the Unified Modeling Language, and not absolutely essential (thought extremely beneficial), but Widom does a good job of demonstrating their importance in each video.

You can also see that the online class mirrors the actual Stanford class exactly in terms of content. The most significant difference is that Stanford student’s get a big term project.

—— Assignments and Exams ——
All assignments were fair and excellent practice. Some exercises were quite challenging, and I had to exert quite a bit of brain power to get the right answer, but you know you’re learning when you run into such mental blocks. After doing Widom’s exercises, you will confidently be able to tell others that you can handle XML and SQL queries.

Because this class has been offered a number of times already, there were almost no mistakes (except edits you’ll see in her lecture videos). But it is very refreshing to see a technical course with nearly no mistakes, AND all of the questions are worded clearly without ambiguity. Ambiguous questions are a problem I’ve encountered in other online courses.

—— Additional Intangibles ——
Widom has been teaching this course as a MOOC since Fall 2011, and it is evident throughout the entire course, from lectures to materials to organization. First offered on a pre-Coursera platform, then ported to Stanford Class2Go, now it will be available on January 7, 2014 through Stanford Online which runs on the open source edX platform.

I also like that the Statement of Accomplishment gave me a breakdown of exactly how I performed in each aspect of the course:

  • Quizzes: 71.0 out of a maximum of 71.0
  • Exercises: 54.0 out of a maximum of 54.0
  • Exams: 27.0 out of a maximum of 38.0
  • Challenge Level Exercises: 46.0 out of a maximum of 46.0
  • Scaled Total (exercises doubled, exams tripled): 260.0 out of a maximum of 293.0

I like that all of the materials were well organized and easy to download in bulk, including examples covered in the lectures. This made it easy to go back and reference Widom’s code after the lecture. I would recommend some kind of code editor just to make your own submissions easier to proofread. My personal favorites are Sublime Text and Notepad++ (sorry Mac users).

—— Conclusion ——
To date, this has been my favorite and most rewarding MOOC. I would honestly recommend it to everyone. I would argue that it is essential for anyone in a Computer Science or Engineering program, regardless of whether you want to specialize in databases or not.

This student survey from the 2011 course offering further reinforces my point. You can also read Widom’s personal thoughts from the inaugural class; you’ll see that she was one of the earliest adopters of “free-to-the-world” courses.

—— Personal Recommendations ——

  • The course should be required by all CS programs
  • Learn to run SQL queries and XML queries
  • If you aren’t interested in databases, you should take it just to learn a new way of thinking about organized information

The Most Useful Online Class for a Tech Startup Newbie

More and more classes are focusing on teaching real-world skills, however few of them are very successful at it. But, the Coursera class Startup Engineering did just that.

It had its drawbacks, such as the under-emphasis on lecture videos, but it was able to focus on the key goal, which was getting every student to wireframe their web app idea.  Most students did not deviate from the generic templates that Balaji set up, but we still got our feet wet by pulling, pushing, and deploying. It glazed over many of the programming details, yet slowed down to focus on key ideas and best practices. This course is a MUST for any technical or non-technical individuals who want to have any relevance in today’s day and age.

My own app project, AppLoquent, did not deviate from the generic template either, but some like StartupHub demonstrated a fair amount of effort.  A list of nearly all the app projects is available at, which was used for the final competition in the class.

Throughout the class, we got to develop a deep real-world understanding of the following technologies:

What was the most important thing I learned? For me, it was properly using GitHub and setting up development, staging, and production environments. But of course, all the other things I learned will come in handy as well.