Courses

“Someone who is exceptional in their role is not just a little better than someone who is pretty good. They are 100 times better.” [Mark Zukerberg] This is why, still today, one or two people can start a company that changes the face of the world forever (think Google, Apple, or Facebook). Work hard and you might become such a “100x” person as well. Failing that, work with such a person; you’ll learn more in a day than most learn in a month. Failing that, feel sad.  

Autumn 2024


ITT 303: Introduction to computer architecture, Language of Bits, Assembly Language, Instruction set Architecture, RISC-V, Basic Processor Design, Pipelining, Computer Arithmetic, and Memory.

Microprocessor 8085 Lab

ITL302: GNUSim8085 simulator, Programs for microprocessor 8085, Using Microprocessor as a control system, Counters using microprocessor 8085.

Spring 2024


ITT 250: Introduction, System calls and their implementation, Processes, Process Scheduling, Segmentation, Virtual memory, Threads, Concurrency, File System.

ITL 252: Learning to use linux OS and compiling the same, System call usage, Learning xv6 operating system, shell implementation

Autumn 2023


ITT 303: Introduction to computer architecture, Language of Bits, Assembly Language, Instruction set Architecture, RISC-V, Basic Processor Design, Pipelining, Computer Arithmetic, and Memory.

PHD 14: Introduction to Machine learning, Supervised learning models: Linear regression and its variants, Probabilistic learning models, Logistic Regression, Softmax regression, Regularization, Generative models (GDA), Naive Bayes model, Support Vector Machines and kernels, Neural Networks, Backpropagation, CNNs, RNNs, Unsupervised learning and its learning models (K-means clustering), Reinforcement learning. 

ITL302: GNUSim8085 simulator, Programs for microprocessor 8085, Using Microprocessor as a control system, Counters using microprocessor 8085.

Spring 2023


ITT 250: Introduction, System calls and their implementation, Processes, Process Scheduling, Segmentation, Virtual memory, Threads, Concurrency, File System.

ITL 252: Learning to use linux OS and compiling the same, System call usage, Learning xv6 operating system, shell implementation

PHD 14: Introduction to Machine learning, Supervised learning models: Linear regression and its variants, Probabilistic learning models, Logistic Regression, Softmax regression, Regularization, Generative models (GDA), Naive Bayes model, NonSupport Vector Machines and kernels, Neural Networks, Backpropagation, CNNs, RNNs, Unsupervised learning and its learning models (K-means clustering), Reinforcement learning. 

Autumn 2022


ITT 303: Introduction to computer architecture, Language of Bits, Assembly Language, Instruction set Architecture, RISC-V, Basic Processor Design, Pipelining, Computer Arithmetic, and Memory.

PHD 14: Introduction to Machine learning, Supervised learning models: Linear regression and its variants, Probabilistic learning models, Logistic Regression, Softmax regression, Regularization, Generative models (GDA), Naive Bayes model, Support Vector Machines and kernels, Neural Networks, Backpropagation, CNNs, RNNs, Unsupervised learning and its learning models (K-means clustering), Reinforcement learning. 

Spring 2022


ITT 250: Introduction, System calls and their implementation, Processes, Process Scheduling, Segmentation, Virtual memory, Threads, Concurrency, File System.

ITL 252: Learning to use linux OS and compiling the same, System call usage, Learning xv6 operating system, shell implementation

PHD 14: Introduction to Machine learning, Supervised learning models: Linear regression and its variants, Probabilistic learning models, Logistic Regression, Softmax regression, Regularization, Generative models (GDA), Naive Bayes model, Support Vector Machines and kernels, Neural Networks, Backpropagation, CNNs, RNNs, Unsupervised learning and its learning models (K-means clustering), Reinforcement learning. 

Autumn 2021


IT 501: Introduction to computer architecture, Language of Bits, Assembly Language, Instruction set Architecture, RISC-V, Basic Processor Design, Pipelining, Computer Arithmetic, and Memory.

IT 507: General introduction to microprocessors, Instruction set architecture, 8085 programming, Memory and I/O interfacing, Interrupts, and microprocessor applications

IT 508: GNUSim8085 simulator, Programs for microprocessor 8085, Using Microprocessor as a control system, Counters using microprocessor 8085.

Spring 2021


IT E20: Introduction to computation, Mathematical Preliminaries, Languages, Grammars, Finite State Automata, Push Down Automata, Context-Free Grammars, Turing Machines, Enumerability, Decidability, and Complexity theory.

IT E19: Introduction to distributed systems, Goals and Issues of the Distributed systems, Failures in Distributed systems, Synchronization mechanisms, Physical and Logical Clocks, Mutual exclusion and election algorithms, Distributed system security.

Previously Taught




Autumn 2020








Spring 2020







Autumn 2019







Spring 2019







Autumn 2018







Spring 2018








Autumn 2017







Spring 2017

Computer Organization and Architecture

Microprocessor 8085

Quantum Computing (IIITM Gwalior)

Computer Programming


Distributed Computing



Computer Organization and Architecture 



Theory of Computation



Computer Organization and Architecture 



Theory of Computation



Computer Organization and Architecture 



Computer Networks