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
- Programming Languages
- 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
- Other NUS Modules: GEM/ SS modules
- Others: Free Academic Resources, cool coding-related links, and some troubleshoots
- Building the list
- CS Programme Requirements
- NUS SoC Focus Areas
- SoC Course Catalogue
- NUSMods for Timetable Planning
- Collation of NUS related links
- NUS Computing Slack
- Introduction to Sunfire
- [Basic Vim commands](resources/Misc/Vim commands.docx) & Switch to Vim for Good
- [Basic UNIX commands](resources/Misc/UNIX commands.docx)
- Resources for Freshman by Mr. Aaron Tan
- ReadPeer IVLE for reading and organising IVLE notes
- Foundation Of Computer Science(Online Textbook
- 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
- The 2010 Version
- MIT Introduction to Algorithms Book. Also the textbook used in CS3230.
- MIT Similar Course
- Davin's Cheat Sheet for Midterm
- Big O Notation Explanation Article
- MIT Big O Notation Lecture Notes
- A Beginner's Guide to Big O Notation
- Big O Notation Cheat Sheet
- A very complete Algorithms Cheat Sheet by algorhythm
- CS3233 Competitive Programming
- CS4232 Theory of Computation
- CS3243 Introduction to Artificial Intelligence
- CS3244 Machine Learning
- CS4246 AI Planning and Uncertainity
- CS5228 Knowledge Discovery and Data Mining
- The 2014 page
- Recommender Systems and Social Web 2014
- Kaggle Competition
- Data Science iPython Notebooks
- Mining of massive datasets(Second Edition). Leskovec, Jure, Anand Rajaraman, and Jeffrey David Ullman. Cambridge University Press, 2014.
- How Do I become a Data Scientist on Quora
- 60 Free Data Science Books
- CS5340 Uncertainity Modelling in AI
- CS2105 Introduction to Computer Networks
- CS3103 Computer Networks & Protocols
- CS4274 Mobile & Multimedia Networking
- CS4344 Networked and Mobile Games
- CS2107 Introduction to Security
- CS3235 Computer Security
- CS5231 System Security
- CS2102 Database Systems
- CS3247 Game Development
- CS3249 User Interface Development
- CS4243 Computer Vision and Pattern Recognition
- CS4347 Sound and Music Computing
- CS5240 Theoretical Foundations in Multimedia Computing
- CS5233 Simulation and Modelling Techniques
- CS2108 Introduction to Media Computing
- Fast Fourier Transform (FFT) Interactive Guide
- [Image Dittering Demo] (https://www.unitzeroone.com/examples/ImageDithering/index.html)
- [Open Source JS Image Effects and Filters] (https://joelb.me/jsmanipulate/)
- CS3245 Introduction to Information Retrieval
- CS3246 Multimedia Content Analysis and Search
- CS4242 Social Media Computing
- CS4248 Natural Language Processing
- CS3210 Parallel Computing
- CS2104 Programming Languages Concepts
- CS2103/T: Software Engineering
- CS3216 Software Development for Digital Markets
- CS3217 Software Engineering on Modern Application Platforms
- Android Developers Getting Started
- Google Material Design Principles
- Collated List of Android Resources
- 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
- Engineering Blogs collated
- 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
- What happens when you type google.com into your browser and press enter?
- How would you implement Google Search?
- Job Puzzles
- Github Awesome Interviews
- 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
- Stanford CS229 Linear Algebra Review
- MA2213 Numerical Analysis
- 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
- ST4234 Bayesian Statistics
- PC1221 Fundamentals of Physics I
- PC1222 Fundamental of Physics II
- General Mathematics Stuff
- 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)
-
GEK1520/ PC1322 Understanding the Universe
-
GEM2900 Understanding Uncertainty and Statistics
-
GEM2901 Reporting Statistics in the Media
-
GEK1527 (or LSM1302) Genes and Society
-
GEK1521 Physics In the Life Sciences
Other Modules, IDEs, Resources, Cool Stuff, ...
- 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
- Awesome Courses
- Cool Youtube Channels for Learning Programming
- Awesome Collated List by Sindresorhus
- 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
- The Last Lecture by Randy Pausch
- Notes to NUS Freshmen from the Future, written by some Seniors
- Slack off From Your Job Today and spend some time giggling
- Jin Zhe's programming cheatsheets
- Learning Office 365 APIs in English
- Help us build the list! (how)