Curriculum Summary and Outline

Our curriculum builds on donated and publicly available resources with a track record of resounding success. We curate these resources and deliver them in a supportive, trauma-informed environment. We use examples, teaching methods, and practice projects that our students identify with and that teach critical skills they need to maintain the economic power they earn.

Every student learns at a different pace, and practice is critical to success in software development. We gradually transition students from building practice projects to building paying client projects on the timeline that works for them. (The timelines below are approximations)

Phase I

Photo of an iPhone and Smartphone on a desk

Digital Literacy

This module introduces students to the core fundamentals of using a computer and working in the technology industry. We assume no prior knowledge of a computer. In addition to an intro to AnnieCannons, this modules covers:

  1. Personal Finance and Typing
  2. Computer Hardware
  3. Operating Systems
  4. Google Apps/Word Processing
  5. Communication Tools
  6. Cybersecurity
  7. What is the Internet?
  8. Understanding the Browser
To slides and exercises
User Design Wheel

QA Testing/Software Lifecycle

This module is an overview of how technology and software is built and tested. QA (Quality Assurance) testing is way of preventing mistakes or defects in software and avoiding problems when delivering solutions or services to customers. It covers:

  1. Software Development Lifecycle
  2. Sprints and Iteration
  3. Software Testing
  4. Understanding the MVP
  5. Use and Test Cases
  6. User Testing
  7. Bug Reports
  8. Defect Lifecycle
To slides and exercises
Wireframing Photo

Design Process

The module introduces the full design process, the various roles at technology companies, and the way to beginning prototyping software. For more, see the below Visual Design module. This covers:

  1. Design processes
  2. UX Design
  3. User personas and user flows
  4. Site mapping
  5. Wireframing
  6. Color Scheme and Images
  7. Intro to Typography and Google Materials
  8. Requirements Analysis
To slides and exercises

Phase II

HTML code in a text editor

Introduction to Programming with HTML and CSS!

This module introduces programming languages and the differences between front-end and back-end development. It also introduces HTML and CSS, the markup for your websites. It covers:

  1. Clients vs. Servers
  2. "Full-stack" development
  3. How Websites and Web Servers Operate
  4. HTML Introduction
  5. Structure of the DOM
  6. Introduction to CSS
  7. Responsive Design and Media Queries
  8. Intro to Typography and Google Materials
  9. Google Developer Tools
To slides and exercises
JavaScript and jQuery code in a text editor

Introduction to JavaScript

Welcome to JavaScript! The only functional programming language in the browser. THis module will introduce the core data types in JS, the ways to add JS to your static websites, and how to create modular programs in JS. It covers:

  1. What JS does and where it is used
  2. Data types and data manipulation
  3. JS Expressions
  4. Understanding variables
  5. Adding JS to your code
  6. Using the Console
  7. Conditional Statements (if/else)
  8. Functions
  9. Variable Scope
  10. Clean coding
To slides and exercises
Motorcyclist looping around a track

Advanced JavaScript I

Loops, Objects, and Arrays - oh my! Learn more advanced JS concepts and expand your understanding of the power of JavaScript. Definitely take advantage of the many exercises inside the slides and listed in the Github repository. You will cover:

  1. Why Loops?
  2. While/Do While Loops
  3. For Loops
  4. Understanding variables
  5. Objects: Dot Notation
  6. For In Loops
  7. Iterating over Objects
  8. Looping with Arrays
  9. Accessing Data in Collections
  10. Debugging
To slides and exercises
jQuery on a black screen


This module introduces our first JavaScript library! Learn new techniques for manipulating the DOM and adding cool event listeners for your users to enjoy on your website. We will introduce other JS frameworks later in the class. The module includes:

  1. What jQuery does
  2. jQuery's strengths and weaknesses
  3. Unpacking the Document Object Model
  4. How to add jQuery and use a CDN
  5. jQuery Selectors
  6. jQuery Methods and Event Listeners
  7. Storing data values with jQuery
  8. jQuery Plugins
  9. Understanding page loads
  10. jQuery UI and jQuery Mobile
To slides and exercises
Errors in the command line

Command Line and Git

This module will introduce how to use the command line on your computer. This will also cover using Git, a version control software, and Github, a website that will allow us to create remote code repositories. It includes:

  1. Accessing the Command Line
  2. Creating and moving files in the terminal
  3. Understanding the file system
  4. Permissions and Piping
  5. Version Control and distributed systems
  6. Using Git and GUI Tools(GitKraken)
  7. Creating local repositories
  8. Linking to remore repos (Github)
  9. Pushing, pulling, and committing!
  10. Creating your algorithms folder
To slides and exercises
Algorithm chart


This link will take you to our list of algorithm exercises. We will be working on an algorithm each day in class. They will get progessively harder, but they are a great way to practice your new JS/HTML skills.

  • Fork this to you own Github account
  • Clone or download this repo on to your local system.
  • Open the folder that has been downloaded in your text editor.
  • We will let you know which one to work on.
  • Don't forget your psuedocode!
  • You can commit and push back to your Github repo after completing each!
  • We will give you suggestions and perform "code review"
To slides and exercises
Keyboard and text editor

Advanced JavaScript II

This module will introduce you to Object Oriented JavaScript. You will learn more about how JS works under the hood and how your can create your own object constructors.

  1. Understanding JS "out of the box"
  2. Global Objects
  3. Creating Object Constructors
  4. Prototype Inheritance
  5. Object instantiation and the 'new' keyword
  6. Review scope
  7. 'this' keyword
  8. Closures
  9. Advanced Developer Tools
  10. Extending Objects
To slides and exercises
AJAX logo

Introduction to AJAX and JSON

