NUS Computer Science Notes & Cheatsheets
By Hanming Zhu (2019-2023)
These are some notes and cheatsheets written by me during the course of my time in NUS Computer Science. The notes are meant to be used as revision materials or even replacements for lecture notes.
These notes/cheatsheets include information from, but not limited to:
- Lecture Notes
- Tutorials, Assignments and Past Year Papers
- Textbooks
- Online resources (Relevant sites, Udemy courses)
Contents (In Chronological Order)
Taught by Mr Adi Sidi Yoga Prabawa, AY18/19 Special Term II
Concepts Covered
- Object Oriented Programming
- Streams and Functional Programming
Taught by Dr Chong Ket Fah, AY18/19 Special Term II
Concepts Covered
-
Introduction
- Algorithms
- Big-O Notation
-
Data Structures
- Arrays
- Linked Lists
- Stacks
- Queues
- Hash Maps
- Sets (UFDS)
- Ordered Maps
- Graphs
-
Algorithms
- Searching
- Sorting
- BFS/DFS
- Prim's/Kruskal's
- Bellman Ford's
- Dijkstra's (Original/Modified)
- Floyd-Warshall
Taught by Dr Sufatrio, AY19/20 Semester 1
Concepts Covered
- Security Requirements
-
Key Concepts of Principal Protection Mechanisms
- Cryptography and Encryption
- Authentication
- Access Control
- Public Key Infrastructure and Certificate Authority
- Network Security
- Software Security
- Web Security
Taught by Prof Raghavan Dilip, AY19/20 Semester 2
Midterms cheatsheet contains content from Chapter 1.1 to 2.5
Concepts Covered
- Linear Systems and Gaussian Elimination
- Matrices
- Vector Spaces
- Vector Spaces Associated with Matrices
- Orthogonality
- Diagonalization
- Linear Transformations
Headed by Prof Yap Von Bing, AY19/20 Semester 2
Website version of the notes can also be accessed here on Notion.
Concepts Covered
- QR Framework
- Design of Studies
- Association
- Sampling
- Observational Studies
- Uncertainty
Taught by Dr Zhou Lifeng and Prof Roger Zimmermann, AY20/21 Semester 1
Concepts Covered
- Application Layer
- Transport Layer
- Network Layer
- Link Layer
- Multimedia Networking
- Network Security
- Physical Layer
Taught by Dr Cristina Carbunaru, AY20/21 Semester 1
Concepts Covered
- Introduction to OS
- Process Abstraction
- Process Scheduling
- Inter-Process Communication
- Threads
- Synchronisation
- Memory Abstraction
- Disjoint Memory
- Virtual Memory
- File System Abstraction
- File System Implementation
Taught by Prof Lim Chinghway, AY20/21 Semester 1
If you view the PDF on GitHub, a lot of the Latex will appear to be missing! Either download the PDF or view it on Notion instead.
Website version of the notes can also be accessed here on Notion.
Concepts Covered
- Basic Concepts of Probability
- Concepts of Random Variables
- Two Dimensional Random Variables and Conditional Probability Distributions
- Special Probability Distributions
- Sampling and Sampling Distributions
- Estimation Based on Normal Distribution
- Hypotheses Testing Based on Normal Distribution
Taught by Dr Chan Chee Yong and Prof Xiao Xiaokui, AY20/21 Semester 2
Midterms cheatsheet contains content on Relational Algebra, SQL and Entity-Relationship Model.
Finals Cheatsheet
Concepts Covered
- Introduction to DBMS
- Relational Algebra
- SQL
- Entity-Relationship Model
- Statement-Level & Call-Level Interfaces
- SQL/Persistent Stored Modules - PL/pgSQL
- Functions & Procedures
- Triggers
- SQL Injection Attacks
- Normal Forms
- Functional Dependencies
- BCNF & 3NF
Taught by Dr Bimlesh Wadhwa, AY21/22 Semester 1
Strongly advised to read through design patterns on Refactoring Guru before using this cheatsheet.
Concepts Covered
- Software Development Process
- Specifying Software Requirements
- Software Architecture Styles
- Software Architecture Patterns
- Hexagonal Architecture
- Domain Driven Design
- Microservices
- Kubernetes
- Message Design Patterns
- Object Interaction Design Patterns
Taught by Dr Ben Leong, AY21/22 Semester 2
Midterms cheatsheet contains content on Search Algorithms and part of Machine Learning.
Finals Cheatsheet
Be warned that these cheatsheets may not be very applicable, as Prof Ben is known for testing practical applications and understanding over content knowledge and memorisation.
Concepts Covered
- Uninformed and Informed Search
- Heuristics
- Adversarial Search
- Decision Trees
- Linear Regression and Gradient Descent
- Polynomial Regression
- Logistic Regression
- Model Selection
- Regularisation
- Support Vector Machines
- Multi-Layer Neural Networks
- Deep Neural Networks
- Clustering and Unsupervised Learning
- AI Ethics