Module 1
Programming Fundamentals
In the first several weeks, you will learn the basics of programming with JavaScript. You will also learn how to work with programmer tools such as the terminals, command-lines, GitHub, text editors, and referencing documentation. The following weeks will focus on functions, data-structures, program organization, and solidify what you learn using bi-weekly projects.
Module 2
Front-End Software Development
The next unit will focus on building websites and applications using a combination of HTML/CSS and JavaScript to add interactivity. You will begin creating basic websites, and then apply DOM scripting with vanilla JavaScript to understand how events from the user trigger behavior, which in turn modifies the webpage. You will also learn how to retrieve data from third-party sources using the browser fetch API, and understand how AJAX allows for powerful integration with other services. The unit will conclude with a section covering how you use a front-end library such as React.js to create modular component based applications.
Module 3
Server-Side "Back-End" Programming
This unit of the course will teach you the software development concepts and practices used in the industry; you will become comfortable building back-end servers and APIs which send data to browsers. You will use Express.js for the server layer and MongoDB for the database. This will assist you in understanding how data is generated and sent to a client for presentation to the user.
Module 4
Full-Stack Software Development
This unit will teach you how to integrate the two sides of a web application, the frontend and the back-end, into a consistent experience for the user. You will be challenged to think on multiple levels at the same time, and apply what you have learned to the construction of an application that sends data from one user to another, in real-time.
Module 5
Capstone Project
This is where you will build, think, and work on a complete project. Your project will be developed with a team of your peers and will provide an in-depth understanding of project management, how to work in an Agile project life-cycle, and refine the skills that you learned in class by building a functioning web application that you can deploy to real users and visit at a domain name.