Code 401: Advanced JavaScript Core Syllabus
- 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
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 perform CRUD on PostgreSQL Databases.
- API building using contemporary frameworks and design patterns.
- Writing, publishing, and maintaining software documentation.
- Building User Interfaces using the React Library.
- 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 |
Challenge |
| 01 |
Intro to NodeJS |
Reverse Array |
| 02 |
Modules and Testing |
insertShiftArray |
| 03 |
Express Web Servers |
BinarySearch |
| 04 |
REST API |
Mock Interviews: Sum Rows, nth Fibonacci |
| 05 |
Linked Lists, Big O, Resume Workshop |
Linked List Implementation |
Module 2
| Class # |
Topic |
Challenge |
| 06 |
Basic Authentication |
Linked List Insertion |
| 07 |
Bearer Authentication |
kth-from-end |
| 08 |
Role Based Access Control |
Zip |
| 09 |
Guided Project |
Mock Interviews: Reverse Linked List, IsPalindrome |
| 10 |
Stacks, Queues, Personal Pitch Workshop |
Stack, Queue Implementations |
Module 3
| Class # |
Topic |
Challenge |
| 11 |
Event Driven Programming |
Queue with two stacks |
| 12 |
Network Events |
FIFO Animal Shelter |
| 13 |
Message Queues |
Balanced Brackets |
| 14 |
Guided Project |
Mock Interviews: Stack Max, Duck Duck Goose |
| 15 |
Trees, Job Search Workshop |
Tree Implementation |
Module 4
| Class # |
Topic |
Challenge |
| 16 |
AWS: EC2 and Elastic Beanstalk |
Tree Max |
| 17 |
AWS: S3 and Lambda |
Tree Breadth First |
| 18 |
AWS: APIs and Dynamo DB |
Tree Fizz Buzz |
| 19 |
AWS: Message Queues and Notifications |
Mock Interviews: Sum Odd, Compare Filenames |
| 20 |
Project Kickoffs |
Team Setup, Ideation, Wireframes, Tooling |
Module 5 - Midterm Project
| Class # |
Deliverables |
| 21 |
Wireframes, User Stories, Architecture Plan, DevOps, Documentation, Agreements |
| 22 |
Phase 1 |
| 23 |
MVP |
| 24 |
Final Polish, Presentation Practice |
| 25 |
Live Project Presentations |
Module 6
| Class # |
Topic |
Challenge |
| 26 |
React - Function Components |
Insertion Sort |
| 27 |
React - State Hook |
Merge Sort |
| 28 |
React - Effect Hook and Lifecycle |
Quick Sort |
| 29 |
React - Reducer Hook |
Mock Interviews: Merge Sort, Quicksort |
| 30 |
Hash Tables, Behavioral Interview Workshop |
Hash Tables Implementation |
Module 7
| Class # |
Topic |
Challenge |
| 31 |
React - Context API |
Repeated Word |
| 32 |
React - Context API |
B-Tree Intersection |
| 33 |
React - Cookies, Local Storage Login and Auth components |
Map Left Join |
| 34 |
React - RBAC |
Mock Interviews: Most Common Word, Unique Character Strings |
| 35 |
Graphs, Technical Interview Workshop |
Graph Implementation |
Module 8
| Class # |
Topic |
Challenge |
| 36 |
React - Redux Reducers, Actions, and State |
Graph Breadth First |
| 37 |
Redux - Combined Reducers |
Graph Business Trip |
| 38 |
Redux - Asynchronous Actions |
Graph Depth First |
| 39 |
Redux - Alternatives and Advanced Usage |
Mock Interviews: Adj Matrix to Adj List, Graph Connected |
| 40 |
Personal Presentation |
Final Exam Prep |
Module 9
| Class # |
Topic |
Challenge |
| 41 |
React Native |
Mock Interview: Browser History, Find Anagrams |
| 42 |
React Native |
Mock Interview: Reverse a string (3 ways), Sanitize URL |
| 43 |
Open Source |
Mock Interviews: Estimate Water Usage, Convert year to roman numerals |
| 44 |
Ethics |
Mock Interviews: Rotate a Matrix, Largest 3-Product |
| 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 |