2017 Object-Oriented Programming

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Kobayashi Takashi  Gondow Katsuhiko  Inoue Nakamasa 
Course component(s)
Lecture / Exercise     
Day/Period(Room No.)
Mon3-4(W611)  Thr3-4(W611)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

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

Student learning outcomes

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

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

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

  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

Reference books, course materials, etc.

The Java Language Specification (3rd Ed.) (http://java.sun.com/docs/books/jls/)

Assessment criteria and methods

Program exercises (50%): Solve programming exercises at computer center.
Final exam (50%): Examination on above mentioned outcomes.

Related courses

  • CSC.T243 : Procedural Programming Fundamentals
  • CSC.T253 : Advanced Procedural Programming
  • CSC.T263 : Functional Programming Fundamentals
  • CSC.T361 : Object-Oriented Design
  • CSC.T354 : Parallel Programming
  • CSC.T241 : Fundamentals of Computing

Prerequisites (i.e., required knowledge, skills, courses, etc.)

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.

Page Top