**Unit 1 - Week 1 - Week 5**

Basics of Programming Language**

Learn what is a programming language and write programs manipulating variables, loops, conditions and data structures.*

Implementation, Brute-force, String, Array, Loops

Learn the basics of programming. Delve into an in-depth intro to data structures and algorithms. Get comfortable with basic data structures like lists, strings, hash maps, sets, etc and solve lots of coding challenges around it*

Key-Value Pairs, Time & Space Complexity, Sorting Algorithms

Understand time and space complexities and learn to analyze the complexities of various algorithms. Explore different sorting algorithms along with their time complexities. Learn how basic searching, binary search works*

**Unit 2 - Week 6 - Week 10**Stacks & Queues, Recursion

*Understand the data structures involved in working of web-browsers, managing notifications, etc. Solve lots of problems around use cases of the Stacks & Queues data structures with regular coding contests and compete with your peers. Further, learn the powerful tool in writing algorithms, Recursion, and solve problems based on recursion by defining the problem in terms of itself and identifying the base cases***Backtracking, Linked lists, Greedy***Apply learning of recursion to solve algorithmic problems that require searching in every possible combination for solving a computational problem. Understand how to apply backtracking to write a program that can solve the famous Sudoku puzzle. Learn linked lists and perform traversals, searching, and sorting on linked lists. Learn the greedy Algorithmic techniques and understand when and how it is used.*

**Unit 3 - Week 11 - Week 15****Greedy, Binary Search***Understand how searching works in computer science. Learn Binary Search to perform searching efficiently. Solve lots of problems on use cases of the algorithm and learn how to use the underlying idea of binary search to solve a particular class of algorithmic problems***Dynamic Programming, Graphs***Go deeper into understanding dynamic programming and how recursive algorithms can be optimised using various techniques. Introduction to the tree data structure with extra emphasis on binary trees and binary search trees Understand the heap data structure and its use case. Ever wondered how google maps figure out the route from source to destination? The answer lies with the graph data structure. Understand traversals like BFS, DFS, and shortest path algorithms*

**Unit 4 - Week 16 - Week 20****HTML, CSS & DOM***Get started with Web development by getting familiar with HTML, CSS to build basic web applications which will be responsive.***Advanced JS & ES6***We will work with more modern JavaScript or ES6+ features. At this time we will explore more parts of the web to build more complex projects and understand different patterns We will also work with Charting libraries that can be used for data visualization.*

**Unit 5 - Week 21 - Week 25****Node JS & DB Introduction***Intro into Node.js and understand principles. Work with async operations, asnyc IO, handling basic http requests , templating, routing, using express and build APIs. Use evironment variables and setup PM2 or nodemon for configuring your server.***Express, DB, CRUD & REST API***Get comfortable with the idea of setting up a microservice that will act as an interface to work with your databases and other services. Create authentication services with JWT and persist data.***MVC, Tokens, Caching, Files***Have you ever been curious about how backend systems work? How do they manage to handle so much load?*

**Unit 6 - Week 26 - Week 30****React Basics***We work with the basics of Webpack and understand the evolution of the web. We will learn how to set up with Webpack as well as React. We will also look at npm packages. Explore the underlying principles of how React works, and start building Single Page Applications with it. We will understand state management, component design, declarative style of writing code.***React Advanced***We will work with React and see how its a UI library and help us build large projects by using Reusable Components and work on Routing and other advanced APIs of react to do global state management.***Frontend Project***Work on collaborative projects to build a large system that explores all concepts that are important for understanding real world applications.***Servers, AWS, Containers***Learn all about high-level and low-level design, load balancing, caching, and database design. This includes guest lectures from top software engineers from some of the best companies around.***Full-Stack Project***Work on collaborative projects to build a large system that explores all concepts that are important for understanding real world applications.*