This repository contains personal notes and projects for the BSc Computer Science (CS) programme at City University of Hong Kong (CityU), providing a comprehensive reference for current and prospective students. The notes are organized by course and cover a wide range of topics in computer science, including programming languages, algorithms, data structures, computer vision/graphics, machine learning, and more.
With a GPA of 4.12/4.3 and a major GPA of 4.17/4.3, I graduated with summa cum laude and received the Dean’s List Award for 7 semesters. I have also been awarded the HKSAR Government Scholarship for Outstanding Performance for 2 consecutive years. Transcript available here. I hope that the notes and projects reflect my dedication and commitment to academic excellence, and that they can serve as a valuable resource for fellow students.
If you find this repository helpful, please consider giving it a star. If you have any questions or suggestions, feel free to open an issue or contact me.
You are welcome to use the notes in this repository for your personal study and reference. However, please be aware of the following important points:
[!WARNING]
- We are not liable for inevitable inaccuracies or errors in the notes, as they are intended for personal study use only.
- We are strictly against any form of academic dishonesty. The code is provided for educational purposes only, please use it responsibly and adhere to academic integrity principles.
- We are strictly against copyright infringement. Copyrighted materials such as course slides and textbooks are not included in this repository.
src/ - Notes in Markdown formatnotes/ - Notes in PDF format, generated by Typoraprojects/ - Several mini projects. Some other projects are hosted in separate repositories linked below| Code | Course | Code | Notes | Remarks |
|---|---|---|---|---|
| CS1302 | Introduction to Computer Programming (Python) | Archive | Notes | Year 1 Sem A |
| CS2115 | Computer Organization | Notes Review |
Year 2 Sem A | |
| CS2204 | Fundamentals of Internet Applications Development | Project Website |
Notes | Year 1 Sem B |
| CS2310 | Computer Programming (C++) | Archive | Notes | Year 1 Sem B |
| CS2312 | Problem Solving and Programming (Java) | Notes Exercises |
Year 2 Sem A | |
| CS2402 | Introduction to Computational Probability Modelling | Notes | Year 1 Sem B | |
| CS2611 | Seminars on Contemporary Technologies I | Year 2 | ||
| CS3103 | Operating Systems | Project | Notes Tutorial Exercises |
Year 2 Sem B |
| CS3201 | Computer Networks | Project | Notes | Year 2 Sem A |
| CS3334 | Data Structures | Archive Project |
Notes Review |
Year 2 Sem A |
| CS3342 | Software Design | Project | Notes Review |
Year 2 Sem B |
| CS3343 | Software Engineering Practice | Project | Notes Review |
Year 3 Sem A |
| CS3402 | Database Systems | Notes Exercises |
Year 2 Sem B | |
| CS3504 | IT Professional Placement | Year 3 | ||
| CS4335 | Design and Analysis of Algorithms | Notes Review |
Year 3 Sem A | |
| CS4514 | Project | Year 4 |
[!NOTE]
I highly recommend planning your electives early, as some courses are only offered in specific semesters and may have prerequisites.
e.g., CS4487 Machine Learning (only in Sem A) requires CS3481 Fundamentals of Data Science (only in Sem B) or CS4486 Artificial Intelligence (only in Sem B) as a prerequisite. To enroll in CS4487 in Year 4 Sem A, you must take either CS3481 or CS4486 in Year 3 Sem B.
All the electives I took do not have prerequisites beyond the major core courses.
| Code | Course | Code | Notes | Remarks |
|---|---|---|---|---|
| CS3481 | Fundamentals of Data Science | Archive | Notes Tutorial |
Only in Sem B |
| CS4182 | Computer Graphics | Project | Notes | Only in Sem A |
| CS4186 | Computer Vision and Image Processing | Project | Notes Exercises |
Only in Sem B |
| CS4187 | Computer Vision for Interactivity | Archive Project |
Notes | Only in Sem A |
| CS4293 | Topics in Cybersecurity | Archive | Notes | Only in Sem B |
| CS4386 | AI Game Programming | Archive | Notes Tutorial |
Only in Sem B |
| CS4486 | Artificial Intelligence | Project | Notes | Only in Sem B |
| Code | Course | Notes | Remarks |
|---|---|---|---|
| MA2185 | Discrete Mathematics | Year 2 Sem A | |
| EN4262 | English Communication Skills for Computing | Year 4 Sem A | |
| CB2500 | Information Management | Notes Discussions Quiz Review |
CB2100/2300/2500/2601 |
| GE2313 | Global IT Case Studies | Notes Review |
GE2313/2324/2338/2340 |
| Code | Course | Notes | Remarks |
|---|---|---|---|
| GE1401 | University English | Year 1 Sem A | |
| GE2410 | English for Engineering | Year 1 Sem B | |
| JC2066 | IT Professionals: Ethical, Legal and Social Issues | Notes | Year 1 Sem A |
| MA1300 | Enhanced Calculus and Linear Algebra I | Notes | Year 1 Sem A |
| MA1301 | Enhanced Calculus and Linear Algebra II | Year 1 Sem B | |
| PHY1201 | General Physics I | Notes | Year 1 Sem A |
| GE1501 | Chinese Civilisation - History and Philosophy | Notes |
[!NOTE]
You are normally required to take 4 GE courses, with at least one from each of the 3 areas, plus one more from any area.
For recommendations on GE courses, please refer to cityuge.com, which provides detailed information such as course content, workload, grade distribution, and student reviews.
Please also check out the official GE course list as the courses offered change every semester.
| Code | Course | Notes | Remarks |
|---|---|---|---|
| GE1137 | Movies and Psychology | Notes Discussions |
Area 1 |
| GE1205 | Green Economics | Notes | Area 2 |
| GE1305 | Foundation Physics | Notes | Area 3 |
| GE2262 | Business Statistics | Notes Tutorial Quiz Review |
Area 2 |
| Code | Course | Notes |
|---|---|---|
| CB2400 | Microeconomics | Notes Exercises |
| CB2402 | Macroeconomics | Notes Exercises Review |
