AY2016/2017 Semester 1
School of Computing
National University of Singapore
Taught by Martin Henz and Low Kok-Lim
CS1101S is a module taught in the Department of Computer Science at the NUS School of Computing. It serves as a rigorous and thorough introduction to programming methodology. The module follows the didactic strategy of the classic textbook Structure and Interpretation of Computer programs (SICP), which Harold Abelson and Gerald Jay Sussman developed for MIT introductory programming class 6.001.
It is taught in Source, a sub-language of JavaScript. The module is run on a digital platform, called Source Academy.
I was an Year 1 undergraduate student at NUS when taking this course. My major is Computer Engineering. I love programming and solving challenges. I received NUS Science & Technology (S&T) Scholarship and had good academic results.
- Website: yunpengn.github.io
- Email: [email protected]
- Facebook: @Yunpeng Niu
- LinkedIn: @Yunpeng Niu
Yunpeng has served as tutor for CS1101S twice, in AY2017/2018 Semester 1 and AY2018/2019 Semester 1 respectively. To give back to the community and benefit students from the future batches, Yunpeng has decided to open-source his slides for the tutorial sessions.
Detailed description for 2017 version can be found here.
- Week 1: Introduction & Administration
- Week 2: Computation, Source Language & Abstraction
- Week 3: Abstraction, Recursion & Order of Growth
- Week 4: Recursion & Higher-order Programming
- Week 5: Data Abstraction & List Processing
- Week 6: List & Tree Processing
- Week 7: Data Structure Design & Mid-term Review
- Week 8: Language Processing & LEGO Programming
- Week 9: Mutable Data & Array
- Week 10: Memoization & Object-oriented Programming
- Week 11: Object-oriented Programming
- Week 12: Meta-circular Evaluator
- Week 13: Web Development & Final Review
Detailed description for 2018 version can be found here.
- Week 1: Introduction & Administration
- Week 2: Computation, Source Language & Abstraction
- Week 3: Abstraction, Recursion & Order of Growth
- Week 4: Higher-order Programming & Language Processing
- Week 5: Data Abstraction & List Processing
- Week 6: List & Tree Processing
- Week 7: LEGO Programming, Sorting & Mid-term Review
- Week 8: Data Structure Design & Stateful Programming
- Week 9: Environment Model, Array & Loop
- Week 10: Iteration & Memoization
- Week 11: Stream
- Week 12: Object & Meta-circular Evaluator
- Week 13: Web Development & Final Review