Skip to content

codefellows/seattle-javascript-401d47

Repository files navigation

Code 401: Advanced JavaScript Core Syllabus

Course Information

  • Course Level: Code 401
  • Certificate: Advanced Software Development In JavaScript

Course Prerequisites

  • Code 102
  • Code 201
  • Code 301

Students with previous relevant or equivalent experience can test out of this requirement in their application.

Course Description

Learn to write clean, well-tested, advanced JavaScript code using industry-standard software engineering patterns using NodeJS, Express, Postgres, and React.

Required Materials

Accounts

  • An AWS account

Program Learning Outcomes

Students will learn to build full-stack applications. The first four weeks focus on building back-end web applications with Node.js. During modules six through nine, students learn to build web apps with modern front-end libraries and frameworks. This course goes in depth into the core competencies of JavaScript, object-oriented programming, and functional programming. Students get hands-on practice in test-driven development with agile tools and best practices.

Student Learning Outcomes

Upon satisfactory completion of this course, a student should be able to:

Describe and Define

  • Fundamentals of JavaScript
  • Object-Oriented Programming
  • Structural Design Patterns
  • Async Design Patterns
  • Client / Server architecture
  • TCP and HTTP
  • SQL Databases
  • RESTful API
  • Authentication / Authorization
  • Data Modeling
  • Test-Driven Development
  • Behavior-Driven Development
  • Unit, Integration, and End-to-End Testing
  • Functional Programming
  • Code Readability and Maintainability
  • Version Control
  • Continuous Integration and Deployment
  • Debugging
  • Real-time apps with Socket.io
  • Event-Driven Applications
  • Asynchronous Programming
  • Programming UI Component Frameworks
  • Unified Modeling Language

Execute

  • Domain modeling of real-world concepts using object-oriented programming.
  • Configure and perfrom CRUD on PostgreSQL Databases.
  • API building using contemporary frameworks and design patterns.
  • Writing, publishing, and maintaining software documentation.
  • Building User Interfaces using the React Libary.
  • Implementing Server Side Message Queueing.
  • Installing and configuring UI component libraries.
  • Server Side and Client Side JavaScript.
  • Installing and developing software with command line utilities.
  • Test driven development with integration and unit tests.
  • Configure and develop applications deployed to cloud infrastructure.
  • Building backend infrastructure using AWS services; Lambda, API Gateway, Dynamo DB, EC2, Elastic Beanstalk, SQS, SNS.

Course Schedule

Module 1

Class # Topic Lab
01 Intro to NodeJS Deploying Node Applications
02 Modules and Testing Node Ecosystem, CI, CD
03 Express Web Servers HTTP Servers and Test Driven Development
04 REST API RESTful CRUD routing and Data Modeling
05 Linked Lists, Big O, Resume Workshop Linked List Implementation

Module 2

Class # Topic Lab
06 Basic Authentication Server Side Encryption with Basic Auth Middleware
07 Bearer Authentication Server Side Token Signing and Validation
08 Role Based Access Control Access Control Lists and Authorization Middleware
09 Guided Project Student led MVP using RESTful HTTP Web Services
10 Stacks, Queues, Personal Pitch Workshop Stack, Queue Implementations

Module 3

Class # Topic Lab
11 Event Driven Programming Events using Subjects and Observers / Clients
12 Network Events TCP and WebSockets using Socket.io
13 Message Queues Message Management Queue Implementation
14 Guided Project Student led MVP using Networked Event Obervables
15 Trees, Job Search Workshop Tree Implementation

Module 4

Class # Topic Lab
16 AWS: EC2 and Elastic Beanstalk Node Apps on Elastic Beanstalk
17 AWS: S3 and Lambda Automated Lambda Services
18 AWS: APIs and Dynamo DB RESTful CRUD via AWS Services
19 AWS: Message Queues and Notifications Event Observables with SNS and SQS
20 Project Kickoffs Team Setup, Ideation, Wireframes, Tooling

Module 5 - Midterm Project

Class # Deliverables
16 Wireframes, User Stories, Architecture Plan, DevOps, Documentation, Agreements
17 Phase 1
18 MVP
19 Final Polish, Presentation Practice
20 Live Project Presentations

Module 6

Class # Topic Lab
26 React - Function Components Functional vs Object Oriented component implementation
27 React - State Hook Retrieving User input and managing state
28 React - Effect Hook and Lifecycle Fetching live API data
29 React - Reducer Hook Tracking User history
30 Hash Tables, Behavioral Interview Workshop Hash Tables Implementation

Module 7

Class # Topic Lab
31 React - Context API Creating a global state using context
32 React - Context API Updating global state through context
33 React - Cookies, Local Storage Login and Auth components
34 React - RBAC Auth API Integration
35 Graphs, Technical Interview Workshop Graph Implementation

Module 8

Class # Topic Lab
36 React - Redux Reducers, Actions, and State
37 Redux - Combined Reducers Using multiple reducers in a single store
38 Redux - Asynchronous Actions Integrating APIs into Redux actions
39 Redux - Alternatives and Advanced Usage Opionated Redux Toolkit implementation
40 Personal Presentation Final Exam Prep

Module 9

Class # Topic Lab
41 React Native Wireframe and scaffold a mobile application
42 React Native Mobile application - Add interactivity, Polish, Deploy
43 Open Source Research, contribute to OSS
44 Ethics Final Exam
45 Project Kickoffs Team Setup, Ideation, Wireframes, Tooling

Module 10 - Capstone Project

Class # Deliverables
46 Wireframes, User Stories, Architecture Plan, DevOps, Documentation, Agreements
47 Phase 1
48 MVP
49 Final Polish, Presentation Practice
50 Live Project Presentations

Releases

No releases published

Packages

No packages published