Course Calendar

All code written in class available on GitHub.

  1. Course Overview; Ruby Fundamentals Week One

    1. Tuesday, May 23 Video, Part 1; Part 2

      1. Welcome & introductions
      2. Course policies & calendar
      3. Course technologies
      4. Ruby syntax and structures
      5. Ruby style, source-formatting, and idioms
    2. Wednesday, May 24 Video, Part 1; Part 2; Part 3

      1. Fix the Car#brake method
      2. Iterators and blocks
      3. Ruby standard libraries and core classes
      4. Navigating and referencing Ruby documentation
      5. Setting up devdocs.io
      6. Ruby and the web: Sinatra

    Assigned Work

    • To Read

      1. Course policies, calendar, and projects [Online students]
      2. 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.
      3. GitHub’s Ruby Style Guide
      4. 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

      1. Note: Ordinarily weekly work is due the following Tuesday, but for this week, there are some things you should do as soon as possible.
      2. 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).
      3. As soon as possible: Create Basecamp account (invite will arrive after you submit the Survey and Contract).
      4. As soon as possible: Technology setup (Editor; Git, Node.js, rbenv and Ruby 2.4.1).
      5. Fork weekly work repository on GitHub and clone to your computer; instructions in README.md
      6. Introduce yourself on the Introductions thread on Basecamp.
  2. Rails Fundamentals Week Two

    1. Tuesday, May 30 Video, Part 1; Part 2

      1. Tuesday morning Q&A
      2. GitHub’s Ruby Style Guide
      3. Project One: Alpha App
      4. Configuring your editor for Git commit messages (Atom as example)
      5. Using Git to understand what different Rails commands are doing
      6. The rails command
    2. Wednesday, May 31 Video, Part 1; Part 2

      1. MVC architecture
      2. Agile development techniques
      3. Gemfiles, Bundler, and semantic versioning
      4. Rails environments (development, testing, production)
      5. The Rails community history and culture; open source practices generally

    Assigned Work

  3. The Structure of Applications and Data Week Three

    1. Tuesday, June 6 Video, Part 1; Part 2; Part 3

      1. Tuesday morning Q&A
      2. Object-relational mapping (ORM)
      3. Bespoke data structures and the primacy of models
      4. Models and migrations
      5. Models and associations
    2. Wednesday, June 7 Video, Part 1; Part 2; Part 3

      1. Models and validations
      2. Unit tests; fixtures

    Assigned Work

    • To Read

      1. Ruby et al., Agile Development with Rails 5, Chapters 8–10, 19, 22, 24
      2. Rails Guides: Migrations, Validations, Associations, Query Interface
    • To Do

      1. Weekly Work (Agile Rails Depot App, Tasks C, D, and E)
      2. Project One Due 11:59pm Wednesday, 6/14
  4. Views and Assets Week Four

    1. Tuesday, June 13 Video, Part 1; Part 2; Part 3

      1. Tuesday morning Q&A
      2. Routing and controllers overview
    2. Wednesday, June 14 Video, Part 1; Part 2; Part 3

      1. Routing and controllers
      2. Views and layouts in Rails
      3. Helper methods

    Assigned Work

  5. Session Data and Users Week Five

    1. Tuesday, June 20 Video, Part 1; Part 2; Part 3

      1. Tuesday morning Q&A
      2. Project Two: Beta App
      3. Controller-view relationships (finish up)
      4. Functional tests
      5. The asset pipeline in Rails
      6. Haml, Sass, and CoffeeScript
      7. Responsive design
    2. Wednesday, June 21 Video, Part 1; Part 2; Part 3

      1. Session variables and persistence
      2. OAuth-based user authentication

    Assigned Work

    • To Read

      1. Ruby et al., Agile Development with Rails 5, 14, 16, 17
    • To Do

      1. Weekly Work: Try to implement OmniAuth in Depot app instead of Task I