Software Engineering Bootcamp

Pacing Guide

Weeks 1 - 12

Content

Unit 1

Module name Type Duration About
Installfest Lesson Setup and installation of required tools and development environment.
Intro to the CLI Lesson Introduction to using the command line for navigating and managing files.
Intro to the CLI Lab Lab Hands-on practice using CLI commands.
Intro to Git and GitHub Lesson Version control fundamentals using Git and collaboration with GitHub.
Intro to JavaScript Lesson Introduction to JavaScript syntax and programming fundamentals.
Javascript Control Flow Lesson Conditional logic and control structures in JavaScript.
Intro to JavaScript Functions Lesson Writing reusable JavaScript functions and understanding parameters and return values.
Intro to JavaScript Functions Lab Lab Practice writing and using JavaScript functions.
JavaScript Scope Lesson Understanding scope and variable visibility in JavaScript.
MDN Lesson Introduction to using MDN documentation effectively.
Intro to JavaScript Arrays Lesson Working with arrays and list-based data in JavaScript.
Intro to JavaScript Arrays Lab Lab Hands-on exercises using JavaScript arrays.
Intro to HTML Lesson Core HTML structure and elements for building web pages.
Intro to CSS Lesson Styling web pages using CSS fundamentals.
Intro to JavaScript Objects Lesson Understanding objects and key-value data structures in JavaScript.
Intro to JavaScript Objects Lab Lab Exercises working with objects and object properties.
Intro to the DOM Lesson Introduction to the Document Object Model and interacting with web pages through JavaScript.
DOM Events Lesson Understanding browser events and event-driven programming.
DOM Events Lab Lab Practice building interactive browser behavior using events.
JavaScript Browser Game - Rock, Paper, Scissors Lesson Guided lesson building a simple browser-based game.
JavaScript Browser Game - Tamagotchi Lab Lab Optional advanced exercise creating a browser-based Tamagotchi game.
JavaScript Browser Game - Tic-Tac-Toe Lab Lab Build a complete browser-based Tic-Tac-Toe game.
Intermediate CSS Lesson Expands CSS knowledge with layout and styling techniques.
Flexbox Lesson Layout techniques using CSS Flexbox.
Flexbox Lab Lab Practice building layouts using Flexbox.
CSS Grid Lesson Advanced layout system using CSS Grid.
Responsive Design Lesson Designing websites that adapt to different screen sizes.
Javascript Array Iterator Methods Lesson Using built-in iterator methods such as map, filter, and reduce.
Javascript Array Iterator Methods Lab Lab Hands-on exercises applying iterator methods.
Intro to Accessibility Lesson Accessibility basics for building inclusive web experiences.
Intro to Markdown Lab Lab Learn Markdown syntax used for documentation and READMEs.
Javascripts Built-in Objects and Classes Lesson Understanding built-in JavaScript objects and classes.
Intro to JS Classes Lesson Creating and using JavaScript classes.
Playing Audio in the Browser Lesson Adding and controlling audio within browser applications.
Card Game Starter Lesson Starter resources for building card-based browser games.

Projects

Module name About
Project 1 : Browser-Based Game Students design and build an interactive browser-based game using HTML, CSS, and JavaScript.

Unit 2

