DevMountain Immersive Syllabus

Week 1

Day 1 - Orientation & Version Control

  • Pre-Reading:
  • 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 Fork a repo and know it’s purpose
    • Students will be able to clone a repo and know it’s purpose
    • Students will be able to add, commit, and push files to github
    • Students will understand branching and it’s purpose
    • Students will understand how to use github in a group setting
    • Students will know how to create an upstream to master
    • 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
    • Students will be able to pull changes from the master repo
  • Project:
  • Additional Reading:

Day 2 - HTML & CSS Fundamentals

  • Pre-Reading:
  • 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:

Day 3 - HTML & CSS Positioning

  • Pre-Reading:
  • 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:

Day 4 - Advanced HTML & CSS

  • Pre-Reading:
  • 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 5 - JavaScript Fundamentals I

  • Pre-Reading:
  • Learning Objectives
    • Students will understand how the web works:
      • front-end vs back-end
      • the web app landscape
    • Students will understand JavaScript vs jQuery
    • Students will understand what the DOM is
    • Students will understand conditional statements and how they’re used
    • Students will understand functions:
      • invocation vs definition
      • parameters vs arguments
      • global and local scope
      • anonymous functions
      • return values and how to save the returned value to another variable
    • Closures
  • Projects:
  • Additional Reading:

Week 2

Day 1 - JavaScript Fundamentals II & III

  • Pre-Reading:
  • Learning Objectives
    • Objects
      • 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)
    • 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
  • Projects:
  • Additional Reading:

Day 2 - JS Fundamentals IV

  • Pre-Reading:
  • Learning Objectives
    • the purpose of the ‘this’ keyword
      • 4 rules for determining what ‘this’ is bound to
        • Implicit Binding
        • Explicit Binding
          • call
          • apply
          • bind
        • new binding
        • Default Binding
  • Projects:
  • Additional Reading:

Day 3 - JS Fundamentals V

  • Pre-Reading:
  • Learning Objectives
    • Students will understand synchronous vs asynchronous programming
    • Students will be able to talk about what a callback is
    • Students will understand the use cases of callbacks
    • Students will be able to identify and use callbacks
  • Project:
  • Additional Reading:

Day 4 - jQuery I

  • Pre-Reading:
  • 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:

Day 5 - jQuery II

  • Pre-Reading:
  • 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:

Week 3

Day 1 - AngularJS I

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • Students will understand the difference between jQuery and Angular and how Angular fits into the web app landscape
    • Students will understand what a module, controller, directive, and service is in angular
    • Students will be able to, from scratch, build a basic angular application, put data on a controller's scope, and bind that data to the view
    • Students will be able to ng-repeat over data
    • Students will be able to filter data
  • Project:
  • Additional Reading:

Day 2 - AngularJS II

  • Pre-Reading:
  • 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:

Day 3 - AngularJS III

  • Pre-Reading:
  • 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:

Day 4 - AngularJS IV

  • Pre-Reading:
  • 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:

Day 5 -Angular Review I

Week 4

Day 1 - Angular V

  • Pre-Reading:
  • 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 ngRoute
    • Students will be able to use resolve to resolve data and pass in data to their controller before their controller initializes
    • Students will be able to use routeParams to gather data from the URL
  • Project:
  • Additional Reading:

Day 2 - Angular VI

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • Students will understand how Directives fit into the Angular ecosystem
    • Students will be able to create a custom directive and use it in a view
  • Project:
  • Additional Reading:

Day 3 - Angular Review II / Panel

  • Review Day

Day 4 - Firebase

  • Pre-Reading:
  • Learning Objectives
    • Students will understand the term CRUD
    • Students will be able to use Firebase in angular to persist data to a server
  • Project:
  • Additional Reading:

Day 5 - 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

Week 5

Day 1 - No Server Project

Day 2 - No Server Project

Day 3 - No Server Project

Day 4 - NodeJS I

  • Mini Project:
  • Learning Objectives
    • Student will understand how HTTP works to communicate between client & server
    • Student can create a basic HTTP NodeJS server
    • Student can use basic REST verbs (GET, POST)
    • Student understands and can implement basic CORS headers
    • Student can use "require" to import a Node module
  • Project:
  • Additional Reading:

Day 5 - NodeJS II

  • Mini Project:
  • Learning Objectives
    • Student can install express
    • Student can use express to create REST endpoints
    • Student can use bodyParser to examine POST data
    • Student can use middleware to add CORS headers
    • Student can access URL parameters in a web request
  • Project:
  • Additional Reading:

Week 6

Day 1 - NodeJS III

  • Mini Project:
  • 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

  • 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

  • Mini Project:
  • Learning Objectives
    • understand what object modeling is and why it’s used
    • understand the difference between Mongoose and MongoJS
  • Project:
  • Additional Reading:

Day 4 - MongoDB III

  • 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 5 - Personal Projects

Week 7 (INTERIM WEEK)

Day 1 - Personal Projects

Day 2 - Personal Projects

Day 3 - Personal Projects

Day 4 - Personal Projects

Day 5 - Personal Projects

Week 8

Day 1 - Personal Projects

Day 2 - NodeJS IV

  • 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

Day 4 - Personal Projects

Day 5 - Personal Projects

Week 9

Day 1 - Personal Projects

Day 2 - Personal Projects

Day 3 - Personal Projects

Day 4 - Personal Projects

Day 5 - Personal Projects

Week 10

Day 1 - Advanced JS I

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • LEARNING OBJ
    • LEARNING OBJ
    • LEARNING OBJ
  • Project:
  • Additional Reading:

Day 2 - Advanced JS II

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • LEARNING OBJ
    • LEARNING OBJ
    • LEARNING OBJ
  • Project:
  • Additional Reading:

Day 3 - React I

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • LEARNING OBJ
    • LEARNING OBJ
    • LEARNING OBJ
  • Project:
  • Additional Reading:

Day 4 - React II

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • LEARNING OBJ
    • LEARNING OBJ
    • LEARNING OBJ
  • Project:
  • Additional Reading:

Day 4 - React III

  • Pre-Reading:
  • Mini Project:
  • Learning Objectives
    • LEARNING OBJ
    • LEARNING OBJ
    • LEARNING OBJ
  • Project:
  • Additional Reading:

Week 11

Day 1 - Group Projects

Day 2 - Group Projects

Day 3 - Group Projects

Day 4 - Group Projects

Day 5 - Group Projects

Week 12

Day 1 - Group Projects

Day 2 - Group Projects

Day 3 - Group Projects

Day 4 - Group Projects

Day 5 - Group Projects

Week 13

Day 1 - Group Projects

Day 2 - Group Prjects

Day 3 - Job Prep I

Day 4 - Job Prep II

Day 5 - Job Prep III