- Commonly used Shell commands (File Management)
ls
mkdir
touch
cp
mv
rm
- Git fundamentals
- Initializing Git repository
- Adding and removing files
- Committing changes
- Introduction to Github
- Github work-flow
- Cloning a repository
- Making changes and committing
- Pushing changes back to Github
- Assignment
- Create attainu-pheonix repo, clone, make changes, commit and issue a pull request
- HTML Tags
- HTML Attributes
- Assignment
- Programming Language Museum page using HTML
- Block Elements
- Inline Elements
- Weekly Test
- HTML tags test
- CSS properties & values
- CSS selectors
- Assignment
- About Me page using HTML and CSS
- Display and position of elements
- CSS box model
- Assignments
- Web email page using CSS Floats
- CSS frameworks
- Twitter Bootstrap
- Including Bootstrap in a web page
- Bootstrap grid layout
- Bootstrap components
- Twitter Bootstrap
- Assignment
- Company website using Bootstrap
- Challenge
- Login page using Bootstrap
- Introduction
- JS datatypes
- JS operators
- JS statements (if, switch, for, while)
- Arrays
- Objects
- Live Coding - Arrays code samples
- Live Coding - Objects code samples
- Assignment
- Multiplication table of 5 upto 10 using arrays
- Functions
- Assignment
- Function to search an element in an array
- DOM manipulation - Selectors
- Assignment
- Simple event handler
- DOM manipulation - Element create, append and destroy.
- CSS scripting
- Live Coding - Simple spell checker
- Assignments
- Simple Calculator
- Login page - Client side validation
- Stack Emulator
- Introduction to jQuery
- jQuery selectors
- DOM manipulation using jQuery
- jQuery event handling
- AJAX using jQuery
- Animation using jQuery
- Assignment
- Quiz app using jQuery
- HTTP requests
- AJAX
- Live Coding 1 - Currency exchange app using public API
- Live Coding 2 - Random dog image
- Assignment
- Quiz Application
- Live Coding - AJAX & DOM manipulation - Search engine using Duck Duck Go API
- HTML5 APIs
- ES5 Class
- Introduction to design
- The design process.
- UI & UX design.
- Design research
- Fundamentals of design
- Typography.
- Color
- Layout
- Building better UIs in web applications - Part 1
- Navigation
- Signup and login
- The empty state of a web application
- Dashboard views
- Buttons and actions
- Designing forms
- Filtering contents
- Selecting Types
- Selecting Colors
- Dialogs
- Popovers
- Tabs
- Tooltips
- Pagination
- Backgrounds and Textures
- Spacing and Layouts
- Using charts and graphs
- Using Icons
- Testing your designs
- Client server model
- Introduction to Node.js
- NPM and node modules
- Common modules and
package.json
- Live Coding - NodeJS file reader
- Introduction to Express (express module in node)
- Comparison to Hello World example in Node.js
- Routing
- Live Coding - Square and Cube of a number using routes
- Static files
- Request & response objects
- Assignment
- Calculator using Express routes and params
- Express middlewares,
express.static
- Writing custom middlewares
- JSON and status codes in reponses
- Postman,
req.params
- Assignment
- ExpressJS CRUD
- Introduction to "Template Engines"
- Introduction to Handlebars templating
- Live Coding 1 - Tennis player management CRUD
- Commonly used Handlebars helpers
- if
- each
- unless
- Live Coding 2 - Tennis player management CRUD
- Live Coding - Library - Book search
- Introduction to REST APIs
- Building REST APIs using Express
body-parser
module andrequest.query
object- Live Coding 1 - Express body parser demo
- Live Coding 2 - Simple Express login with in memory DB
- Assignment
- REST API calculator
- Github users API
- Handling file uploads in ExpressJS
- Assignment
- Add POST data handling features in Tennis player management app
- Live Coding 1 - Gallery Uploads
- Live Coding 2 - Multiple file uploads through a single route
- Introduction to Cookies and Sessions
- Installing and using
express-session
package in ExpressJS - Authentication & authorization in ExpressJS
- Assignment
- Login and Signup for a Blog application
- Challenge
- Search - Server Side
- Introduction to NoSQL databases
- NoSQL vs RDBMS
- MongoDB history
- Setting up MongoDB on Windows and Linux
- MongoDB extended JSON
- Databases & collections
- Data model & documents
- Challenge
- Read JSON data and store it in MongoDB
- Using MongoDB with Express
- Live Coding 1 - Inserting and removing data
- Live Coding 2 - AttainU instructor database
- Live Coding 3 - Express + Mongo + Session = Authentication
- Live Coding 1 - Full Blog application with authentication
- Live Coding 2 - Multi collection demo - Movie Bookings
- Assignment
- Express + MongoDB CRUD app
- Git branches
- Git master/development bracnh development workflow
- Introduction to PAAS
- Introduction Heroku
- Setting up Heroku toolbet on Windows and Linux
- Create, updating and destroying a NodeJS application instance in Heroku
- Setting environment variables during application deployment
- Introduction to MongoDB Atlas
- Signing up and setting a free Mongo database in MongoDB Atlas
- Connecting Heroku NodeJS application with MongoDB Atlas
- Installing cloudinary for handling file uploads in ExpressJS
- Setting up cloudinary for Heorku
- Github page introduction
- Assignment
- Setting up a personal portfolio page using Github pages
- Introduction to ES6
- History of ES6
- Using ES6 today - Setting up Babel
- Let & Const
- Destructuring
- Template literals
- Arrow functions
- New String methods
- Javascript Closures
- Prototypal inheritance in ES5 classes
- ES6 Classes
- ES6 Getters and Setters
- Iterators
- Generators & Modules
- Introduction to Functional Programming style
- Functional Programming features in Javascript
- forEach, map, filter and reduce operations on Arrays.
- Package managers
- Introduction to Yarn
- NPM Scripts
- Bundlers and Tasks runners
- Introduction to Gulp
- Introduction to Webpack
- Introduction to Linters
- Introduction to ESlint
- Setting up VS Code for linting Javascript code
- Introduction to Lodash
- Lodash methods walkthrough
- Introduction to Algorithms
- Introduction to Data Structures
- Time and Space Complexities
- Big O Notation
- Linear Search
- Binary Search
- Assignment
- Implement Binary Search
- Introduction to Sorting
- Bubble Sort
- Selection Sort
- Assignment
- Implement Bubble Sort.
- Implement Selection Sort.
- Merge Sort
- Quick Sort
- Assignment
- Implement Merge Sort.
- Implement Quick Sort.
-
Linked List Implementation - Part 1 a. Append b. Prepend c. Search d. Print e. Delete
-
Assignment
- Implement Linked List
- Implement Linked List Delete
- Stack using Linked List
- Queue using Linked List
- Introduction to Hashing
- Collision resolution techniques a. Open Hashing i) Chaining b. Closed Hashing i) Open Addressing A) Linear Probing B) Qudratic Probing C) Double Hashing
- Assignment
- Implement Stack and Queue using Linked List
- Hash Table Algorithm (Pick anyone)
- Implement below functions a. set item b. get item c. delete item
- Assignment
- Implement Hash Table
- Min Heaps and Max Heaps
- Heap Implementation - Part 1 a. add item b. remove item c. find item d. print heap
- Heap Implementation - Part 1 a. heapify up b. heapify down
- Assignment
- Implement MinHeap and MaxHeap
- Priority Queue using Heap
- Assignment
- Implement Priority Queue
- Introduction to Trees
- Binary Trees
- Binary Search Tree - Part 1
- Insertion
- Inorder Traversing
- Assignment
- Implement Binary Search Tree insertion and Inorder traversing
- Binary Search Tree - Part 2
- Setting left child and right child of a node.
- Replacing a child node.
- Copying tree nodes.
- Searching for a node.
- Removing a node from a BST.
- Finding the minimum value node from a BST.
- Assignment
- Implement deleting a node from a BST
- Introduction to Graph Theory
- Graph fundamentals
- Node/Vertex
- Edges
- Directed and Undirected graphs
- Concept of Edge Weight
- Implemention - Part 1
- Implement GraphEdge class
- Implement GraphVertex class
- Assignment
- Implement a Graph using Linked List
- Graph traversing techniques - Breadth First and Depth First
- Implementation - Part 1
- Implement BFS
- Implement DFS
- Dijkstra's Algorithm
- Prim's Algorithm
- Krushkal's Algorithm
- Number Representation
- The CPU, Part 1
- The CPU, Part 2
- Operating System, Part 1
- Operating System, Part 2
- The Process
- The Toolchain(Compilers, Assemblers and Linkers)
- Introduction to Networking
- Refernce Models
- OSI Referenve Model
1.Networks Layers in Detail - The Physical Layer
- The Application Layer and Protocols
- Using Anki
- More HTML tags
- audio and video
- iframe
- dl and dd
- Semantic HTML
- CSS flex box
- Assignment
- Flexbox
- Introduction to CSS preprocessors
- Introduction to SASS and LESS
Revision of ES6
Revision of ES6
Revision of ES6
- Introduction to React
- Introduction to JSX
- Setting up React using
npx create-react-app
- Creating and rendering simple React components
- Assignment
- React Hello World
- Component composition
- Assignment
- React login form without events
- Component events
- React Synthetic events
- Assignment
- Simple Calculator
- Component props
- Component state
- "Lifting the State" concept in React
- Introduction to React Router
- The Router, Route and Link components
- Assignment
- React company website using Bootstrap
- Introduction to Virtual DOM
- React Lifecycle methods
- Introduction to Flux architecture
- Introduction to Redux
- Setting up Redux for React applications
- Introduction to Redux store
- Redux Reducers
- Redux Actions
- Redux Subscribers
- Assignment
- Redux Store - Score updates
- Redux data flow
- Using Redux with React components
- Redux state mappers
- Accessing redux store state using props
The following four lectures are live coding sessions where the instructor builds a Youtube player application using React and Redux
- Project planning
- Google APIs Introduction
- oAuth
- Youtube API signup
- Implementing the Redux store
- Implementing the React components - Part 1
- Implementing the React components - Part 2
- Implementing the Routing - Part 1
- Introduction to localStorage API
- Authentication and protected Routes in Express
- Forms - Creating Playlists
- DOM and
ref
- Clean architecture in React
- Javascript testing
- Introduction to testing
- Unit testing and Integration testing
- React testing
- Jest
- Chai
- Enzyme
- Introduction to "Progressive web apps"
- React and Progressive web apps
- Introduction to visualization
- Introduction to D3
- React app deployment
- Relation databases vs NoSQL databases - Revisit
- Introduction SQL, History and ANSI SQL standard
- Creating and using a Postgresql database
- SQL Data types
- Creating Tables using
CREATE TABLE
- Inserting data into Tables using
INSERT
- Updating data using
UPDATE
- Deleting data using
DELETE
- Assignment
- Build schema for banking application
- The schema should contain the following entities -
- Branch
- Account
- Customer
- Financial Transaction
- Loan
- Deposit
- Write SQL queries for inserting data in all of the above tables.
- Write SQL queries for returning data from all of the above tables.
- Write an SQL query for returning all the customers who has an account in the
Bangalore
branch. - Write an SQL query that returns customers who have both savings and loan accounts.
- Querying data using
SELECT
- Advanced Queries and Filters using
WHERE
clause. - Grouping data using
GROUP BY
clause. - Sorting data using
ORDER BY
- Introduction to Foreign Keys
- Introduction to
JOIN
- Inner JOIN
- LEFT and RIGHT OUTER JOIN
- Node Core Modules
- Buffers, Timers & Streams
- Filesystem, TCP & HTTP
- Debugging
- Nodemon
- Node Asynchronous Programming
- Callbacks revisit
- Streams and Events
- Async and Await
- Promises
- Express generator
- Advanced middlewares
- Caching
- Dependency Injection
- Express app deployment
forever
daemon
- Advanced Handlebars
- Template Inheritance
- Writing custom filters
- Introduction to AWS
- Remote login using SSH
- Setting up web server, DB server and HTTPS in Linux
- Basic server security
- Number Representation
- The CPU, Part 1
- The CPU, Part 2
- Operating System, Part 1
- Operating System, Part 2
- The Process
- The Toolchain(Compilers, Assemblers and Linkers)
- Introduction to Networking
- Refernce Models
- OSI Referenve Model
1.Networks Layers in Detail - The Physical Layer
- The Application Layer and Protocols
- Writing & speaking essentials
- Writing effective emails
- Resume building
- Portfolio building
- Mock interviews by the teaching assistant