Curriculum

General overview

Cutting Edge

Fullstack's immersive curriculum will expose you to the latest in modern software development for the Internet. Our curriculum is based on current technology trends and marketplace demand from industry leaders. We cultivate a passion for discovering and learning, a necessary quality in today’s rapidly changing programming landscape. After graduating Fullstack you’ll be an expert in the technologies we teach, and adaptive enough to pick up new ones as trends change over time.

Full-stack JavaScript

Our weapon of choice to teach software engineering is fullstack JavaScript - the most popular and widely supported language in the world. The future of the web is dynamic and real-time JavaScript applications. As users demand ever faster and more seamless user experiences, web applications built with heavy front-end JavaScript are required to cater to those demands. This trend makes expert JavaScript knowledge a high demand skill-set.

Deep Understanding

We also strongly believe that you never master a tool until you've torn it apart and rebuilt it. We've built a curriculum that alternates using and building - by the end of the course you'll have built your own Terminal Shell, Database, Single Page Web Framework and CSS grid system. Don Knuth, a founder of the Computer Science field, said it most eloquently: "Your job here is not to be on top of things, it's to get to the bottom of things."


"Your job here is not to be on top of things, it's to get to the bottom of things."

Donald Knuth

Computer Science

Being a great software engineer means not only being fluent with the latest frameworks and languages, but also having an evolved intuition for writing efficient and beautiful code. Before mastering the higher-level technologies in software development for the web, it is vital to understand the underpinnings of lower-level theory. This is why your journey at Fullstack will start with a deep dive into the fundamentals of Computer Science.


Data Structures

Data Structures are fundamental to CS as they allow developers to work with complex data, while balancing processing power and memory requirements. At Fullstack you will learn the inner wizardry of commonly used data structures like arrays, hash tables, lists, trees and heaps. Beyond learning how to use them, you'll also write them yourself.

Algorithms

Understanding algorithms is an integral part of being a developer. At Fullstack, you'll not only learn to write the whole range of essential CS algorithms like sorting, searching, and encryption, but you'll also know which one to choose at the right time.

Big-O Space & Time Analysis

The spirit of efficiency in CS stems from its early days and continues today. At Fullstack, you will learn to evaluate and optimize an algorithm for its efficiency in terms of both space and time using asymptotic time analysis.


Read More about Fullstack Academy's Computer Science Comprehensive Curriculum

Computer Science Curriculum

Programming mastery

Being a great developer starts with being a great programmer. In Foundations and on-campus, we drill into core programming concepts to ensureyour fluency in reading and writing code. Once you've solidified these areas, you're ready to move beyond the language to focus on systems, frameworks and ultimately full-stack applications.

Object-oriented programming
OO programming is a popular approach to designing modular, reusable software systems. We will learn many flavors of OO programming as used in JavaScript, including how it is applied in today's software for the Internet.
ASYNCHRONOUS PROGRAMMING
Async programming is one of the most exciting features of programming in JS and Node.js, and also possibly one of the most misunderstood. You will learn to untangle callbacks and be a master of using the wildly popular async library.
RECURSION
Recursion is an advanced method of solving problems based on the divide and conquer strategy. It is widely tested in interviews and commonly used to solve complicated algorithms with lucid code. At Fullstack, we'll dive deep into recursion by writing code and using fun in-class demonstrations and exercises to truly understand its power.
REGULAR EXPRESSIONS
Regular expressions are a powerful and (mostly) standardized way of searching, replacing, and parsing text with complex patterns of characters. Regexes are indispensable to programming and we will explore their power in detail at Fullstack.

Front-end development


React & JavaScript MVC

JavaScript is redefining what it means to be a modern web application. We'll start with using jQuery for simple page changes and move on to study design patterns of "Single Page Web Applications" using React and Redux. You can read more about our recent curriculum change to React here.

HTML5

HTML is the markup language that started it all and is still the backbone of web information. HTML5 adds new contextual tags, semantics and new capabilities to web browsers. While HTML is one of the easier languages to master, it's a critical part of the stack.

CSS3

If HTML is the architect, CSS is the interior designer. Know how CSS decorates HTML and go beyond to create simple but effective designs for your projects. Use tools like SCSS along with Bootstrap to make your sites beautiful and responsive.

Back-end development


Node.js & Express

JavaScript is an incredibly flexible and popular language, quickly becoming the "lingua franca" of the web. Node.js, a platform built on Chrome's JavaScript runtime, allows Javascript to run server-side. This makes JavaScript the only programming language that runs in the front-end and back-end. Node.js and JavaScript based back-end development are becoming the leader in next generation backend web engineering. You will be writing and thinking JavaScript from Day 1 and be an expert by graduation.

Services & APIs

APIs allow us to connect to vast amounts of data and functionality. For example, we will learn about systems of authentication via OAuth and building payment systems using APIs by providers like Stripe and Balanced. Mastering APIs gives you the ability to harness the vast potential of external API services available on the web. This allows students to build incredibly creative and impressive projects while at Fullstack.

Data

SQL

SQL is one of the most popular database languages in use today. Although NoSQL is on the rise, having a strong understanding of SQL is still a vital skill for any software developer. We'll learn the ins and outs of this relational database language so you can comfortably store and manage a web application's data with it.

MongoDB & NoSQL

Beyond traditional relational databases, there are a wide variety of "NoSQL" data-stores that service different needs. We'll learn how to think about where and why to use these new technologies. You'll become adept at MongoDB, both directly and through the use of ORMs.

ORM Tools

Understanding various database languages and knowing how to use them is important... But integrating with a database from a web application can be tedious, especially when building the more complex projects covered at Fullstack. We'll learn how to use JavaScript ORM tools to improve your programming productivity.

Git version control
If you've ever worked on a project where someone named a file "FINAL - Proposal - DY.doc", you know why Version Control is necessary. Go beyond just version control, learn how to use Git to effectively drive your workflow. You'll get hands-on experience using Git to collaborate with your fellow classmates during the project phase of the course.
Text editors
Vim? Emacs? Sublime Text? We won't start a flame war here, but you'll be a text wrangling expert before the Immersive is over. Whatever editor you choose, we can show you the hidden corners where the experts hide their productivity secrets.
Test-driven development
Testing code with code is a fundamental aspect of scalability and reliability. You'll learn where and why to test-drive your development. Then you'll learn popular testing frameworks and apply them to write tests for your own projects.
Shell & systems
If a monitor is a computer's face, then a Shell prompt is a window into its soul. Learn how to be comfortable in the Shell (Terminal, Console) and how to control machines using Shell Scripting.

Tools & Best Practices

Learn the tools of the developer trade, from version control systems to text editors and the command line. Fullstack also covers test driven development and design patterns, giving students the opportunity to write optimized, scalable code.

The CTO Program

Being a great software engineers means not only being fluent with the latest frameworks and languages, but also having an evolved intuition for writing efficient and beautiful code. Before mastering the higher level technologies in software development for the web, it is vital to understand the underpinnings of lower-level theory. This is why your journey at Fullstack will start with a deep dive into the fundamentals of Computer Science.

Learn more about the CTO Program.

Get the Course Syllabus and Starter Resources

Sign up below to get our course syllabus, our free Road to Code guide of learning resources and to stay informed about Fullstack.