DevMountain Web After-Hours Syllabus

Week 1

Day 1 - Github & Version Control

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will understand and be able to use the command line for
      • creating a folder
      • creating a file
      • editing a file
      • changing directories
    • Students will understand what Git and Github are and how they fit into the web app landscape
    • Students will be able to clone a repo and know its purpose
    • Students will be able to add, commit, and push files to github
    • Students will understand basic branching
    • Students will understand how to use github in a group setting
      • Students be able to understand what a "Fork" is and be able to Fork a repo
      • Students will be able to handle merge conflicts
      • Students will be able to minimally manage vim to escape merge conflict messages
      • Students will know how to make a Pull Request
  • Project:
  • Additional Practice:
  • Additional Reading:
  • Assessment

Day 2 - HTML & CSS Fundamentals

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will understand the purpose of HTML
    • Students will understand the purpose of CSS
    • Students will from scratch, be able to create a skeleton for their html and css page
    • understand and be able to use the following HTML Elements
      • p
      • footer
      • header
      • h1 - h6
      • ul
      • li
      • div
    • Understand and be able to use the following CSS properties
      • id (#) vs class(.) and specificity
      • width px & %
      • height px & %
      • background-color
      • background-image
      • color
      • font-size
      • text-align: center
      • line-height
      • box-model (margin, padding, border)
      • float
      • clear
  • Project:
  • Additional Reading:
  • Assessment

Day 3 - HTML & CSS Positioning

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will be able to use Chrome Dev Tools to inspect their HTML/CSS
    • Students will understand the purpose of CSS
    • Students will be able to compare and contrast fixed, relative, absolute, and static positioning in CSS
    • Students will be able to compare and contrast display block, inline-block, inline, and none
    • Students will be able to compare and contrast overflow hidden, auto, scroll
    • Students will understand and be able to use max/min-width and max/min-height
  • Projects:
  • Additional Reading
  • Assessment

Week 2

Day 1 - Advanced HTML & CSS

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will understand and be able to explain the box model to someone else
    • Students will understand media queries and be able to implement them
    • Students will understand when and when not to use floating elements
  • Project:
  • Additional Reading:
  • Assessment

Day 2 - Advanced CSS

  • Before class:
    • No video. Work on previous projects or re-watch lessons on Vimeo, or follow an online tutorial about HTML and CSS. Just make sure you do something! Keep up the momentum!!!
  • Learning Objectives
    • Students will understand and be able to explain the box model to someone else
    • Students will understand media queries and be able to implement them
    • Students will understand when and when not to use floating elements
  • Project:
  • Additional Reading:

Day 3 - JavaScript Fundamentals I

Week 3

Day 1 - JavaScript Fundamentals II

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will understand Arrays:
      • purpose
      • how to get values from arrays
      • array properties (length, push/pop, shift/unshift, split/join, splice/slice, reverse, indexOf)
      • how to create an array
      • how to loop through an array
  • Project:
  • Additional Reading:

Day 2 - JS Fundamentals III

  • Pre-Reading:
  • Lesson Video:
  • Learning Objectives
    • Students will understand how Objects differ from Arrays
    • Students will understand use cases for objects
    • Students will understand how to create and add properties/values to objects
    • Students will understand how to loop through objects
    • Students will understand how to create and invoke a method
    • Students will understand bracket notation vs dot notation
    • Students will understand how to remove keys/props from objects (delete)
  • Projects:
  • Additional Reading:

Day 3 - JS Advanced JS I

Week 4

Day 1 - Advanced JavaScript II

Day 2 - Advanced JavaScript III

  • Pre-Reading:
  • Learning Objectives
    • Students will be able to define what a closure is
    • Students will be able to identify when a closure is being used
  • Project:
  • Additional Reading:

Day 3 - JavaScript Review

Week 4

Day 1 - jQuery I

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students will understand the DOM
    • Students will be able to make basic manipulations to the DOM
    • Students will understand visual and functional purpose of the jQuery
  • Project:
  • Additional Reading:
  • Assessment

Day 2 - jQuery II

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students will Understand CRUD
    • Students will be able to make GET and POST requests
    • Students will understand why AJAX is important
  • Project:
  • Additional Reading:

Day 2 - AngularJS I

Day 3 - AngularJS II

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students will understand the purpose of Services in Angular
    • Students will know how to inject services into their controllers
    • Students will know how to call methods on their services from in their controllers and put the response on $scope
    • know the difference between factories and services
  • Project:
  • Additional Reading:
  • Assessment

Week 5

Day 1 - AngularJS III

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students will be able to explain what JSON is
    • Students will be able to explain was REST is
    • Students will be able to explain what AJAX is
    • Students will make an ajax request with angular, call .then on the promise and add that data to the $scope
  • Project:
  • Additional Reading:
  • Assessment

Day 2 - AngularJS IV

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students will be able to make $http requests to various APIs
    • Students will be able to use outside directives and know how to inject those modules into their application
    • Students will be able to create, return, and resolve their own promises with $q
  • Project:
  • Additional Reading:
  • Assessment

Day 3 -Angular Review I

In-class practice project : Angular Drills

Week 6

Day 1 - Angular V

  • Pre-Reading:
  • Lesson Video:
  • Install these before class!:
  • Mini Project:
  • Learning Objectives
    • Students will understand the methodology behind routing and templating
    • Students will be able to set up a basic routing system with multiple views and controllers using UI-Router
    • Students will be able to use resolve to resolve data and pass in data to their controller before theirn controller initializes
    • Students will be able to use stateParams to gather data from the URL
  • Project:
  • Additional Reading:
  • Assessment

Day 2 - Angular VI

Day 3 - Angular Review II

  • Review Day

Week 7

Day 1 - Firebase

Day 2 - Firebase II & No Server Project

  • Learning Objectives
    • Students will understand how to use Firebase's authentication system
    • Students will start on their no server project

Day 3 - No Server Project

  • Requirements
    • At least 3 routes
    • At least 2 directives
      • 1 directive can be just a templateUrl for code re-use
      • 1 directive needs to do some javascript (event if it's just elem.css({}) in the link function)
    • [Bonus] Use Firebase or an API
      • This should take a back seat to making a solid project with angular
    • [Bonus 2] Make it look nice! Styling is important to employers. It's important to practice. Feel free to Google for 'inspiration' to mimic.

Week 8

Day 1 - No Server Project

Day 2 - NodeJS I

  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Students understand what Node is and that it can be used as a server
    • Student will understand how HTTP works to communicate between client & server
    • Student will understand the need for a module like express
    • Student can use require to import a Node module
    • Student will understand the basic utility of a package.json file
    • Student can create a HTTP NodeJS server using express
    • Students can explain endpoints and create basic ones testing them with Postman
  • Project:
  • Additional Reading:

Day 3 - NodeJS II

  • Lesson Video:
  • Mini Project:
    • Rewrite in Progress
  • Learning Objectives
    • Student can require other .js files in the project
    • Student can use bodyParser to get data out of the body
    • Student can use req.params
    • Student is introduced to req.query
    • Student understands the request response lifecycle in express including the order in which functions are called
    • Student can utilize middleware
  • Project:
  • Additional Reading:

Week 9

Day 1 - NodeJS III

  • Lesson Video:
  • Mini Project:
    • Rewrite in Progress
  • Lesson Video:
  • Learning Objectives
    • Student can use Express to serve static files
    • Student can use routing in Express to create basic API endpoints
    • Student can use route params to make dynamic endpoints
    • Student can build a front-end Angular application that connects to a back-end NodeJS API
  • Project:
  • Additional Reading:

Day 2 - MongoDB I

  • Lesson Video:
  • Before class:
    • Make sure you've installed MongoDB (Mac or PC)
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Understand the DB's place in the web app landscape (MongoDB vs DBaaS like Firebase)
    • Understand DBs, Collections, and Documents
    • Understand CRUD operations with MongoDB
  • Project:
  • Additional Reading:

Day 3 - MongoDB II

Week 10

Day 1 - MongoDB III

  • Lesson Video:
  • Mini Project:
  • Mini-Birds Related
  • Learning Objectives
  • Understand the concept of relationships
  • Understand the different types of relationships, and when to use them
  • Understand how and when to use embedded and referential schemas
  • Project:
  • Additional Reading:

Day 2 - NodeJS IV

  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Student can distinguish between Basic Auth, Form-based Auth, Token-based Auth, and OAuth
    • Student can use express sessions to restrict access to resources
    • Student can use passport to authenticate users with providers like Twitter, Facebook, etc.
  • Project:
  • Additional Reading:

Day 3 - Personal Projects

Week 11

Day 1 - React I

  • Pre-Reading:

  • Lesson Video:

  • Mini Project:

  • Learning Objectives

    • Understand how React compares to other Front End frameworks like Angular and Ember
    • Understand how to use Webpack to set up a build process for your React App
    • Understand how to build a component which modifies and maintains it’s own state
    • Understand how to pass data into child components as props
    • Understand how to use CSS with React as well as “inline” styles CSS in React
    • Understand how to keep your components state up to date as well as invoke other methods in your component.
  • Project:

  • Additional Reading:

Day 2 - React II

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Understand the Life Cycle of a Components
    • Understand how to use propTypes and getDefaultProps
    • Understand what Mixins are and how they’re useful
    • How to use React w/ jQuery and specifically to make Ajax requests
  • Project:
  • Additional Reading:

Day 3 - React III

  • Pre-Reading:
  • Lesson Video:
  • Mini Project:
  • Learning Objectives
    • Understand the purpose and benefits of Flux
    • Understand how to architect a Flux app with the following
      • actions
      • stores
      • constants
      • dispatcher
      • components
  • Project:
  • Additional Reading: