Module 2 Learning Goals

Skills and Topics

Skill Proficiencies

In addition to our guidlines and expectations, academic success in Module 2 means that students demonstrate proficiency and comfort with the concepts below.

The expected mastery level can be understood with the following scale:

  • Mastery: student is able to explain and implement the concept independently or with light reference
  • Functional: student recognizes when to use the concept and can implement it with the support of documentation and/or a collaborator
  • Familiarity: student can recognize and describe the concept when needed/appropriate, but is not able to implement the technology/technique

Models

Mastery in the following skills
  • Differences and use cases between a model that inherits from ActiveRecord vs a PORO
  • Class methods vs. instance methods

Views

Mastery in the following skills
  • Template a view in Rails using a templating language (eg, erb)
  • How to create a form in a view using Rails, including a form using nested resources and namespacing.

Controllers

Mastery in the following skills
  • Understand the controller’s role as a dispatcher between client and server
  • Be able to build RESTful CRUD actions: index, show, new, create, edit, update, destroy

Routing

Mastery in the following skills
  • Understand best use of route helpers and path helpers
Functional in the following skills
  • Implement RESTful routes for resources
  • Implement and understand namespace and nested routes

HTTP

Mastery in the following skills
  • Diagram and explain the HTTP request/response cycle
Functional in the following skills
  • Understand the different segments of a URL (protocol, domain, path, query params)
  • Understand application state and sessions
Familiarity in the following skills
  • Understand what headers, body and status codes are in the context of the HTTP Request/Response cycle

Software Testing

Mastery in the following skills
  • Model testing with RSpec including validations, and class and instance methods
  • Feature testing with RSpec / Capybara

SQL and Database Planning

Mastery in the following skills
  • Articulately speak to, and be able to diagram, one-to-one, one-to-many, and many-to-many relationships
Functional in the following skills
  • Be able to design database schemas that represent relationships between resources
Familiarity in the following skills
  • Writing and executing ‘raw’ SQL statements that insert, select, calculate, join, order and group

ActiveRecord

Mastery in the following skills
  • Have a deep understanding ActiveRecord query methods, including differences between find and where
  • Deep understanding of how to use ActiveRecord to join multiple tables of data, calculating basic statistics, filtering and sorting of data, and building collections of data grouped by one or more attributes
  • Understand how to CRUD resources with ActiveRecord
  • Create relationships between resources using ActiveRecord

HTML, CSS

Functional in the following skills
  • Understand basic HTML tabs, elements, nodes
  • Target specific HTML content with CSS selectors
Familiarity in the following skills
  • Basic use and understanding of modern CSS grid systems

General Topics

Mastery in the following skills
  • Diagram and explain the MVC design pattern in Rails and how data is passed throughout
Functional in the following skills
  • Be able to implement authentication and authorization within a Rails application
  • Make use of flash messages