Ruby on Rails (Fall 2018)

Welcome! The course meets on Fridays from 12:00pm to 1:30pm in Towne 319.

Course Description

This course will cover the Ruby language and Ruby on Rails. The "Ruby way" and the "Rails way" will be emphasized, particularly when covering MVC (Model-View-Controller). The course will begin by covering the Ruby programming language in depth. We will discuss the underlying language, syntax, object-oriented design, testing, etc. before moving on to Rails.

Prerequisites

Please speak with us if you do not have the prerequisites or if you have any other concerns.

Helpful Readings

Schedule

Week Lecture Homework Resources
1 Basic Ruby - 8/31/18 Finger Exercises
Due: 9/6/18
- Command Line
- Git
- Ruby Version Manager (RVM)
- Ruby Docs
- Ruby Style Guide
2 Object Orientation - 9/7/18 Object Orientation
Due: 9/13/18
- Practical Object-Oriented Design in Ruby
3 Miscellaneous Ruby & Testing - 9/14/18 Song Library
Due: 9/20/18
- RSpec API Documentation
- RSpec Matchers
- Better Specs
- Example from class
4 Ruby on Rails - 9/21/18 Twitter Clone
Due: 9/27/18
- Ruby on Rails Guides
- Ruby on Rails API
5 Active Record - 9/28/18 Evernote Lite
Due: 10/8/18
- Active Record Migrations
- Active Record Basics
- Active Record Associations
6 Active Record Associations - 10/12/18 Penn InTouch Lite
Due: 10/18/18
- Active Record Migrations
- Active Record Associations
- Routing from the Outside In
7 Action View, Bootstrap & Deploying - 10/19/18 Penn InTouch Lite Pt. 2
Due: 10/25/18
- Action View
- Layouts and Rendering in Rails
- Bootstrap Documentation
- W3Schools Bootstrap 4 Tutorial
- Heroku Deployment Guide
8 Validations & Sessions - 10/26/18 Facebook Lite
Due: 11/1/18
Project Proposal
Due: 11/12/18
- Scopes for Has Many Relationships
- Active Record Query Interface
- Active Record Validations
- Ruby on Rails Sessions
9 Forms & APIs - 11/2/18 Spotify Jukebox
Due: 11/8/18
Project Proposal
Due: 11/12/18
- Form Helpers
- Spotify Web API
- RSpotify Gem
10 API-only Applications - 11/9/18 Project Proposal
Due: 11/12/18
- API-only Applications
- HTTPie