Module name Type Duration About
Intro to Full-Stack Development Lecture Overview of full-stack development and how front-end and back-end systems interact.
HTTP Request Response Cycle Lecture Explains how browsers and servers communicate through HTTP requests and responses.
Intro to Node Lecture Introduction to Node.js and running JavaScript outside the browser.
Intro to Express Lecture Learn how to build server applications using Express.
Intro to Express Lab Lab Hands-on practice building Express routes and simple server applications.
Postman Setup Lab Lab Configure Postman and practice testing API endpoints.
RESTful Routing Lecture Introduces REST principles and common routing patterns used in APIs.
Exposing an API Lecture Learn how to expose data through a REST API using Express.
EJS Lecture Introduction to Embedded JavaScript templates for rendering dynamic HTML.
EJS Lab Lab Practice building dynamic views using EJS templates.
MongoDB Atlas Setup Lab Lab Setup MongoDB Atlas and connect a cloud database to your application.
Intro to Asynchronous Programming Lecture Learn asynchronous programming concepts including callbacks, promises, and async/await.
Intro to Databases Lecture Introduction to database concepts and persistence in applications.
Environment Variables Lecture Learn how environment variables are used to configure applications.
Environment Variables - Node Lecture Implement environment variables within Node applications.
Intro to Mongoose Lecture Introduction to using Mongoose for modeling MongoDB data in Node applications.
Intro to Mongoose Lab Lab Hands-on exercises creating and querying Mongoose models.
HTML Forms Lecture Learn how to build forms and collect user input in web applications.
MEN Stack CRUD App - Fruits Lecture Guided walkthrough building a CRUD application with the MEN stack.
MVC in Express Lecture Introduces the Model-View-Controller architecture in Express applications.
MEN Stack CRUD App Lab Lab Hands-on practice implementing CRUD features in a MEN stack app.
MEN Stack - Session Auth Lecture Implement session-based authentication in an Express application.
MEN Stack Error Handling Lecture Learn strategies for handling errors in Node and Express applications.
Mongoose Relationships Lecture Model relationships between MongoDB documents using Mongoose.
Regular Expressions Lecture Introduction to pattern matching with regular expressions.
MEN Stack Embedding Related Data - Skyrockit Lecture Learn how to embed related data in MongoDB documents.
MEN Stack Relating Data Lab - Cookbook Lab Practice modeling and working with related data in MongoDB.
MEN Stack Referencing Related Data - OpenHouse Lecture Learn how to reference related data across MongoDB collections.
Unit Testing in JavaScript Lecture Introduction to writing unit tests in JavaScript applications.
Consuming an API - OMDB Lecture Learn how to retrieve and use data from external APIs.
Consuming an API Lab - Weather Lab Practice building applications that consume external APIs.

Projects

Module name About
Project 2 : MEN Stack CRUD App Project Build a full CRUD application using the MongoDB, Express, and Node (MEN) stack with authentication and database integration.

Unit 3

Module name Type Duration About
Modern Javascript Syntax Lab Lab Practice modern JavaScript features such as arrow functions, destructuring, and modules.
Intro to SPAs Lecture Introduction to Single Page Applications and how they differ from traditional multi-page apps.
Intro to React Lecture Overview of React fundamentals and component-based UI development.
Building Your First React App Lecture Step-by-step walkthrough of creating a new React application.
React Components Lecture Learn how to build and structure reusable React components.
React Components Lab Lab Hands-on exercises creating and organizing React components.
React State Management Lecture Learn how state works in React and how to manage dynamic data in applications.
React State Management Lab Lab Practice implementing state management techniques in React.
Controlled Forms in React Lecture Learn how to build forms in React using controlled components.
Controlled Forms in React Lab Lab Hands-on exercises building forms and handling user input in React.
Lifting State in React Lecture Learn how to share state across multiple components.
Lifting State in React Lab Lab Practice applying the “lifting state up” pattern in React applications.
Lifting State with Arrays in React - Shopping Cart Lecture Advanced state management example using arrays in a shopping cart application.
Fetching Data in React Lecture Learn how to fetch data from APIs and manage asynchronous requests in React.
Fetching Data in React Lab Lab Practice retrieving and displaying API data in a React application.
Styling in React Lecture Explore different approaches for styling React components.
React Router DOM Lecture Implement client-side routing and navigation in React applications.
React Router DOM Lab Lab Hands-on exercises creating routes and navigation flows.
GitHub Collaboration Lecture Learn collaborative workflows using GitHub including pull requests and code reviews.
Express API - Pets Back-End Lecture Build a Node/Express backend API to support a React application.
Express API - Jukebox Back-End Lab Lab Practice building backend API endpoints using Express.
React - Pets - Front-End Lecture Build a React front-end that interacts with an Express API.
React - Jukebox Front-End Lab Lab Practice connecting a React front-end to backend API endpoints.
JWT Authentication in Express APIs Lecture Implement authentication using JSON Web Tokens in Express APIs.
JWT Authentication in React Lecture Implement authentication flows in React applications.
Express API - Hoot Back End Lecture Build a backend API supporting a full-stack application.
React - Hoot Front End Lecture Build the React front-end for the Hoot full-stack project.

Projects

Module name About
Project 3 : MERN Stack CRUD App Project (Individual) Students build a full-stack CRUD application using MongoDB, Express, React, and Node.
Project 3 : MERN Stack CRUD App Project (Group) Team-based version of the MERN stack CRUD application project.

