INET 3350: “Special Topics in IT Infrastructure: Ruby, Rails, and Web Development”

University of Minnesota, Fall 2014

Schedule, cost, instruction, etc.


In this course I’ll teach you the Ruby language and the Ruby on Rails web development framework, with brief side-trips to behavior- and test-driven development, JavaScript integration, Sinatra, and a few other topics.

There is one true pre-req: You must already know some programming language, ideally an object-oriented one, such as Java, C#, Python, etc. A sophisticated PHP or Perl programmer will be right at home. There is, additionally, one strong suggestion: You must already know something about relational databases or HTML/CSS. I think it is possible to do well in this course if, say, you know nothing about relational databases, or little about HTML and CSS. But if you have deficits in both of these, the course is going to be a long slog. I can help some, but this is not a course in either relational databases or HTML/CSS (yet I will provide refreshers in both of these areas). To get a feel as to whether you have enough database and front-end scar tissue, try

Who might take this?

  1. You’re interested in Ruby and know that its inventor, Yukhito Matsumoto, said once: “Ruby is designed to make programmers happy.”

  2. You’ve been programming for a long time, but have never programmed the web.

  3. You are already a Ruby/Rails programmer, but need to tighten up your knowledge, organize it, and learn best practices.

  4. You are adept at web development in JavaEE, PHP, .NET, etc., and want to learn what the fuss is about with Ruby and Rails.

  5. You are a Python/Django developer, and need a point of comparison to really go deep in your own framework.

  6. You’ve been doing front-end development (HTML/CSS/Photoshop, etc.) and want to learn the back-end.

What will happen in the course?

There will be screencasts prepared by the instructor, lectures, and opportunities for discussion, in person and online. Meanwhile, there will be quizzes and 3 or 4 small- to medium-sized programming assignments, at least one involving adapting an existing web application.

Still have questions? Email the instruction at