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)
- CS2030 - Programming Methodology II (Taken in AY18/19 Special Term II)
- CS2040 - Data Structures and Algorithms (Taken in AY18/19 Special Term II)
- CS2107 - Introduction to Information Security (Taken in AY19/20 Semester 1)
- MA1101R - Linear Algebra I (Taken in AY19/20 Semester 2)
- GER1000 - Quantitative Reasoning (Taken in AY19/20 Semester2)
- CS2105 - Introduction to Computer Networks (Taken in AY20/21 Semester 1)
- CS2106 - Introduction to Operating Systems (Taken in AY20/21 Semester 1)
- ST2334 - Probability and Statistics (Taken in AY20/21 Semester 1)
- CS2102 - Database Systems (Taken in AY20/21 Semester 2)
- CS3219 - Software Engineering Principles and Patterns (Taken in AY21/22 Semester 1)
Taught by Mr Adi Sidi Yoga Prabawa, AY18/19 Special Term II
- Object Oriented Programming
- Streams and Functional Programming
Taught by Dr Chong Ket Fah, AY18/19 Special Term II
- 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
- 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
MA1101R - Linear Algebra I (Cheatsheets)
Taught by Prof Raghavan Dilip, AY19/20 Semester 2
Midterms cheatsheet contains content from Chapter 1.1 to 2.5
- Linear Systems and Gaussian Elimination
- Matrices
- Vector Spaces
- Vector Spaces Associated with Matrices
- Orthogonality
- Diagonalization
- Linear Transformations
GER1000 - Quantitative Reasoning (Notes)
Headed by Prof Yap Von Bing, AY19/20 Semester 2
Website version of the notes can also be accessed here on Notion.
- QR Framework
- Design of Studies
- Association
- Sampling
- Observational Studies
- Uncertainty
CS2105 - Introduction to Computer Networks (Cheatsheets)
Taught by Dr Zhou Lifeng and Prof Roger Zimmermann, AY20/21 Semester 1
- Application Layer
- Transport Layer
- Network Layer
- Link Layer
- Multimedia Networking
- Network Security
- Physical Layer
CS2106 - Introduction to Operating Systems (Cheatsheets)
Taught by Dr Cristina Carbunaru, AY20/21 Semester 1
- 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.
- 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
CS2102 - Database Systems (Cheatsheets)
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
- 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
CS3219 - Software Engineering Principles and Patterns (Cheatsheets)
Taught by Dr Bimlesh Wadhwa, AY21/22 Semester 1
Strongly advised to read through design patterns on Refactoring Guru before using this cheatsheet.
- Software Development Process
- Specifying Software Requirements
- Software Architecture Styles
- Software Architecture Patterns
- Hexagonal Architecture
- Domain Driven Design
- Microservices
- Kubernetes
- Message Design Patterns
- Technologies
- Object Interaction Design Patterns