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:

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

Weeks 1 - 12



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.