Unit 4

Module name Type Duration About
Python PostgreSQL Django Installfest Lecture Setup and configuration of Python, PostgreSQL, and development tools required for the unit.
Python for JavaScript Developers- Intro to Python Lecture Introduction to Python syntax and core concepts for developers familiar with JavaScript.
Python for JavaScript Developers- Control Flow Lecture Learn Python control flow including conditionals and loops.
Python for JavaScript Developers- Control Flow Lab Lab Practice implementing control flow logic in Python programs.
Python for JavaScript Developers - Functions Lecture Writing reusable functions and understanding parameters and return values in Python.
Python for JavaScript Developers - Functions Lab Lab Hands-on exercises writing Python functions.
Python for JavaScript Developers - Data Structures Lecture Learn Python data structures such as lists, dictionaries, and tuples.
Python for JavaScript Developers - Data Structures Lab Lab Practice manipulating and using Python data structures.
Python for JavaScript Developers - Classes Lecture Introduction to object-oriented programming concepts in Python.
Python for JavaScript Developers - Classes Lab Lab Practice creating and using Python classes.
Intro to SQL Lecture Learn relational database concepts and basic SQL queries.
Intro to SQL Lab - Carmen Sandiego Lab Practice writing SQL queries using a themed exercise dataset.
SQL Joins Lecture Learn how to combine data from multiple tables using SQL joins.
Intro to Django Lecture Introduction to Django and its role as a full-stack Python web framework.
Intro to Django Lab - Polls Lab Guided exercises building a simple Django application.
Django CRUD App Cat_Collector Lecture Build a CRUD application using Django models, views, and templates.
Django CRUD App Lab Lab Hands-on practice extending and customizing a Django CRUD application.
Intro to Flask Lecture Introduction to Flask as a lightweight Python web framework.
Flask API - Pets Back-End Lecture Build a REST API backend using Flask.
JWT Authentication in Flask APIs Lecture Implement authentication and authorization using JSON Web Tokens in Flask APIs.
Flask API - Hoot Back-End Lecture Build a more complete Flask backend for a full-stack application.

Projects

Module name About
Project 4 : Django CRUD App (Individual) Students build a full CRUD web application using Django.
Project 4 : Django CRUD App (Group) Team-based version of the Django CRUD application project.
Project 4 : Flask/React CRUD App (Individual) Build a full-stack CRUD application using a Flask backend and React frontend.
Project 4 : Flask/React CRUD App (Group) Team-based version of the Flask + React full-stack CRUD application.

Computer Science Modules

Module name Type Duration About
1. Introduction to Computer Science Lesson/Lab Overview of computer science fundamentals and how software systems work.
2. Intro to Algorithms Lesson/Lab Introduction to algorithms and how they solve computational problems.
3. Big O Notation Lesson/Lab Learn how to analyze algorithm efficiency using Big O notation.
4. Recursion Lesson/Lab Understand recursion and how functions can call themselves to solve problems.
5. Intro to Sorting Algorithms Lesson/Lab Introduction to sorting algorithms and why they are important.
6. Basic Sorting Algorithms Lesson/Lab Learn common sorting methods such as bubble sort and selection sort.
7. Distribution Sorting Algorithms Lesson/Lab Explore sorting algorithms based on value distribution.
8. Divide-and-Conquer Sorting Algorithms Lesson/Lab Learn efficient algorithms such as merge sort and quicksort.
9. Search Algorithms Lesson/Lab Introduction to searching techniques including linear and binary search.
10. Intro to Data Structures Lesson/Lab Overview of common data structures used in programming.
11. Linked Lists Lesson/Lab Learn how linked lists work and how they store and connect data.
12. Stacks, and Queues Lesson/Lab Explore stack and queue data structures and their common use cases.
13. Hash Tables Lesson/Lab Understand hashing and how hash tables store and retrieve data efficiently.
14. Sets Lesson/Lab Learn how sets manage unique collections of data.
15. Trees Lesson/Lab Introduction to tree data structures and hierarchical data representation.
16. Graphs Lesson/Lab Learn graph structures and how they represent networks and relationships.
17. Design Patterns Lesson/Lab Introduction to common software design patterns used in scalable systems.