These are the courses I completed during my undergraduate studies in Computer Science and Engineering with Honors in Artificial Intelligence and Machine Learning.
Each semester, I would write notes to help myself understand the material better, and so that I wouldn't stare at my laptop screen too much.
Now that I have finished my undergrad, I thought of putting them together here in case they might be helpful to others.
I have notes for most subjects, but there are a few where I put in some extra effort - either because:
- The subject was difficult and needed more focus, or
- I found the subject interesting and wanted to study it more carefully.
The subjects where I ended up making especially detailed notes are:
- Digital Principles and System Design (especially Synchronous and Asynchronous System Design, and Programmable Logic)
- Database Management Systems (particularly RDBMS Design and Transaction Processing)
- Microprocessors, Microcontrollers, and Interfacing (this was a tough class- tried to become proficient in 8086 programming, so lots of examples there)
- Image Processing and Analysis (the textbook was too fat to learn from, also added lots of practice problems)
- Mathematics for Machine Learning - Honors (I really loved this class!)
- Theory of Computation (had to practice a lot of problems, because I found the subject really hard)
- Internet Programming (lots of examples on Servlets, AJAX, React, and full-stack integration in Units 3, 4 and 5)
- Distributed Systems (Liked the class and the intuitive nature of the algorithms- lots of practice examples too!)
I intend for this repository to house mostly theoretical material- so courses which are programming heavy, like Data Structures, OOPs, Java etc. may not have unit-wise notes. However, wherever possible, I have also linked related lab programs, code snippets or project repositories for each subject.
If you find any errors or have suggestions for improvements, feel free to open an issue or submit a pull request. I'd appreciate it!
UPDATE [6th May, 2025] - While opening PDFS, if there's an 'Unable to render code block' error, please download the PDF instead, using the 'Download raw file' option.
- UCY2176 - Engineering Chemistry
- UEN2176 - Technical English
- UCS2176 - Problem Solving and Programming in Python
- UGE2197 - Engineering Graphics
- UGE2199 - Programming in Python Laboratory
- UGS2197 - Physics and Chemistry Laboratory
- UMA2176 - Matrices and Calculus
- UPH2176 - Engineering Physics
- ACY2276 - Environmental Science
- UCS2201 - Fundamentals and Practice of Software Development
- Course Project: Timetable Management System using Graph Coloring Methods
- UCS2202 - Foundations of Data Science
- UCS2211 - Programming in C Laboratory
- UEE2276 - Basic Electrical and Electronics Engineering
- UGE2297 - Design Thinking and Engineering Practices Laboratory
- UHS2242 - Applications of Psychology in Everyday Life
- UMA2276 - Complex Functions and Laplace Transforms
- UCS2301 - Digital Principles and System Design
- UCS2302 - Data Structures
- Course Code Snippets: BFS, Binary Search Trees, Linked List, Circular Linked List, Double Linked List, Expression Evaluation with Stacks, Inorder-Preorder-Postorder Traversal, Polynomial Evaluation etc.
- Algorithm Dry Runs
- UCS2303 - Object Oriented Programming
- Course Project: Hostel Management System
- UCS2311 - Digital Design Laboratory
- UCS2313 - Data Structures Laboratory
- UCS2312 - Object Oriented Programming Laboratory
- UHS2373 - Universal Human Values 2: Understanding Harmony
- UMA2377 - Discrete Mathematics
- UCS2401 - Computer Organization and Architecture
- UCS2402 - Operating Systems
- UCS2403 - Design and Analysis of Algorithms
- Code Snippets: Sorting and Searching Techniques, Dynamic Programming, Graph Algorithms etc.
- UCS2404 - Database Management Systems
- UCS2411 - Database Laboratory
- UCS2412 - Operating Systems Laboratory
- Code Snippets: Programming System Commands
- UMA2476 - Probability and Statistics
-
- Course Project: Establishing a Home PC Server: Enabling Remote File Retrieval via FTP
-
UCS2502 - Microprocessors, Microcontrollers, and Interfacing
-
UCS2504 - Foundations of Artificial Intelligence
- Lab Work: Uninformed, Informed and Adversarial Search, AO Star etc.
- Course Mini Project: A-Mazing Adventures with VS Pranav, Sanjai Balajee KG and Sanjjit S.
-
UCS2511 - Networks Laboratory
- Lab Work: Client-Server Connectivity, Simple and Multiuser Chat, ARP, DNS, Hamming Code, Routing Protocols, Congestion Control
-
UCS2512 - Microprocessors Laboratory
-
UCS2521 - Image Processing and Analysis (Elective)
- Course Mini Project Part 1: Edge Detection Methods
- Course Mini Project Part 2: Image Super Resolution Methods
- UCS2601 - Internet Programming
- Course Mini Project: Quiz App
- UCS2602 - Software System Security
- UCS2603 - Theory of Computation
- UCS2604 - Principles of Machine Learning
- UCS2611 - Internet Programming Laboratory
- UCS2612 - Machine Learning Laboratory
- UCS2626 - Natural Language Processing and Applications (Elective)
- Course Project: From Feature-based Algorithms to Transformers: A Study on Detecting Subjectivity for the CheckThat! Lab at CLEF 2024 - with VS Pranav
- UCS2H26 - Computer Vision (Honors)
- Code Snippets: 3D Point Mapping, Edge Detection, Viola Jones and Eigen Faces
- UCS2H27 - Business Intelligence (Honors)
- UEN2041 - English for Career Needs (Open Elective)
- UCSOL07 - Affective Computing (NPTEL) - for the 8th semester
- UCSOL05 - Privacy and Security in Online Social Media (NPTEL) - for the 8th semester
- UCS2701 - Distributed Systems
- UCS2702 - Compiler Design
- Lab Work
- Mini Compiler Implementation - Credits to @Parthiee
- UCS2703 - Software Architecture
- UCS2716 - Industrial Training / Internship (Credits towards internship done post 6th sem)
- UCS2718 - Project Work Phase I
- UCS2723 - Deep Learning (Elective)
- UCS2728 - Introduction to Blockchain Technologies (Elective)
- UCS2735 - Bioinformatics Technologies (Elective)
- UCS2H24 - Principles of Reinforcement Learning (Honors)
- UCS2H36 - Principles of Pattern Recognition (Honors)
- UCS2818 - Project Work Phase II