CS 103: Data Structures & Algorithm Design
| Course Code | CS 103 |
| Course Name | Data Structures & Algorithm Design |
| Department | Computer Science |
| Semester Offered | Even (Term 2 - India) |
| Tuition Hours | 30 hours |
| Course Level | Foundational to Intermediate |
| Pre-requisite | CS 101: Introduction to Computational Thinking |
| Co-requisite | - |
| Course Objective | Writing code that works is easy. Writing code that scales, survives constraints, and performs under pressure is a different game. This course introduces students to the core data structures and algorithmic techniques that power efficient systems. The focus is not on passing coding interviews, but on understanding why some solutions break at scale while others hold up. Students will learn how to organize data, design efficient procedures, and reason about time and space complexity. These ideas become critical when building AI systems that operate on real-world data with real constraints, especially in environments where compute, memory, and infrastructure are limited. By the end of the course, students will be able to design systems that are not just correct, but efficient enough to be deployed in production. |
| Course Philosophy | This course emphasizes
|
| Course Learning Outcomes | Upon successful completion of this course, students will be able to:
|
| Course Author | Sagar Udasi MSc Statistics and Data Science with Computational Finance from The University of Edinburgh. Contact: sagar.l.udasi@gmail.com |
| Course Organiser | TBD Details will be updated before course commencement. |
| No. | Lecture Title | Concepts Covered | Lecture Objective |
|---|---|---|---|
| 01 | Why Your Code Breaks At Scale | Limits of naive solutions, introduction to complexity | Show why efficiency matters when systems meet real users and data. |
| 02 | Time Is Not Free | Time complexity, Big O intuition | Teach students to measure performance and predict scalability. |
| 03 | Memory Is A Constraint Too | Space complexity, trade-offs | Build awareness of memory usage in real systems. |
| 04 | Arrays: The Simplest Yet Most Powerful Tool | Arrays, indexing, operations | Foundation for most systems and data processing tasks. |
| 05 | When Arrays Are Not Enough | Linked lists, dynamic memory | Introduce flexibility vs performance trade-offs. |
| 06 | Stacks & Queues: Controlling Flow | LIFO, FIFO, real-world use cases | Apply structures to system design and workflows. |
| 07 | Hash Tables Feel Like Magic | Hashing, collisions, dictionaries | Teach constant-time operations and their practical limits. |
| 08 | Trees: Organizing Hierarchy | Binary trees, traversal | Essential for structured data and decision systems. |
| 09 | Search Trees That Stay Fast | BST, balancing intuition | Maintain performance in dynamic datasets. |
| 10 | Heaps & Priority Queues | Heaps, scheduling problems | Useful for optimization and real-time systems. |
| 11 | Sorting Isn’t Just Sorting | Sorting algorithms, trade-offs | Teach when different sorting methods matter. |
| 12 | Graphs: Modeling The Real World | Graph representation, traversal | Represent networks, relationships, and dependencies. |
| 13 | Finding Paths In Chaos | BFS, DFS, shortest paths | Apply graph algorithms to real systems like routing and recommendations. |
| 14 | Greedy Works… Until It Doesn’t | Greedy algorithms, limitations | Teach when simple strategies fail. |
| 15 | Breaking Problems Into Subproblems | Dynamic programming intuition | Solve complex optimization problems efficiently. |
| 16 | Recursion: Thinking In Reverse | Recursive thinking, stack behavior | Build deeper understanding of problem decomposition. |
| 17 | Designing Algorithms From Scratch | Problem-solving strategies | Move from implementation to design thinking. |
| 18 | Systems Under Constraints | Real-world constraints, optimization | Apply learning to limited compute environments. |
| 19 | Case Study: Scaling An AI Pipeline | Applying DS&A to ML systems | Directly connect to Term 2 enterprise AI projects. |
| 20 | Demo Day: Efficient Or It Fails | Presentations, performance review | Students showcase systems that must meet efficiency benchmarks. |
| Component | Weightage |
|---|---|
| Weekly Problem Sets (6 total) | 30% |
| Algorithm Design Assignment | 20% |
| Final Project: Scalable System Component | 30% |
| Viva + Code Efficiency Review | 20% |
| Type | Resource | Provider |
|---|---|---|
| Lecture | Algorithms, Part I & II | Princeton (Robert Sedgewick) |
| Lecture | MIT 6.006 Introduction to Algorithms | MIT OCW |
| Reading | Grokking Algorithms | Aditya Bhargava |
| Reading | Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein |
| Practice | LeetCode | LeetCode |
| Practice | Codeforces | Codeforces |