This module introduces how to make calls to server-side JS. You will be able to send as well as receive information in different of formats all using JavaScript. It includes:

  1. Introducing Callbacks
  2. Understanding Async
  3. How has JS evolved?
  4. Working with Data
  5. JSON (JavaScript Object Notation)
  6. XMLHttpRequests
  7. Using jQuery to make AJAX calls
  8. Nexted Data Structures
  9. Using Online APIs
  10. Other data types
To slides and exercises

Introduction to Hosting

This module reviews key concepts on how clients and servers communicate, how the Internet works, and how to get the code files you have created onti the Internet. It includes:

  1. Overview of Internet Protocols
  2. Components of server-side architechture
  3. Review the network structure of the Internet
  4. Developing code locally
  5. Different types of hosting providers
  6. How to transfer files to a remote server
  7. Hosting companies
  8. Using Dropbox to host
  9. Security
To slides and exercises
Web of connections between APIs

Web APIs

APIs (Application Programming Interface) are the set of routines, protocols, and tools for building software applicationsthe that act as the connective tissue of the Internet. They allow communication between different programs to take place! This module covers:

  1. What is an API?
  2. Why do companies use them?
  3. How can my code interact with other libraries or programs?
  4. What do APIs add to my program?
  5. How are APIs created?
  6. Using the Google Maps API
To slides and exercises
HTML5 logo

Advanced HTML Forms

This module does a deeper dive into all of the functionality of HTML5 forms and the various ways you can get users to input information. It also covers how to store user information from a form.

  1. HTML5 Form syntax
  2. Different fieldsets
  3. HTML5 input types
  4. Input tag attributes
  5. Dropdowns
  6. Organizing your forms
  7. Submitting data from your form
  8. Using jQuery to access user information.
  9. Platforms for storing form data
To slides and exercises
Logos of various JavaScript framworks

JavaScript Frameworks/MVC

Most programmers don't write their programs in plain JavaScript. They use a framework to help structure their code, manage data, and separate concerns. This module will cover the MVC structure in the front-end, at a high level. It covers:

  1. Why JS frameworks exist
  2. How to think about the contents of your front-end work
  3. What is MVC?
  4. How to separate concerns
  5. Different types of frameworks
  6. How to choose a framework
  7. Introducing Build Tools
  8. **This course does not teach a specific framework.
To slides and exercises
Chrome developer tools in the browser

Developer Tools and Debugging

This course covers debugging tools at their finest (Thanks Girl Develop It)! Walk through the Chrome Developer Tools and become an expert in DOM manipulation, the emulator, JavaScript debugging, and network profiling. This module covers:

  1. What is debugging?
  2. Chrome Developer Tools: setting and customization
  3. DOM Manipulation
  4. CSS Prototyping, Breakpoints, and Animation
  5. JS Debugging
  6. The Network and Security tabs
To slides and exercises
Node.JS logo

Introduction to Server-Side Languages and Node.js

This course introduces server-side languages as well as JavaScript on the server! We will do deep dives into Node.js as well as npm, the Node Package Manager. This module covers:

  1. What do backend languages do?
  2. Important Terms
  3. Installing Node.js
  4. REPL and using the Command Line
  5. Parsing Text
  6. HTTP Servers
  7. Express
  8. Modules
  9. NPM
  10. Middleware
To slides and exercises

Additional Modules

Card image cap

Product Management

Interested in managing projects and engineering teams? This module introduces the core concepts of product management and the tools that are commonly used in the field. This module will walk you through the concepts as well as provide real life work examples.

  1. Product Management Principles
  2. Agile and Scrum Methodologies
  3. Helpful Tips
  4. Product Management Tools
  5. Real life examples
Card image cap

Visual Design

Where do you start when designing a product for a client or for a specific project? What are the main principles in digital visual design? What are the tools you should use and how do you create assets? This course is an practical introduction to these conceptions, with materials and outlines provided by Pivotal Labs.

  1. Visual Design Principles: Contrast, Repetition, Alignment, Proximity, Color, Scale, Typography
  2. Sketching
  3. Fidelity
  4. Finding Inspiration
  5. Visual Design Patterns (material, flat, skeuomorphic, etc)
  6. Intro to tools - Sketch, Gimp, Pen, etc
  7. Iconography
  8. Asset Creation (web, mobile, print)
React.js Logo


Learn a new JavaScript framework that is becoming more popular by the day. This module provides an introduction to React and React Native as well as popular build tools you will need to launch your project.

  1. Introduction to React principles
  2. Review of frontend build tools (Babel, Weback, ESlint, and npm/yarn)
  3. Introduction to components
  4. What the heck is state?
  5. Mounting components
  6. Routing with React Router
  7. Using React Native
Database image

Introduction to Databases and Data Science

How is information stored in the digital age? What is persistant storage and how do you secure it? What are the fundamentals of data science and data modeling? When do you collect data and how can you use it? These are the questions covered in the course to help you launch full-stack applications.

  1. What is data modeling?
  2. Different kinds of data and how to collect it
  3. Relationships in Data Science
  4. An introduction to different types of databases
  5. SQL - Structured Query Language
  6. Using a Database Management System
Python logo


This module introduces the Python, the backend language used widely in the industry and specialized for data science and analysis.

  1. What is Python used for?
  2. How is Python different from other backend (and frontend) languages?
  3. Data Types in Python
  4. Functions, Loops, and Conditional Statements
  5. Data Manipulation
  6. Frontend UIs in Python

Additional Resources

Thank you to all of our wonderful and supportive Partners!!
Girl Develop It logo
PluralSight logo
Coding Dojo logo
Hack Reactor logo
iSoftStone logo
Last Mile logo