A collection of resources during our studying years in NUS SoC Which does not only contain the modules we took, but everything we've came across while struggling through the course :)
Largely organised by CS Focus Areas
- General Resources, or things to make your NUS life easier
- Learning to Program, which includes resources for foundation programming modules (i.e. CS1010, CS1020...)
- Algorithms and Theory
- Artificial Intelligence
- Computer Networks
- Computer Security
- Database Systems
- Interactive Media
- Information Retrieval
- Parallel Computing
- Software Engineering
- Mobile Development
- Web Development
- Technical Interviews and other tips
- Physics and Mathematics, because we all have to take them in our degree requirements
- Information Systems Modules
- Others: GEM/ SS modules, Free Academic Resources, and cool coding-related links
- CS Programme Requirements
- NUS SoC Focus Areas
- SoC Course Catalogue
- NUSMods for Timetable Planning
- Collation of NUS related links
- Introduction to Sunfire
- [Basic Vim commands](resources/Misc/Vim commands.docx)
- [Basic UNIX commands](resources/Misc/UNIX commands.docx)
- Resources for Freshman by Mr. Aaron Tan
- ReadPeer IVLE for reading and organising IVLE notes
- CS1010 Programming Methodology
- Website for AY2015/2016
- [Jin Zhe's condensed notes](resources/CS1010/CS1010 NOTES.docx)
- Learning C in Chinese
- CS1020E
- Learning C++ in Chinese
- Learning C++ in English
- Self-learning C++ website
- C/C++ References
- CS1020E Unofficial Resources
- CS3241 Computer Graphics (Using OpenGL with C++)
- Getting the OpenGL library
- Self-learning Resources
- Learning C# in English
- Learning Python in English
- Python References
- CS1020 & CS2010 Data Structures and Algorithms
- Website for AY 2013/14
- Online Java IDE
- [Jin Zhe's condensed notes for CS1020](resources/CS1020/CS1020 NOTES.docx)
- [CS1020 UML conventions](resources/CS1020/UML NOTES.docx)
- Learning Java in Chinese
- Learning more about algorithms
- CS2100 Computer Organisation
- CS2106 Introduction to Operating Systems
- CS3230 Design and Analysis of Algorithms
- CS3233 Competitive Programming
- CS3243 Introduction to Artificial Intelligence
- CS3244 Machine Learning
- CS5228 Knowledge Discovery and Data Mining
- CS2105 Introduction to Computer Networks
- CS3103 Computer Networks & Protocols
- CS4274 Mobile & Multimedia Networking
- CS4344 Networked and Moile Games
- CS2107 Introduction to Security
- CS2102 Database Systems
- CS3247 Game Development
- CS3249 User Interface Development
- CS4243 Computer Vision and Pattern Recognition
- CS4347 Sound and Music Computing
- CS3245 Introduction to Information Retrieval
- CS3246 Multimedia Content Analysis and Search
- CS4242 Social Media Computing
- CS4248 Natural Language Processing
- CS3210 Parallel Computing
- CS2103/T: Software Engineering
- CS3216 Software Development for Digital Markets
- CS3217 Software Engineering on Modern Application Platforms
- Objective-C online video course by Stanford University
- Swift online video course by Stanford University - SAME PROFESSOR!
- Simple-to-use web-based prototyping application using images for iPhone - 30 days free trial
- NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.
- One-stop website for tutorials for specific functionalities
- CP3101B Web Programming and Applications
- 2015 Course Webpage
- Update Aug 2015: This course will be changed to CS3226.
- Learning about web applications
- Some tutorials
- PHP References
- Getting started
- Top Rails Resources
- Codecademy's Ruby course
- Codecademy's Learn RoR course
- Codecademy's RoR Authentication course
- M Hartl's Rails Tutorial everyone loves
- One Month Rails
- Getting started
- AngularJS tutorial by Tutorialspot
- Free basic course from Codeschool
- Codecademy's Learn AngularJS course
- Thinkster: A Better Way to Learn AngularJS
- AngularJS cheatsheet
- Amazing github repo for blog posts, articles, videos, etc for learning AngularJS
- AngularJS YouTube channel
- More links
- LeetCode
- CarrerCup
- GeeksforGeeks
- Also see competitive programming platforms under CS3233 Competitive Programming
- Jin Zhe's practices in Java (if it's of any help)
- Algorithms
- Data-structures
- From a Googler: the Google interview process (MUST READ)
- Long but worthwhile read by beloved Steve Yegge
- "Hacking a Google Interview" by MIT
- APAC Google interview experience/process by Emanuel Saringan
- CS1231 Discrete Structures
- LSM1301 General Biology
- MA1521 Calculus for Computing
- MA1101R Linear Algebra I
- Textbook: Linear Algebra: Concepts and Techniques on Euclidean Spaces by Ng Kah Loon. Can only buy at NUS Co-Op
- A textbook from UBC that serves its purpose
- MA2214 Combinatorics and Graphs I
- ST2334 Probability and Statistics
- ST2132 Mathematical Statistics
- Textbook: Mathematical Analysis and Statistics by John Rice
- ST2137 Computer Aided Data Analysis
- PC1221 Fundamentals of Physics I
- PC1222 Fundamental of Physics II
- IS1105 Strategic IT Applications
- [Jin Zhe's condensed notes](resources/IS1105/IS1105 NOTES.docx)
- IS2102 Requirements Analysis and Design
- IS2103 Enterprise Systems Development Concepts
- GEK1505 Living With Mathematics (It is similar to CS1231)
- GEK1508 Einstein's Universe & Quantum Weirdness ([Jin Zhe's notes](resources/GEK1508/GEK1508 NOTES.docx))
- GEK1509 Introduction To The Nanoworld ([Jin Zhe's notes](resources/GEK1509/GEK1509 NOTES.docx))
- GEM1537 Nanotechnology For Everyone - From Smart Phone, Innovation to Entrepreneurship - Shaping the Future
- GEM2900 Understanding Uncertainty and Statistics
- GEM2901 Statistics in the Media
- GEK1527 (or LSM1302) Genes and Society
- PH1102E Introduction to Philosophy
- [Jin Zhe's summarized notes](resources/PH1102E/PH1102E NOTES.docx)
- Abraham Kang's notes
- CS2101 Effective Communication for Computing Professionals
- Reflections Blog by Ms Isabel Chew
- Codecademy
- Codeschool
- Tutorial Spot
- PluralSight (free 90-day trial for students)
- Thinkster
- Code Avengers
- Treehouse
- Udacity
- Khan Academy
- Rosetta Code presents algorithms in as many different languages as possible
- Online IDE and Terminal for almost all languages!
- 40 key computer science terms explained in ways your boss can understand
- Notes to NUS Freshmen from the Future, written by some Seniors
- Jin Zhe's programming cheatsheets
- Learning Office 365 APIs in English
Help us build this list! :) Fork the repo and send a pull request!