Upperline Ruby Web Dev Teacher Blueprint

Ruby Web Dev Teacher Blueprint

Course Overview

Day Topics & Projects
Day 1 Bash
Datatypes
Control Flow
Day 2 Methods
Git Workflow
Day 3 Arrays
Hashes
Day 4 Calculator Projects
Day 5 Object Orientation
Day 6 HTML
CSS
Day 7 Design Libraries
Sinatra MVC Intro
Day 8 Project launch
Project mode
Day 9 Project mode
Day 10 Project mode & presentations

Week 1

Day 1: Intro to Ruby, Bash, Datatypes, and Conditionals

Recommended Timeline Topic Associated Labs & Difficulty
9:00-10:15 Morning Routine
Environment Setup
10:15-12:00 Navigating the Command Line Clean the Fridge
Terminus
12:00-1:00 Lunch
1:00-2:30 Datatypes
User Input
Control Flow
John Jacob Jingelheimerschmidt
Business Cards
DNA (Stretch)
2:30-3:00 Closing Routine

SWBATs:

  • SETUP - Set up a developer environment with Cloud9
  • SETUP - Sign up for and connect to Github from Cloud9
  • CLI - Understand and explain what terminal is and why we use it.
  • CLI - Navigate through directories using relative and absolute paths*
  • CLI - use the cd command to move up and down directories
  • CLI - Use the ls keyword to list items in a directory
  • CLI - Remove a file and a directory by using rm and rm ‐rf commands
  • CLI - move files and directories using the mv command
  • GENERAL RUBY - explain that all programs are just lines of text read by a computer
  • GENERAL RUBY - demonstrate that ruby programs read top to bottom
  • GENERAL RUBY - differentiate between data and key words
  • STRINGS - explain what a string is and why it’s used
  • STRINGS - create strings using double quotes
  • STRINGS - concatenate two strings using the +
  • STRINGS - use common string methods
  • PUTS - Explain what a puts statement is and what it’s used for
  • INT - explain what an integer is and why it’s used
  • INT - use common mathematical operations with integers
  • INT - understand that ruby rounds down when doing math with integers
  • INT - use typical methods like to_f and to_s to mutate integers
  • FLT - explain what a float is and why it’s used
  • FLT - understand that math with floats produces floats and math with integers produces integers
  • FLT - use typical methods like to_i and to_s to mutate float
  • FLT - use common mathematical operations on floats
  • STRINGS/VARIABLES - interpolate a variable or a method within a string
  • VAR - use a variable in place of a piece of data
  • VAR - assign integers to variables
  • VAR - assign floats to variables
  • VAR - reassign the value of a variable
  • GETS - take in user input using the gets method
  • VAR - use correct syntax in naming variables
  • GENERAL RUBY - predict that the effect of text in ruby that is not data or a key word will throw an error
  • GENERAL RUBY - explain that an error will stop the execution of ruby code

Day 2: Ruby Methods & Github Basics

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-10:00 Git Workflow
10:00-12:00 Custom Methods 1 (Coming Soon!) String Theory
Budget Buddy
Cookie Monster’s Diet
12:00-1:00 Lunch
1:00-2:30 Custom Methods 2 (Coming Soon!) They Rate Dogs
Leap Years
Super Mario Construction
2:30-3:00 Closing Routine

SWBATs:

  • GIT - Understand the purpose of GitHub and learn how to fork and clone repositories.
  • CONDITIONALS - Explain the use of a boolean data type.
  • CONDITIONALS - Explain what an if statement is and why it’s used
  • CONDITIONALS - Implement an if statement with 1, 2, and 3+ branches
  • CONDITIONALS - Use comparison operators in a conditional statement
  • METHODS - explain what a method is and why it’s used
  • METHODS - use built in methods for each data type and structure
  • METHODS - chain methods together
  • METHODS - experiment and investigate unknown ruby methods using documentation and other internet resources
  • METHODS - explain what a return value is and what it’s used for
  • METHODS - explain and determine the return value of a method
  • METHODS - explain what the return value of the puts method is
  • METHODS - differentiate between methods that puts and methods that return a value
  • SCOPE - explain that local variables cannot work between methods because of scope
  • METHODS - explain the difference between defining and calling a method
  • METHODS - call previously defined custom methods
  • METHODS - create a custom method using def and end key words
  • METHODS - use correct syntax in naming methods
  • METHODS - create a custom method using arguments

Day 3: Data Structures => Arrays and Hashes

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-12:00 Arrays and Hashes 1 (Coming Soon!) Array Methods
Array Iteration
Hash Methods & Iteration
12:00-1:00 Lunch
1:00-2:30 Arrays and Hashes 2 (Coming Soon!) Survey Says!
Name Badges & Coffee Mugs
Command Line Jeopardy
2:30-3:00 Closing Routine

SWBATs:

  • ARRAY - Explain what an array is and why it’s used
  • ARRAY - Create an array
  • ARRAY - Return a specific value from an array using it’s index
  • ARRAY - Add, delete and modify items in an array
  • ARRAY - Mutate arrays using methods available to all arrays
  • ARRAY - Iterate through arrays using the each method
  • ARRAY - Use .split to change a string into an array
  • ARRAY - Assign various an array to a variable
  • HASH - Explain what a hash is and why it’s used
  • HASH - Create a hash
  • HASH - Return a specific value from a hash using it’s key
  • HASH - Mutate hashes using methods available to all hashes
  • HASH - Add delete and modify key-value pairs in a hash
  • HASH - Explain what a symbol is and why it’s used
  • HASH - Use symbols as keys in hashes
  • HASH - Iterate through hashes using the each, each_key, and each_value methods
  • HASH -Parse through nested hashes and arrays to pull out specific pieces data
  • API - Explain what an API is
  • API - Parse through arrays and hashes returned from an open API

