Notes
Course and Personal Notes
- CS2103/T
Software Engineering
Learn how to plan, build, and maintain robust software systems in a disciplined way, combining theory (UML, design patterns, testing strategies) with hands-on tools and teamwork to prepare for real-world software engineering challenges.
- CS2106
Introduction to Operating Systems
Learn the core concepts that form the foundation of modern operating systems including processes and threads, CPU scheduling, synchronization and concurrency, memory management and file systems.
- CS2109S
Introduction to AI and Machine Learning
This module covers a broad spectrum of topics in Artificial Intelligence and Machine Learning, from classical search algorithms that operate on state spaces, to statistical learning methods like regression, and modern neural network architectures.
- CS3230
Design and Analysis of Algorithms
This modules teaches techniques for designing and analyzing algorithms, covering complexity analysis, recurrences, classical paradigms (divide-and-conquer, dynamic programming, greedy, randomized), and advanced topics like amortized analysis and NP-completeness, including reductions and understanding computational problem limits.