Skip to content

lentilz/js-dc-4

 
 

Repository files navigation

JavaScript Development

Course information

Class will meet Tuesday and Thursday on the 8th floor in classroom 5 from 6:30 - 9:30pm - https://goo.gl/maps/PwyY2

To get up to the 8th floor, show the attached Class Pass at the Security Desk downstairs. You will need to show this on your phone or printed out every time.

Once you're upstairs, tell the folks at the front desk you're here for your first day of Javascript and they'll point you to your classroom.

Office Hours

Zakk: Sundays from 3:00 - 5:00

Christine: Wednesdays from 5:30 to 7:30

What to Bring

A. Your laptop (and charger with your name on it!)

B. Snacks in case you get hungry

C. A Sweater in case you get cold

D. Class Pass printed out or on your phone

Schedule

Overview

Class Title Date
Lesson 00 Installfest February 21st
Lesson 01 The Command Line & Git February 23rd
Lesson 02 Data Types February 28th
Lesson 03 Control Flow March 2nd
Lesson 04 Functions March 7th
Lesson 05 Objects March 9th
Lesson 06 Project 1 March 14th
Lesson 07 Intro to DOM March 16th
Lesson 08 Events March 21st
Lesson 09 Templating & Build Tools March 23rd
Lesson 10 Express March 28th
Lesson 11 CRUD & Databases March 30th
Lesson 12 APIs April 4th
Lesson 13 Application Architecture April 6th
Lesson 14 Project 2 - HackerWall April 11th
Lesson 15 Single Page Applications April 13th
Lesson 16 Authentication April 18th
Lesson 17 Deploying Your App April 20th
Lesson 18 Project 3 Your App April 25th
Lesson 19 Final Project Presentations April 27th

Classes

Class 00: Installfest

Learning Objectives

  • Get to know your classmates, instructors, and staff members.
  • Install the tools we'll need to be successful in this course, including Node.js, npm, and Git
  • Explain the structure of the course and tools that will be used.
  • Discuss the benchmarks for assessments in terms of class participation, homework, and unit projects.
  • Answer the question, what makes JavaScript important?
  • Start answering the question, What is JavaScript?

Materials

Class 01: Command Line

In this lesson, we'll cover the basics of navigating the file system on your computer with a tool called the command line. We'll also dive into working with a command line tool called Git and a companion tool called GitHub.

Learning Objectives

  • Learn how to work in the Terminal
  • Learn the basics of Git and GitHub

Materials

Class 02: Data Types

Data types are the most atomic unit of any program. Javascript has many basic data types, which we cover in this lesson, and a couple of complex data types. We'll be introduced to Arrays at the end of the class as our first complex data type.

Learning Objectives

  • Describe the concept of a "data type" and how it relates to variables
  • Declare, assign to, and manipulate data stored in a variable
  • Create arrays and access values in them

Materials

Class 03: Control Flow

Programming is often described as following a recipe - in this lesson, we discuss why it's more nuanced than that by looking at control flow - ways we can control what code gets executed and the conditions under which it gets executed.

Learning Objectives

  • Fork a repository and make a pull request
  • Understand different types of control flow including linear, conditional and iterative
  • Understand how to implement different types of control flow, including if and if/else statements, for loops and while loops

Materials

Class 04: Functions

Now that we know how to work with data and control when certain actions are performed by our program, we need a way to encapsulate code so we can reuse it. Functions let us write code that will perform an action whenever we ask it to do so.

Learning Objectives

  • Understand what functions are and how, when and why to use them
  • Declare our first function
  • Understand parameters and arguments and how they relate to functions
  • Understand the basics of scope
  • Create and call a function that accepts parameters to solve a problem

Materials

Class 05: Objects

Our final class on Javascript as a language covers Objects. This lesson will also cover Object Oriented Programming, a paradigm often held in opposition to Functional Programming, which we talked about in the last class.

Learning Objectives

  • Create and modify JavaScript Objects
  • Use Objects to model complex data
  • Get and Set properties of Objects

Materials

Class 06: Lab

Today's lesson is short and sweet! We'll go over npm and breaking our program out into multiple files then give you the rest of the time to work on the lab!

Lab

Materials

Class 07: Intro to the DOM

Learning Objectives

  • Understand the basics of working with the Document Object Model
  • Explain and Understand how to work with the DOM using JavaScript
  • Manipulate the DOM using JavaScript

Materials

Class 08: Events

Today's class goes in depth on event driven development, responding to browser/user events with Javascript and writing event handlers.

Learning Objectives

  • Implement events using JavaScript
  • Understand how to work with events and how to implement event handlers
  • Learn about event propogation

Materials

Class 09: Templating

Learning Objectives

  • Use Handlebars templates to turn JS into HTML
  • build a simple dynamic application using Handlebars and JS

Materials

Class 10: Express

Learning Objectives

  • Explain the two parts of a web application
  • Identify all the parts of HTTP requests and responses
  • Understand server architecture and build a server with Express

Materials

Class 11: CRUD and Databases

Learning Objectives

  • Understand the differences between different types of databases
  • Describe what CRUD operations are and how they are used
  • Describe an ORM
  • Set up a simple Express application that uses Mongoose as an ORM to connect to a MongoDB database

Materials

Class 12: APIs

Learning Objectives

  • Describe what an API is and how to use it
  • Understand how to work with an API
  • Build an API using Express

Materials

Class 13: Application Architecture

Learning Objectives

  • Learn about different architecture patterns for building applications

Materials

Class 14: Lab 2

Lab 2

Class 15: Authentication

Learning Objectives

  • Understand middleware in an express application
  • Describe the basics of authentication
  • Use Passport to authenticate users

Materials

Class 16: Single Page Applications

Learning Objectives

  • Describe the basics of authentication
  • Use Passport to authenticate users
  • Understand the architecture of a SPA
  • Build out a basic SPA

Materials

Class 17: Deployment

Learning Objectives

  • Understand the difference between static and dynamic applications
  • Learn how to deploy static sites
  • Learn how to deploy a dynamic site

Materials

Class 18: Final Project: Day 1

Project Requirements

Class 19: Presentations

Students will have 10 minutes to present their final projects. See the presentation requirements here

Class 19+: Profit

Students will $$$

About

JavaScript 4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 47.6%
  • CSS 32.3%
  • HTML 20.1%