2021 Object-Oriented Programming

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Kobayashi Takashi  Moriguchi Sosuke 
Class Format
Lecture / Exercise     
Media-enhanced courses
Day/Period(Room No.)
Mon3-4(W621)  Thr3-4(W621)  
Group
-
Course number
CSC.T273
Credits
2
Academic year
2021
Offered quarter
4Q
Syllabus updated
2021/3/19
Lecture notes updated
-
Language used
Japanese
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

Keywords

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, runtime and basic syntax of Java
Class 3 Exercise: Basic syntax and APIs of Java Write a simple program in Java with basic syntax and APIs of Java
Class 4 Characteristics of OOP (1) : Encapsulation, inheritance, multiple and single inheritance Explain encapsulation, inheritance, multiple and single inheritance
Class 5 Exercise: Encapsulation, inheritance Write a simple program in Java with encapsulation, inheritance
Class 6 Characteristics of OOP (2) : polymorphism, abstract class, delegation Explain polymorphism, abstract class, delegation
Class 7 Exercise: Polymorphism Write a simple program in Java with polymorphism, abstract class, delegation
Class 8 Modularization and functional independence Explain modularization and functional independence
Class 9 SOLID principles Explain SOLID principles
Class 10 Exercise: SOLID principles Write a program in Java based on SOLID principles
Class 11 Java API (I/O, String manipulation) Explain the features of major Java APIs for I/O, String manipulation.
Class 12 Exercise: Java API (I/O, String manipulation) Write a simple program with Java API (I/O, String manipulation)
Class 13 Java API (Java Streaming API) Explain the essential features of Java Streaming API
Class 14 Exercise: Comprehensive Exercise Write programs in Java by using abstraction with hierarchical class definition.

Out-of-Class Study Time (Preparation and Review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.

Textbook(s)

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.

Other

You will need to do a lot of work to follow this course: read reference books, run and explore program examples.

Page Top