Software Engineering Bootcamp
Last updated: November 2026
Source org: ga-curriculum
How to Use This Repo
Each module below is a separate repo in the ga-curriculum org. You have two ways to work with it:
- GitHub Repo — clone this to work locally, submit homework, or browse the raw files (slides, starter code, solutions).
- GitHub Pages — a formatted, readable version of the lesson in your browser. Best for a quick read-through before or after class.
Content types:
| Type | What it is |
|---|---|
| Lesson | Instructor-led teaching content |
| Lab | Guided, hands-on practice (usually same-day) |
| Project | A larger, graded deliverable |
| Lesson/Lab | Self-contained module that pairs a lesson with built-in practice exercises |
Pacing Guide
Quick Links
- Unit 1 — JavaScript, HTML & CSS Fundamentals
- Unit 2 — Full-Stack Development with the MEN Stack
- Unit 3 — React & the MERN Stack
- Unit 4 — Python, SQL, Django & Flask
- Computer Science Modules
- Extra Resources
Unit 1
| Module | Type | GitHub Repo | GitHub Pages | About |
|---|---|---|---|---|
| Installfest | Lesson | Repo | Pages | Setup and installation of required tools and development environment. |
| Intro to the CLI | Lesson | Repo | Pages | Introduction to using the command line for navigating and managing files. |
| Intro to the CLI Lab | Lab | Repo | Pages | Hands-on practice using CLI commands. |
| Intro to Git and GitHub | Lesson | Repo | Pages | Version control fundamentals using Git and collaboration with GitHub. |
| Intro to JavaScript | Lesson | Repo | Pages | Introduction to JavaScript syntax and programming fundamentals. |
| Javascript Control Flow | Lesson | Repo | Pages | Conditional logic and control structures in JavaScript. |
| Intro to JavaScript Functions | Lesson | Repo | Pages | Writing reusable JavaScript functions and understanding parameters and return values. |
| Intro to JavaScript Functions Lab | Lab | Repo | Pages | Practice writing and using JavaScript functions. |
| JavaScript Scope | Lesson | Repo | Pages | Understanding scope and variable visibility in JavaScript. |
| MDN | Lesson | Repo | Pages | Introduction to using MDN documentation effectively. |
| Intro to JavaScript Arrays | Lesson | Repo | Pages | Working with arrays and list-based data in JavaScript. |
| Intro to JavaScript Arrays Lab | Lab | Repo | Pages | Hands-on exercises using JavaScript arrays. |
| Intro to HTML | Lesson | Repo | Pages | Core HTML structure and elements for building web pages. |
| Intro to CSS | Lesson | Repo | Pages | Styling web pages using CSS fundamentals. |
| Intro to JavaScript Objects | Lesson | Repo | Pages | Understanding objects and key-value data structures in JavaScript. |
| Intro to JavaScript Objects Lab | Lab | Repo | Pages | Exercises working with objects and object properties. |
| Intro to the DOM | Lesson | Repo | Pages | Introduction to the Document Object Model and interacting with web pages through JavaScript. |
| DOM Events | Lesson | Repo | Pages | Understanding browser events and event-driven programming. |
| DOM Events Lab | Lab | Repo | Pages | Practice building interactive browser behavior using events. |
| JavaScript Browser Game - Rock, Paper, Scissors | Lesson | Repo | Pages | Guided lesson building a simple browser-based game. |
| JavaScript Browser Game - Tamagotchi Lab | Lab | Repo | Pages | Optional advanced exercise creating a browser-based Tamagotchi game. |
| JavaScript Browser Game - Tic-Tac-Toe Lab | Lab | Repo | Pages | Build a complete browser-based Tic-Tac-Toe game. |
| Intermediate CSS | Lesson | Repo | Pages | Expands CSS knowledge with layout and styling techniques. |
| Flexbox | Lesson | Repo | Pages | Layout techniques using CSS Flexbox. |
| Flexbox Lab | Lab | Repo | Pages | Practice building layouts using Flexbox. |
| CSS Grid | Lesson | Repo | Pages | Advanced layout system using CSS Grid. |
| Responsive Design | Lesson | Repo | Pages | Designing websites that adapt to different screen sizes. |
| Javascript Array Iterator Methods | Lesson | Repo | Pages | Using built-in iterator methods such as map, filter, and reduce. |
| Javascript Array Iterator Methods Lab | Lab | Repo | Pages | Hands-on exercises applying iterator methods. |
| Intro to Accessibility | Lesson | Repo | Pages | Accessibility basics for building inclusive web experiences. |
| Intro to Markdown Lab | Lab | Repo | Pages | Learn Markdown syntax used for documentation and READMEs. |
| Javascripts Built-in Objects and Classes | Lesson | Repo | Pages | Understanding built-in JavaScript objects and classes. |
| Intro to JS Classes | Lesson | Repo | Pages | Creating and using JavaScript classes. |
| Playing Audio in the Browser | Lesson | Repo | Pages | Adding and controlling audio within browser applications. |
| Card Game Starter | Lesson | Repo | Pages | Starter resources for building card-based browser games. |
Projects
| Module | GitHub Repo | GitHub Pages | About |
|---|---|---|---|
| Project 1 : Browser-Based Game | Repo | Pages | Students design and build an interactive browser-based game using HTML, CSS, and JavaScript. |
Unit 2
| Module | Type | GitHub Repo | GitHub Pages | About |
|---|---|---|---|---|
| Intro to Full-Stack Development | Lesson | Repo | Pages | Overview of full-stack development and how front-end and back-end systems interact. |
| HTTP Request Response Cycle | Lesson | Repo | Pages | Explains how browsers and servers communicate through HTTP requests and responses. |
| Intro to Node | Lesson | Repo | Pages | Introduction to Node.js and running JavaScript outside the browser. |
| Intro to Express | Lesson | Repo | Pages | Learn how to build server applications using Express. |
| Intro to Express Lab | Lab | Repo | Pages | Hands-on practice building Express routes and simple server applications. |
| Postman Setup Lab | Lab | Repo | Pages | Configure Postman and practice testing API endpoints. |
| RESTful Routing | Lesson | Repo | Pages | Introduces REST principles and common routing patterns used in APIs. |
| Exposing an API | Lesson | Repo | Pages | Learn how to expose data through a REST API using Express. |
| EJS | Lesson | Repo | Pages | Introduction to Embedded JavaScript templates for rendering dynamic HTML. |
| EJS Lab | Lab | Repo | Pages | Practice building dynamic views using EJS templates. |
| MongoDB Atlas Setup Lab | Lab | Repo | Pages | Setup MongoDB Atlas and connect a cloud database to your application. |
| Intro to Asynchronous Programming | Lesson | Repo | Pages | Learn asynchronous programming concepts including callbacks, promises, and async/await. |
| Intro to Databases | Lesson | Repo | Pages | Introduction to database concepts and persistence in applications. |
| Environment Variables | Lesson | Repo | Pages | Learn how environment variables are used to configure applications. |
| Environment Variables - Node | Lesson | Repo | Pages | Implement environment variables within Node applications. |
| Intro to Mongoose | Lesson | Repo | Pages | Introduction to using Mongoose for modeling MongoDB data in Node applications. |
| Intro to Mongoose Lab | Lab | Repo | Pages | Hands-on exercises creating and querying Mongoose models. |
| HTML Forms | Lesson | Repo | Pages | Learn how to build forms and collect user input in web applications. |
| MEN Stack CRUD App - Fruits | Lesson | Repo | Pages | Guided walkthrough building a CRUD application with the MEN stack. |
| MVC in Express | Lesson | Repo | Pages | Introduces the Model-View-Controller architecture in Express applications. |
| MEN Stack CRUD App Lab | Lab | Repo | Pages | Hands-on practice implementing CRUD features in a MEN stack app. |
| MEN Stack - Session Auth | Lesson | Repo | Pages | Implement session-based authentication in an Express application. |
| MEN Stack Error Handling | Lesson | Repo | Pages | Learn strategies for handling errors in Node and Express applications. |
| Mongoose Relationships | Lesson | Repo | Pages | Model relationships between MongoDB documents using Mongoose. |
| Regular Expressions | Lesson | Repo | Pages | Introduction to pattern matching with regular expressions. |
| MEN Stack Embedding Related Data - Skyrockit | Lesson | Repo | Pages | Learn how to embed related data in MongoDB documents. |
| MEN Stack Relating Data Lab - Cookbook | Lab | Repo | Pages | Practice modeling and working with related data in MongoDB. |
| MEN Stack Referencing Related Data - OpenHouse | Lesson | Repo | Pages | Learn how to reference related data across MongoDB collections. |
| Unit Testing in JavaScript | Lesson | Repo | Pages | Introduction to writing unit tests in JavaScript applications. |
| Consuming an API - OMDB | Lesson | Repo | Pages | Learn how to retrieve and use data from external APIs. |
| Consuming an API Lab - Weather | Lab | Repo | Pages | Practice building applications that consume external APIs. |
Projects
| Module | GitHub Repo | GitHub Pages | About |
|---|---|---|---|
| Project 2 : MEN Stack CRUD App Project | Repo | Pages | Build a full CRUD application using the MongoDB, Express, and Node (MEN) stack with authentication and database integration. |
Unit 3
| Module | Type | GitHub Repo | GitHub Pages | About |
|---|---|---|---|---|
| Modern Javascript Syntax Lab | Lab | Repo | Pages | Practice modern JavaScript features such as arrow functions, destructuring, and modules. |
| Intro to SPAs | Lesson | Repo | Pages | Introduction to Single Page Applications and how they differ from traditional multi-page apps. |
| Intro to React | Lesson | Repo | Pages | Overview of React fundamentals and component-based UI development. |
| Building Your First React App | Lesson | Repo | Pages | Step-by-step walkthrough of creating a new React application. |
| React Components | Lesson | Repo | Pages | Learn how to build and structure reusable React components. |
| React Components Lab | Lab | Repo | Pages | Hands-on exercises creating and organizing React components. |
| React State Management | Lesson | Repo | Pages | Learn how state works in React and how to manage dynamic data in applications. |
| React State Management Lab | Lab | Repo | Pages | Practice implementing state management techniques in React. |
| Controlled Forms in React | Lesson | Repo | Pages | Learn how to build forms in React using controlled components. |
| Controlled Forms in React Lab | Lab | Repo | Pages | Hands-on exercises building forms and handling user input in React. |
| Lifting State in React | Lesson | Repo | Pages | Learn how to share state across multiple components. |
| Lifting State in React Lab | Lab | Repo | Pages | Practice applying the “lifting state up” pattern in React applications. |
| Lifting State with Arrays in React - Shopping Cart | Lesson | Repo | Pages | Advanced state management example using arrays in a shopping cart application. |
| Fetching Data in React | Lesson | Repo | Pages | Learn how to fetch data from APIs and manage asynchronous requests in React. |
| Fetching Data in React Lab | Lab | Repo | Pages | Practice retrieving and displaying API data in a React application. |
| Styling in React | Lesson | Repo | Pages | Explore different approaches for styling React components. |
| React Router DOM | Lesson | Repo | Pages | Implement client-side routing and navigation in React applications. |
| React Router DOM Lab | Lab | Repo | Pages | Hands-on exercises creating routes and navigation flows. |
| GitHub Collaboration | Lesson | Repo | Pages | Learn collaborative workflows using GitHub including pull requests and code reviews. |
| Express API - Pets Back-End | Lesson | Repo | Pages | Build a Node/Express backend API to support a React application. |
| Express API - Jukebox Back-End Lab | Lab | Repo | Pages | Practice building backend API endpoints using Express. |
| React - Pets - Front-End | Lesson | Repo | Pages | Build a React front-end that interacts with an Express API. |
| React - Jukebox Front-End Lab | Lab | Repo | Pages | Practice connecting a React front-end to backend API endpoints. |
| JWT Authentication in Express APIs | Lesson | Repo | Pages | Implement authentication using JSON Web Tokens in Express APIs. |
| JWT Authentication in React | Lesson | Repo | Pages | Implement authentication flows in React applications. |
| Express API - Hoot Back End | Lesson | Repo | Pages | Build a backend API supporting a full-stack application. |
| React - Hoot Front End | Lesson | Repo | Pages | Build the React front-end for the Hoot full-stack project. |
Projects
| Module | GitHub Repo | GitHub Pages | About |
|---|---|---|---|
| Project 3 : MERN Stack CRUD App Project (Individual) | Repo | Pages | Students build a full-stack CRUD application using MongoDB, Express, React, and Node. |
| Project 3 : MERN Stack CRUD App Project (Group) | Repo | Pages | Team-based version of the MERN stack CRUD application project. |
Unit 4
| Module | Type | GitHub Repo | GitHub Pages | About |
|---|---|---|---|---|
| Python PostgreSQL Django Installfest | Lesson | Repo | Pages | Setup and configuration of Python, PostgreSQL, and development tools required for the unit. |
| Python for JavaScript Developers- Intro to Python | Lesson | Repo | Pages | Introduction to Python syntax and core concepts for developers familiar with JavaScript. |
| Python for JavaScript Developers- Control Flow | Lesson | Repo | Pages | Learn Python control flow including conditionals and loops. |
| Python for JavaScript Developers- Control Flow Lab | Lab | Repo | Pages | Practice implementing control flow logic in Python programs. |
| Python for JavaScript Developers - Functions | Lesson | Repo | Pages | Writing reusable functions and understanding parameters and return values in Python. |
| Python for JavaScript Developers - Functions Lab | Lab | Repo | Pages | Hands-on exercises writing Python functions. |
| Python for JavaScript Developers - Data Structures | Lesson | Repo | Pages | Learn Python data structures such as lists, dictionaries, and tuples. |
| Python for JavaScript Developers - Data Structures Lab | Lab | Repo | Pages | Practice manipulating and using Python data structures. |
| Python for JavaScript Developers - Classes | Lesson | Repo | Pages | Introduction to object-oriented programming concepts in Python. |
| Python for JavaScript Developers - Classes Lab | Lab | Repo | Pages | Practice creating and using Python classes. |
| Intro to SQL | Lesson | Repo | Pages | Learn relational database concepts and basic SQL queries. |
| Intro to SQL Lab - Carmen Sandiego | Lab | Repo | Pages | Practice writing SQL queries using a themed exercise dataset. |
| SQL Joins | Lesson | Repo | Pages | Learn how to combine data from multiple tables using SQL joins. |
| Intro to Django | Lesson | Repo | Pages | Introduction to Django and its role as a full-stack Python web framework. |
| Intro to Django Lab - Polls | Lab | Repo | Pages | Guided exercises building a simple Django application. |
| Django CRUD App Cat_Collector | Lesson | Repo | Pages | Build a CRUD application using Django models, views, and templates. |
| Django CRUD App Lab | Lab | Repo | Pages | Hands-on practice extending and customizing a Django CRUD application. |
| Intro to Flask | Lesson | Repo | Pages | Introduction to Flask as a lightweight Python web framework. |
| Flask API - Pets Back-End | Lesson | Repo | Pages | Build a REST API backend using Flask. |
| JWT Authentication in Flask APIs | Lesson | Repo | Pages | Implement authentication and authorization using JSON Web Tokens in Flask APIs. |
| Flask API - Hoot Back-End | Lesson | Repo | Pages | Build a more complete Flask backend for a full-stack application. |
Projects
| Module | GitHub Repo | GitHub Pages | About |
|---|---|---|---|
| Project 4 : Django CRUD App (Individual) | Repo | Pages | Students build a full CRUD web application using Django. |
| Project 4 : Django CRUD App (Group) | Repo | Pages | Team-based version of the Django CRUD application project. |
| Project 4 : Flask/React CRUD App (Individual) | Repo | Pages | Build a full-stack CRUD application using a Flask backend and React frontend. |
| Project 4 : Flask/React CRUD App (Group) | Repo | Pages | Team-based version of the Flask + React full-stack CRUD application. |
Computer Science Modules
| Module | Type | GitHub Repo | GitHub Pages | About |
|---|---|---|---|---|
| 1. Introduction to Computer Science | Lesson/Lab | Repo | Pages | Overview of computer science fundamentals and how software systems work. |
| 2. Intro to Algorithms | Lesson/Lab | Repo | Pages | Introduction to algorithms and how they solve computational problems. |
| 3. Big O Notation | Lesson/Lab | Repo | Pages | Learn how to analyze algorithm efficiency using Big O notation. |
| 4. Recursion | Lesson/Lab | Repo | Pages | Understand recursion and how functions can call themselves to solve problems. |
| 5. Intro to Sorting Algorithms | Lesson/Lab | Repo | Pages | Introduction to sorting algorithms and why they are important. |
| 6. Basic Sorting Algorithms | Lesson/Lab | Repo | Pages | Learn common sorting methods such as bubble sort and selection sort. |
| 7. Distribution Sorting Algorithms | Lesson/Lab | Repo | Pages | Explore sorting algorithms based on value distribution. |
| 8. Divide-and-Conquer Sorting Algorithms | Lesson/Lab | Repo | Pages | Learn efficient algorithms such as merge sort and quicksort. |
| 9. Search Algorithms | Lesson/Lab | Repo | Pages | Introduction to searching techniques including linear and binary search. |
| 10. Intro to Data Structures | Lesson/Lab | Repo | Pages | Overview of common data structures used in programming. |
| 11. Linked Lists | Lesson/Lab | Repo | Pages | Learn how linked lists work and how they store and connect data. |
| 12. Stacks, and Queues | Lesson/Lab | Repo | Pages | Explore stack and queue data structures and their common use cases. |
| 13. Hash Tables | Lesson/Lab | Repo | Pages | Understand hashing and how hash tables store and retrieve data efficiently. |
| 14. Sets | Lesson/Lab | Repo | Pages | Learn how sets manage unique collections of data. |
| 15. Trees | Lesson/Lab | Repo | Pages | Introduction to tree data structures and hierarchical data representation. |
| 16. Graphs | Lesson/Lab | Repo | Pages | Learn graph structures and how they represent networks and relationships. |
| 17. Design Patterns | Lesson/Lab | Repo | Pages | Introduction to common software design patterns used in scalable systems. |
Extra Resources
Supplementary guides for setup and deployment. Point learners to these when they hit the related lesson or project.
Setup & Tools
| Resource | When to use it | About |
|---|---|---|
| VS Code Extensions | Installfest / Unit 1 | Recommended VS Code extensions for the course. |
| Working with Chrome DevTools | Unit 1 (DOM, CSS) | Using Chrome DevTools to inspect, debug, and test front-end code. |
| Getting Started with GitHub Campus | Before Project 1 | Claiming access to the GitHub Student Developer Pack. |
Project 1 — Browser-Based Game
| Resource | When to use it | About |
|---|---|---|
| Planning your Browser Game | Project 1 kickoff | Planning a browser game with user stories and pseudocode. |
| Build a Browser Game Walkthrough | Project 1, after planning | Step-by-step guide to starting the build once planning is done. |
| GitHub Pages Deployment for Static Sites | Project 1 deployment | Deploying a static HTML/CSS/JS site to GitHub Pages. |
Project 2 — MEN Stack CRUD App
| Resource | When to use it | About |
|---|---|---|
| Getting Started with Heroku | Before Project 2 deployment | Creating and setting up a Heroku account. |
| MEN Stack Deployment | Project 2 deployment | Deploying a MongoDB/Express/Node app to Heroku. |
Project 3 — MERN Stack CRUD App
| Resource | When to use it | About |
|---|---|---|
| Getting Started with Netlify | Before Project 3 deployment | Creating a Netlify account connected to GitHub. |
| React Front-end Deployment | Project 3 deployment (front end) | Deploying a React app to Netlify. |
| MEN Stack Deployment | Project 3 deployment (back end) | Deploying the Express API back end to Heroku. |
Project 4 — Django or Flask/React CRUD App
| Resource | When to use it | About |
|---|---|---|
| Django Deployment | Project 4 deployment (Django) | Deploying a Django app with PostgreSQL to Heroku. |
| Flask Deployment | Project 4 deployment (Flask back end) | Deploying a Flask API with PostgreSQL to Heroku. |
| React Front-end Deployment | Project 4 deployment (React front end) | Deploying the React front end of a Flask/React app to Netlify. |
Getting Help
Stuck on a lesson or lab? Check the References section inside that module’s repo first, then reach out in your cohort’s Slack channel.