Course Calendar
All code written in class available on GitHub.
-
Course Overview; Ruby Fundamentals Week One
-
Tuesday, May 23 Video, Part 1; Part 2
- Welcome & introductions
- Course policies & calendar
- Course technologies
- Ruby syntax and structures
- Ruby style, source-formatting, and idioms
-
Wednesday, May 24 Video, Part 1; Part 2; Part 3
- Fix the Car#brake method
- Iterators and blocks
- Ruby standard libraries and core classes
- Navigating and referencing Ruby documentation
- Setting up devdocs.io
- Ruby and the web: Sinatra
Assigned Work
-
To Read
- Course policies, calendar, and projects [Online students]
- Pine, Learn to Program, 2nd ed. Introduction; Chapters 2–15. Chapters 2–7 may be a bit elementary for some of you, but Chapter 8 onwards is the real meat of the book.
- GitHub’s Ruby Style Guide
-
Get familiar with the contents and organization of the Ruby API documentation
at Rubydocs and by running
ri
on specific classes and methods, e.g.,ri String#upcase
. You might also want to set up your browser with devdocs.io’s offline documentation sets.
-
To Do
- Note: Ordinarily weekly work is due the following Tuesday, but for this week, there are some things you should do as soon as possible.
- As soon as possible: Submit ITMD 413/513 Survey and Contract (link in your @hawk.iit.edu inbox; email instructor at karl.stolley@gmail.com if you did not receive it).
- As soon as possible: Create Basecamp account (invite will arrive after you submit the Survey and Contract).
- As soon as possible: Technology setup (Editor; Git, Node.js, rbenv and Ruby 2.4.1).
- Fork weekly work repository on GitHub and clone to your computer; instructions in README.md
- Introduce yourself on the Introductions thread on Basecamp.
-
-
Rails Fundamentals Week Two
-
Tuesday, May 30 Video, Part 1; Part 2
- Tuesday morning Q&A
- GitHub’s Ruby Style Guide
- Project One: Alpha App
- Configuring your editor for Git commit messages (Atom as example)
- Using Git to understand what different Rails commands are doing
- The rails command
-
Wednesday, May 31 Video, Part 1; Part 2
- MVC architecture
- Agile development techniques
- Gemfiles, Bundler, and semantic versioning
- Rails environments (development, testing, production)
- The Rails community history and culture; open source practices generally
Assigned Work
-
To Read
- Ruby et al., Agile Development with Rails 5, Foreword, Preface; Chapters 2–4, 5–7, 18
- How to Write a Git Commit Message; see especially the seven rules
- Mullen, Embracing Change: Rails 5.1 Adopts Yarn, Webpack, and the JS Ecosystem (good post about core changes from Rails 5.0 to Rails 5.1)
- Get familiar with the Rails docs at devdocs.io and the Ruby on Rails Guides
-
To Do
- Weekly Work (Agile Rails Depot App, Tasks A and B)
-
-
The Structure of Applications and Data Week Three
-
Tuesday, June 6 Video, Part 1; Part 2; Part 3
- Tuesday morning Q&A
- Object-relational mapping (ORM)
- Bespoke data structures and the primacy of models
- Models and migrations
- Models and associations
-
Wednesday, June 7 Video, Part 1; Part 2; Part 3
- Models and validations
- Unit tests; fixtures
Assigned Work
-
To Read
- Ruby et al., Agile Development with Rails 5, Chapters 8–10, 19, 22, 24
- Rails Guides: Migrations, Validations, Associations, Query Interface
-
To Do
- Weekly Work (Agile Rails Depot App, Tasks C, D, and E)
- Project One Due 11:59pm Wednesday, 6/14
-
-
Views and Assets Week Four
-
Tuesday, June 13 Video, Part 1; Part 2; Part 3
- Tuesday morning Q&A
- Routing and controllers overview
-
Wednesday, June 14 Video, Part 1; Part 2; Part 3
- Routing and controllers
- Views and layouts in Rails
- Helper methods
Assigned Work
-
To Read
- Ruby et al., Agile Development with Rails 5, 11–12, 20–21, 25
- Rails Guides: Action Controller, Rails Routing, Layouts and Rendering, Form Helpers, Asset Pipeline, Testing Rails Applications
-
To Do
- Weekly Work (Agile Rails Depot App, Tasks F and G)
- Finish Alpha App (Due Wednesday, 6/14, 11:59pm CT)
-
-
Session Data and Users Week Five
-
Tuesday, June 20 Video, Part 1; Part 2; Part 3
- Tuesday morning Q&A
- Project Two: Beta App
- Controller-view relationships (finish up)
- Functional tests
- The asset pipeline in Rails
- Haml, Sass, and CoffeeScript
- Responsive design
-
Wednesday, June 21 Video, Part 1; Part 2; Part 3
- Session variables and persistence
- OAuth-based user authentication
Assigned Work
-
To Read
- Ruby et al., Agile Development with Rails 5, 14, 16, 17
-
To Do
- Weekly Work: Try to implement OmniAuth in Depot app instead of Task I
-
-
Deployment and Continuous Integration Week Six
-
Tuesday, June 27 Video, Part 1; Part 2
- Tuesday morning Q&A
- Automated deployment with Heroku:
-
Wednesday, June 28 Video, Part 1; Part 2
- Any remaining Q&A
- Brief tour of file uploads with Paperclip
Assigned Work
-
To Do
- Project Two Due 11:59pm Sunday, 7/2
-