links-and-resources
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 :)
Index
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
General Resources
- Collection of Cheatsheets!!!
- 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 & Switch to Vim for Good
- Basic UNIX commands
- Resources for Freshman by Mr. Aaron Tan
- ReadPeer IVLE for reading and organising IVLE notes
- Foundation Of Computer Science(Online Textbook)
Learning to Program
Learning the Command Line
- Bash Handbook on Github
- Vogella Github handbook
- Learn Enough Command Line to be Dangerous
- MS Dos Basics
- Powershell Basics: It would be a plus if you know C# prior!
Learning C
- CS1010 Programming Methodology
- Learning C in Chinese
Learning C++
- 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#"
- Learning C# in English
Learning Python
- Learning Python in English
- Python References
Learning Matlab
Learning Java And Algorithms
- CS1020 & CS2010 Data Structures and Algorithms
- Learning Java in Chinese
- Learning more about algorithms
Learning other basics for Programme Requirements
-
CS2100 Computer Organisation
-
CS2106 Introduction to Operating Systems
Algorithms and Theory
- CS2040 Data Structures and Algorithms
- 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
- Big O Complexity Cheat Sheet
- CS3233 Competitive Programming
- CS4232 Theory of Computation
Artificial Intelligence
- 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
- CS5246 Text Processing on the Web
- CS6101 Deep Learning for Vision
Computer Networks
- CS2105 Introduction to Computer Networks
- CS3103 Computer Networks & Protocols
- CS4274 Mobile & Multimedia Networking
- CS4344 Networked and Mobile Games
Computer Security
- CS2107 Introduction to Security
- CS3235 Computer Security
- CS5231 System Security
Database Systems
- CS2102 Database Systems
Interactive Media
- CS3247 Game Development
- CS3249 User Interface Development
- CS4243 Computer Vision and Pattern Recognition
- CS4347 Sound and Music Computing
- CS4350 Game Development Project
- CS5240 Theoretical Foundations in Multimedia Computing
- CS5233 Simulation and Modelling Techniques
Information Retrieval
- CS2108 Introduction to Media Computing
- Fast Fourier Transform (FFT) Interactive Guide
- [Image Dittering Demo] (http://www.unitzeroone.com/examples/ImageDithering/index.html)
- [Open Source JS Image Effects and Filters] (http://joelb.me/jsmanipulate/)
- CS3245 Introduction to Information Retrieval
- CS3246 Multimedia Content Analysis and Search
- CS4242 Social Media Computing
- CS4248 Natural Language Processing
Parallel Computing
- CS3210 Parallel Computing
Programming Languages
- CS2104 Programming Languages Concepts
Software Engineering
- CS2103/T: Software Engineering
- CS3216 Software Development for Digital Markets
- CS3217 Software Engineering on Modern Application Platforms
Mobile Development
Android Development
- Android Developers Getting Started
- Google Material Design Principles
- Collated List of Android Resources
- Awesome Android
- CodePath's Guide to Android
iOS Development
- 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
Windows 10 Development
Web Development
- CS3226 Web Programming and Applications
- Learning about web applications
Backend Languages and Frameworks
Learning PHP
- Some tutorials
- PHP References
Learning Ruby on Rails
- 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
Frontend Languages and Frameworks
Learning AngularJS and Angular 2
- Getting started on AngularJS
- Getting started on Angular 2
- 'Differences between AngularJS and Angular 2' on Quora
- 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
Learning React
Technical Interviews
Relevant Resources
- System Design Interview
- LeetCode
- CareerCup
- GeeksforGeeks
- Also see competitive programming platforms under CS3233 Competitive Programming
- Jin Zhe's practices in Java (if it's of any help)
- What happens when you type google.com into your browser and press enter?
- How would you implement Google Search?
- Job Puzzles
- Github Awesome Interviews
- Technical Interviews Study Resources
- Top Coder revision
- Hacker Rank Cracking the Coding Interview Practices
- Algorithms tutorials by Top Coder's Data Science Community
- Lots of Cheatsheets from LifeHacker
- Yang Shun's Interview Handbook
- Programming Interviews Exposed
- 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
- Learn Data Structures from a Google Engineer
Palantir
Physics and Maths
-
CS1231 Discrete Structures
-
LSM1301 General Biology
-
MA1505 Mathematics I
-
MA1506 Mathematics II
-
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
- Final Exam Cheatsheet
- Lab Quiz Cheatsheet
-
MA2213 Numerical Analysis
-
MA2214 Combinatorics and Graphs I
-
ST2334 Probability and Statistics
-
ST2132 Mathematical Statistics
-
ST2137 Computer Aided Data Analysis
-
ST4234 Bayesian Statistics
-
PC1221 Fundamentals of Physics I
-
PC1222 Fundamental of Physics II
-
General Mathematics Stuff
Information Systems Modules
- IS1105 Strategic IT Applications
- [Jin Zhe's condensed notes](resources/IS1105/IS1105 NOTES.docx)
- IS2102 Requirements Analysis and Design
- IS2103 Enterprise Systems Development Concepts
Other NUS Modules
General Education modules
-
GEK1505 Living With Mathematics (It is similar to CS1231)
-
GEK1508 Einstein's Universe & Quantum Weirdness
-
GEK1509 Introduction To The Nanoworld
-
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
-
GET1028 Logic
Singapore Studies modules
Others
Other Modules, IDEs, Resources, Cool Stuff, ...
Other Modules
- PH1102E Introduction to Philosophy
- Jin Zhe's summarized notes
- Abraham Kang's notes
- CS2101 Effective Communication for Computing Professionals
- Reflections Blog by Ms Isabel Chew
Integrated Online IDEs
Great Tools for Drawing Diagrams
Great IDEs
- JetBrains Can get Professional Editions for free with an NUS account
- VIM
- Sublime Text
- Visual Studio Code
- Visual Studio 2015
- Tutorials Point Online IDEs
Free Academic Resources
- MIT Open Courseware
- Stanford Online
- Coursera
- Programming Books Sandbox
- 550+ Free Online Programming & Computer Science Courses You Can Start This October
Top Self-learning Resources
- Codecademy
- Codeschool
- Exercism
- Tutorial Spot
- PluralSight (free 90-day trial for students)
- Thinkster
- Code Avengers
- Treehouse
- Udacity
- FreeCodeCamp
- Khan Academy
- Awesome Courses
- Cool Youtube Channels for Learning Programming
Cool Stuff
- 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
- Collection of articles, videos, and resources made by designers at Facebook
Troubleshoot
Miscellaneous
- Jin Zhe's programming cheatsheets
- Learning Office 365 APIs in English
- CMU Grad School Talk
Building the list
- Help us build the list! (how)