Day 4: Calculator Projects

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-10:30 Review Sessions (Coming Soon!) Caeser Cipher (Stretch)
10:30-11:30 GitHub: Fork, Branch, Merge, Pull
11:30-12:00 Calculator Norming & Group Forming Calculator Template (Optional)
12:00-1:00 Lunch
1:00-2:30 Mini-project Mode!
2:30-3:00 Closing Routine

SWBATs:

  • CLI - Build a command line application that uses data types, data structures, conditionals, functions and variables.
  • CLI - Use looping and iteration to run a CLI continuously
  • GIT - Use Git and Github for collaboration on a single project repository

Day 5: Object Orientation

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-12:00 Object Orientation, Including:
Classes
Instances
Getter / Setter Methods
Profile Class
User Class
12:00-1:00 Lunch
1:00-2:30 Object Orientation, Including:
Interactions between Instances
Class Variables
or
Intro to APIs (Twilio from the Command Line)
Text-based RPG
2:30-3:00 Closing Routine

SWBATs:

  • OO - Know what a class is and why it is used
  • OO - Know what an instance is and why it is used
  • OO - Know what an instance variable is and why it is used
  • OO - Know how to write an initialization method
  • OO - Create a new instance of a class
  • OO - Write reader and writer methods explicitly
  • OO - Use attr_reader, attr_writer, and attr_accessor to build reader/writer methods
  • OO - Write a class variable like @@user_count
  • OO - Explain the difference between an attribute and a method
  • API - Use the Twilio gem to create a Message class

Week 2

Day 6: HTML & CSS

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-12:00 HTML, Profile Page, and Intro to CSS
12:00-1:00 Lunch
1:00-2:30 CSS: IDs and Classes
2:30-3:00 Closing Routine

SWBATs:
* HTML - Create a new HTML Page
* HTML/CSS - Explain the difference between HTML and CSS, and understand which is best used for what purposes
* HTML - Write the skeleton code of an HTML page (head, body, title, etc) and explain what belongs in each
* HTML - Correctly use HTML tags, and explain that in most cases an element has an opening and a closing tag
* HTML - Explain that tags can be nested within each other
* HTML - Properly indent nested HTML tags
* HTML - Use header, paragraph, image, ordered list and unordered list tags
* HTML - Create a form (that doesn’t yet do anything)
* HTML - Link elements using an tag to internal pages or external websites
* CSS - Create a CSS File and link to it using a tag
* CSS - Select HTML elements in CSS using element, id, and class selectors
* CSS - Understand that styling applies to all child elements within a selected element
* CSS - Explain that specificity allows us to override styling
* HTML/CSS - Apply IDs and Classes to HTML elements
* HTML/CSS - Explain the difference between a class and an ID
* HTML/CSS - Properly use CSS syntax to style html elements, including color, size
* HTML/CSS - Use Flexbox styling to match elements on a page to a storyboard

Day 7: MVC Framework (Sinatra)

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine

tine (Coming Soon!) | |
|9:30-12:00 |MVC Walkthrough (Coming Soon!) | Sinatra Template |
|12:00-1:00 |Lunch | |
|1:00-2:30 |Sinatra Mini-projects | Sinatra Template |
|2:30-3:00 |Closing Routine | |

SWBATs:

  • MVC - Explain the basic structure of an MVC application
  • MVC - Use the ‘restaurant’ example of MVC to describe the different functions of the Model, View and Controller
  • MVC - Explain “separation of concerns” and why it guides our designs
  • MVC - Create and use a “GET” route in Sinatra
  • HTTP - Explain the difference between GET and POST HTTP request methods (and know that there are other types of requests)
  • MVC - Show that a form takes a method and action, and that these connect to routes in the controller.
  • MVC - Create and use a “POST” route in Sinatra
  • MVC - Explain what the params hash is; get information from the params hash to display on screen
  • MVC - Use ERB to display ruby data in the view (HTML)
  • HTTP - Explain that we use “PUT” routes for incoming data from the view to the controller.

Day 8: Project Ideation, Group Formation, Norming, and launch

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-11:00 Ideation, Group Norms, & Preferences
11:00-12:00 Lunch
12:00-2:30 Project Launches & MVP Scoping (Coming Soon!) Sinatra Template
2:30-3:00 Closing Routine

SWBATs:

  • DESIGN - Explain what an MVP is and why we use it in DESIGN
  • DESIGN - Define an MVP for their project
  • DESIGN/NONCOG - Identify a file structure for their project - Separate concerns and assign group roles accordingly
  • NONCOG - Regulate time spent on a given task; take breaks as needed
  • GIT - Create a new branch for a specific feature
  • GITHUB - Merge feature branches onto the master
  • GITHUB - Resolve merge conflicts on the GitHub web interface
  • GIT - Use git pull origin master while working on a feature branch to update local repos with master changes

Day 9: Project Mode

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-12:00 Project Mode
12:00-1:00 Lunch
1:00-2:30 Project Mode
2:30-3:00 Closing Routine

SWBATs:

  • NONCOG - Regulate time spent on a given task; take breaks as needed
  • DESIGN - Ideate new features upon reaching MVP
  • DESIGN - Scale back /reprioritize features in progress

Day 10: Project Mode & Presentations

Recommended Timeline Topic Associated Labs & Difficulty
9:00-9:30 Morning Routine
9:30-12:00 Project Mode
12:00-1:00 Working Lunch
1:00-2:30 Project Mode
2:30-3:00 Presentation Prep!
(Parents Arrive)
2:30-3:00 Parent Presentations!