/CS2030S-Notes

My Notes for AY21/22 Sem 2

Primary LanguageJava

CS2030S-Notes

My Notes for AY21/22 Sem 2

There are no notes made for Lecture 1 - 3; I will be making my Lab solutions private due to privacy concerns.

After completing the module, students should:

  • be confident in reading and developing medium-scale programs (up to 10K lines of code)
  • be familiarize enough with common OO concepts to understand software code written in common OO language and understand documentation of software libraries in OO
  • be able to apply OO concepts to design and implement medium to large scale programs, including
    • design and implement a class
    • decompose a problem solution into classes and define members and methods for each class
    • use polymorphism effectively
    • use inheritance to design simple class hierarchies that allow code reuse
    • trace the control flow of a programs that use dynamic dispatch
    • use encapsulation mechanisms such as interfaces, private methods/members
  • be familiarize enough with common functional programming concepts and constructs, including lambda expression, effect-free programming, first class functions, infinite streams.
  • be able to apply functional programming concepts to design and implement , including:
    • Implement basic algorithms in functions that are effect free.
    • Implement useful functions that take/return another function
    • Write correct and effective code using lambda expressions and/or infinite streams
  • be able to compare and contrast imperative programming, OO programming, and function programming paradigms, and select the most natural paradigms for each situation
  • be aware of how the OOP and FP concepts are implemented in different ways in different programming languages
  • be confident enough to learn new programming languages that uses OOP and FP paradigm
  • attain proficiency in Java 8 (and above)
  • be equipped with solid programming foundations for further studies in computer science

Please message me if you need the password to access the Lab Practices - note: I will not give the solutions unless its for practice purposes!