#Cohort 3 Classroom Calendar
Date | Week | Topic |
---|---|---|
May 4 | Week 01 | Student Orientation, Bash, Ruby |
May 11 | Week 02 | Ruby II |
May 18 | Week 03 | Ruby III |
May 25 | Week 04 | Ruby IV |
Jun 1 | Week 05 | HTTP, DOM, HTML, CSS, Sinatra |
Jun 8 | Week 06 | Sinatra, Databases |
Jun 15 | Week 07 | Intro to Rails |
Jun 22 | Week 08 | Rails II, Intro to Agile |
Jun 29 | 4th of July Break | |
Jul 6 | Week 09 | Testing in Rails, Individual Project |
Jul 13 | Week 10 | Group Rails Project |
Jul 20 | Week 11 | Group Rails Project |
Jul 27 | Week 12 | Special Topics & Group Rails Project |
Aug 3 | Week 13 | Rails Project - Using APIs |
Aug 10 | Week 14 | Rails Project - Using APIs |
Aug 17 | Week 15 | Rails Project - Create API |
Aug 24 | Week 16 | Intro to Javascript |
Aug 31 | Week 17 | JavaScript API project |
Sept 7 | Labor Day Break | |
Sept 14 | Week 18 | Pair JS Framework Project |
Sept 21 | Week 19 | Pair JS Framework Project |
Sept 28 | Week 20 | Final Rails Project |
Oct 5 | Week 21 | Final Rails Project |
Oct 12 | Week 22 | Final Rails Project |
Oct 19 | Week 23 | Final Rails Project |
Oct 26 | Week 24 | Final Rails Project Presentations |
Nov 2 | Week 25 | Internship Spike Project, Interview Prep |
Nov 9 | Week 26 | Internship Spike Project |
Nov 16 | Week 27 | Internship Spike Project |
Nov 23 | Thanksgiving Break | |
Nov 30 | INTERNSHIP BEGINS |
- Introduction to the program
- Get to know each other (students and staff)
- Understand expectations
- What is Ada?
- Working Ruby development environment
- Comfort with basic OS X Hotkeys
- Comfort with basic UNIX command-line skills
- navigation
- file manipulation
- grep
- man pages
- modifying your terminal
- Ruby history & background
- Learning basic ruby concepts
- irb
- Methods
- Iterators
- Variables
- Conditionals
- Learn about basic tools
- Text Editors (Atom)
- Terminal
How to OS X
Introduction to Unix
Installfest
Photo Scavenger Hunt
- Overview
- Community
- IRB
- Math
- Basic variables
- Using methods
- String
- Symbol
- Number
- Array
- Hash (Intro)
- Boolean
- Conditionals (excluding elsif)
- Iterators
- Block
- Block scope
- Literals
More on Conditionals & Flow Control
- Compound conditionals
- While
- Until
- Case/when
In Week 2 we continue to discover the Ruby language with more exercises involving command-line scripts. We will focus the majority of our time on Objects, cementing the learning of Hash, Array, and String functionality, and begin to explore other standard classes from Ruby core (Dates and Times, for example.)
- Scope
- Learn core Ruby concepts
- Objects
- Object Inheritance
- Solidify our knowledge of Strings, Arrays, and Hashes
- Intro to Git
- Using gems
- Creating methods
- new
- Creating classes
- initialize
- attributes
Local & Instance Variables & Scope
- Difference between local and instance variables
- Variable scope
- Creation
- Initialize an Object
- Installation
- Usage
- Research
Orange Tree
Solar System Project
Baby Dragon Project
In Week 3 we will be learning some intermediate ruby ideas such as advanced variables, memoization, and Enumerable. For the project we will be building a pure ruby application backed by a CSV database called FarMarFinder. By the end of the week students should be able to build a ruby DSL for a relational CSV backed database using basic ruby methodologies and best practices.
- Learn basic/intermediate ruby concepts and methods
- Scopes of all variable types (local, instance, global, etc...)
- Performance with memoization
- Enumerable methods
- Running Koans
- Unit testing your application with Rspec
- Build a CSV backed ruby application
- Practice pair programming
- Collaborate on code via Github
Enumerable Methods
Inheritance
Advanced Variables
Reading from CSV
TDD/BDD
RSpec
Assertions
[More on Assertions](http://en.wikipedia.org/wiki/Assertion_(software_development)
Ruby Koans
In Week 4 we continue working with Test-Driven Development (TDD) and advanced Ruby concepts. We will spend a few days exploring TDD and the rspec toolset through building our own testing projects and tests.
- Solidify knowledge and use of intermediate ruby concepts
- Scopes of all variable types
- Enumerable methods
- Begin an introduction into computer science (CS) fundamental concepts
- Recursion
- Big O notation
- Running Koans
- Writing Rspec tests
- Giving lightning talks
Scrabble
Bank Accounts
Dictionary
In Week 5 we will cover an introduction of the "plumbing" of the Internet and how clients such as web browsers communicate with servers. We will be learning the basics of HTML & CSS. By the end of the week we will style a single page website using the common HTML & CSS practices and deploy it to Heroku.
Our learning will focus on the usage of basic HTML tags and their potential attributes. We will learn about CSS selectors, cascading rules, and common techniques for creating important web page elements. By the end of the week students should be able to create and style a webpage using valid HTML and CSS.
- Learn basic architecture of the Internet
- Learn the HTTP response cycle
- Learn basic techniques and best practices for HTML
- Learn basic techniques and best practices for CSS
- Build a personal blog in Sinatra
- Grow skills in reading technical documentation by working with the Sinatra: Up and Running book
- Gain exposure to deployment via Heroku
Intro to HTTP
HTML
Intro to Sinatra
Heroku
CSS
Intermediate CSS
In Week 6 we continue using Sinatra to solidify our understanding of web page elements using forms and additional HTTP verbs.
Our learning will cover an introduction to relational database concepts as well as understanding how to utilize these concepts. This includes an introduction to using SQL concepts using SQLite.
- Learn the HTTP verbs and the appropriate scenarios to use them
- Learn how and when to use forms in our web pages
- Enhance Sinatra blog using forms
- Learn the basics of relationship database constructs
- Practice pair programming
In week 7 we introduce students to the Ruby on Rails framework, which will be the focus of much of the work for the remainder of the course. Working individually, students build a basic Rails application. The focus is on learning how Rails and its implementation of MVC differ from Sinatra, how to work with ActiveRecord models, and begin to develop basic proficiency with Rails.
- Solidify understanding of web response cycle
- Introduce Rails
- ActiveRecord
- Controllers, Views & Routes
- Forms
- Introduce Data Modeling
- Improve workflow
In week 8 we will focus on reinforcing the major components of Rails, seen in this rails stack diagram. Working in pairs, we will revisit a previous project using Rails. We will examine how to work with ActiveRecord relationships. We will introduce Agile methodologies and how we will use them on our projects. At the end of the week students will have learned and practiced the rails stack.
- Continued exposure to Rails
- DB seeds with CSV
- Begin using agile practices in pair projects
- Practice pair programming skills
In Week 9 students will be creating a rails app to store and rank media by type. By the end of the week students will be able to identify each piece of the rails request cycle and the methods and variable scopes available within each of them. Students will begin testing some of the functionality within their web applications using RSpec as well as start to use Bootstrap for styling.
- Begin using RSpec to test functionality in Rails applications
- Introduce the use of Bootstrap
- Usage of the rails models
- Basic and Advanced Validations
- Learn to identify and describe the current state and availability of different methods and variables at any given point in the request cycle.
Validations
Bootstrap
Advanced Validations
RSpec Rails
Controler Specs
RSPec Practices
Shared Example Specs
In Week 10 we will be working on Betsy, an online webstore for independent merchants to sell their goods. At the end of the week students will have learned and practiced more with the rails stack and working in larger teams to complete a project.
- Continued exposure to Rails
- User Authentication
- Increasing skills in group work habits
- Improving technical workflow
- Increasing git/github competency
- Use agile development practices in a group of four
- Revisiting smaller Ruby exercises
User Authentication
Session
Conditional Validation
ActiveRecord Callbacks
Controller Filters
Custom View methods
Betsy
Small Ruby Project - ProPass
In Week 11 we will continue working in groups of 4 on the Betsy project introduced in Week 10. The majority of the week will be devoted to project time, with short lectures and assignments. We will revisit some of the tools and practices that we learned from Metz to work through some refactoring and DRYing up our code.
- Continued exposure to Rails
- Increasing skills in group work habits
- Improving technical workflow
- Increasing git/github competency
- Use agile development practices in a group of four
- Increased exposure to best practices in OO design
In week 12 we will work on Ada Cooks which will allow us to continue practicing TDD and solidify our understanding of database relationships using Rails. We will start using Factory Girl to write tests and Learn about uploading files.
- Using FactoryGirl for fixture data in our tests
- Using CarrierWave for file uploads
- Solidify knowledge of database relationships
- Practice TDD
RSpec Tools
Getting Started w/ Factory Girl
CarrierWave (minus S3)
Refactoring
OO Design
In week 13 we will work on SeeMore, in which we will create a RESTful web API from a public or private data source, and continue our learning within a larger Agile team.
- Identify when to use an external web API
- Create a web API
- Build data in JSON or XML format
- Consume data in JSON or XML format
- HTTP from Ruby (HTTParty)
- local User creation via OAuth service
- push to authorized services via APIs
- increasing comfort with API interactions
- increasing professional comportment and team project skills
- focus on project "polish" and customer deliverables
Web Api 101
Consuming an Api
Practice Consuming an Api
Starting SeeMore
Authentication w/ OmniAuth
In week 14 we will continue working with our teams on SeeMore.
Continued from Week 13
In Week 15 we will be begin a unit on Refactoring and Service Oriented Architecture. Build a Shipping service for a ecommerce projects. The emphasis will be on instilling good code craftsmanship and citizenship, exploring service APIs, and continuing to develop expertise with testing.
- Build an API
- Practice SOA
Creating an Api in Rails Ada Pets
Shipping Service Shipping Service Teams
In Week 16 we will start using JavaScript! We will start with an introduction and a few small projects using on Chrome Dev Tools and JSFiddle. Then we will go into a few larger projects in the browser. Finally we will integrate some of our new found skills into a Rails application.
- Introduction to JavaScript, including core concepts and features:
- variables
- types
- arrays
- functions
- scope
- objects
- Understanding of the DOM and how the browser loads and represents web pages.
- Using JavaScript and jQuery to modify a web page:
- with the JavaScript document object and associated methods
- with jQuery's $ function and associated methods
- Integrate JavaScript into a Rails app
- Understanding event handlers to write code that responds to user interaction.