This course presents the principles behind object-oriented programming (OOP) and its computational mechanism. The cource introduces the characteristics and design principles of OOP languages which lead to improved maintenability and reusability.
The course aims to provide students with the ability to write a program by using abstraction and programming technique with hierarchical class definition through programming exercises in Java with typical APIs
By the end of this course, students will be able to:
(1) write object-oriented programs
(2) write maintainable code with inheritance and delegation
(3) write syntactically correct Java programs
(4) use typical APIs of Java
class and object, inheritance, polymorphism, dynamic binding, encapsulation, delegation
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | ✔ Practical and/or problem-solving skills |
Each week of the course consists of a lecture-style lesson at lecture room and an individual programming exercise at computer center.
Course schedule | Required learning | |
---|---|---|
Class 1 | Introduction and object-oriented paradigm and object-oriented programming language | Explain object-oriented paradigm and characteristics of object-oriented programming language |
Class 2 | Characteristics and Runtime of Java | Explain characteristics and runtime of Java |
Class 3 | Basic syntax and APIs of Java | Understand basic syntax and APIs of Java |
Class 4 | Exercise: Basic syntax and APIs of Java | Write a simple program in Java with basic syntax and APIs of Java |
Class 5 | Characteristics of OOP (1) : Encapsulation, inheritance, multiple and single inheritance | Explain encapsulation, inheritance, multiple and single inheritance |
Class 6 | Exercise: Encapsulation, inheritance | Write a simple program in Java with encapsulation, inheritance |
Class 7 | Characteristics of OOP (2) : polymorphism, abstract class, delegation | Explain polymorphism, abstract class, delegation |
Class 8 | Exercise: Polymorphism | Write a simple program in Java with polymorphism, abstract class, delegation |
Class 9 | Modularization and functional independence | Explain modularization and functional independence |
Class 10 | SOLID principles | Explain SOLID principles |
Class 11 | Exercise: SOLID principles | Write a program in Java based on SOLID principles |
Class 12 | Java API (I/O, String manipulation) | Explain the features of major Java APIs for I/O, String manipulation. |
Class 13 | Exercise: Java API (I/O, String manipulation) | Write a simple program with Java API (I/O, String manipulation) |
Class 14 | Java API (Java Streaming API) | Explain the essential features of Java Streaming API |
Class 15 | Exercise: Java API (Java Streaming API) | Write a simple program with Java Streaming API |
None. Slides used in this course can be found on OCW-i
The Java Language Specification (3rd Ed.) (http://java.sun.com/docs/books/jls/)
Program exercises (50%): Solve programming exercises at computer center.
Final exam (50%): Examination on above mentioned outcomes.
The course is designed for students with some procedural programming. CSC.T243 : Procedural Programming Fundamentals,CSC.T253 : Advanced Procedural Programming, CSC.T263 : Functional Programming Fundamentals.
You will need to do a lot of work to follow this course: read reference books, run and explore program examples.