INET 3350 - Ruby, Rails, and Web Development (Special Topics in IT Infrastructure)

This course will be a thorough introduction to Ruby, Ruby on Rails, and modern server-side web application development. Because the best web developers who use Ruby on Rails are also excellent Rubyists, the course will spend a good deal of time on pure Ruby and some of the great things that can be done with standalone Ruby: Using Ruby as “glue” code for systems operations, one-off tasks, etc.

Additionally, while the course seeks to provide a solid understanding of Rails, we will begin our way in web programming with another framework, Sinatra.

Not a focus, but will be discussed

Testing: Ruby programmers are innovators in automated testing as well as test-driven development (TDD) and behavior-driven development (BDD). Testing methodologies are not a formal part of the course, but tests will be shown and discussed.

Client-side development (JavaScript): Additionally, the course will not spend much time on client-side development in JavaScript. We will go over some light integrations for client-side behavior, but, again, it won’t be an emphasis.

The course will have two required texts

  1. Ruby: Programming Ruby (the Pickaxe) by Thomas, et al. You must own this book, and you must own the newest edition (http://pragprog.com/book/ruby4/programming-ruby-1-9-2-0 – 4th ed., covering Ruby 1.9 and Ruby 2.0). A good “second opinion” is The Ruby Programming Language by Flanagan and Matsumoto.

  2. Rails: Agile Web Development with Rails 4, by Ruby, et al. You must own this book (electronic version OK), and you must own the newest edition (http://pragprog.com/book/rails4/agile-web-development-with-rails-4 – DO NOT get the “Rails 3.2” edition!). A good “second opinion” is Ruby on Rails Tutorial by Hartl.

NOTE: Email the instructor at jgnorman@umn.edu for a discount coupoon that should knock 35% off the price.

Lecture slides and notes will be keyed to all of these resources.

Week-by-week outline

RUBY

Week 1, Sep. 3

Week 2, Sep. 10

Week 3, Sep. 17

Week 4, Sep. 24

RAILS AND THE WEB

Week 5, Oct. 1

Week 6, Oct. 8

Week 7, Oct. 15

Week 8, Oct. 22

Week 9, Oct. 29

Week 10, Nov. 5

Week 11, Nov. 12

Week 12, Nov. 19

Week 13, Dec. 3

Week 14, Dec. 10

Catch up; discuss final examination

Assignments

  1. Ruby One-Liners

  2. Brief test-driven implementation of a pure-Ruby application

  3. Sinatra web application exposing HTML views and an API

  4. Basic Rails application

  5. Final project: Rails application spec’d by student

FAQ

Q1. What do I need to know already to take this course?

A1: You should have non-trivial experience with one programming language: preferably a language that supports classes, objects, and inheritance (ergo, a beginner’s experience with PHP or Perl is not going to work; but sophisticated experience with such langauges would be OK). C#, Java, SmallTalk, Clojure, “modern” JavaScript: All good.


Q2: How will class be structured?

A2: For some meetings, there will be a conventional lecture followed by discussion. Other meetings will be “inverted,” where you watch videos of material at home, and then the meeting will be more of a workshop.


Q3: How much homework will there be?

A3: Per week: Think 4 hours of reading and playing around, 4 hours of homework, except during the final three weeks when you will probably want to triple that commitment.