Software Engineering Bootcamp
Pacing Guide
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. |