Code 401: Advanced Software Development in Full-Stack JavaScript With Lead Instructor Jacob Knaack
JavaScript
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
Hardware
Computer
Students are required to bring their own laptop.
It needs to run the latest version of Windows or Max OS.
Administrator-level access required.
At least 50GB of free space on the hard drive.
At least 16GB of RAM. 32GB RAM strongly preferred.
Free of viruses.
Zoom-ready (reliable webcam and microphone).
Internet Connection
Each student is responsible for their access to the internet for purposes of this course and for research. Internet access is a required component of this course and will not be accepted as an excuse for missed work. If you know that you will be traveling, then make sure you plan accordingly.
Students will learn to build full-stack applications. The first four weeks focus on building back-end web applications with Node.js. During weeks 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