2022 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    (Face-to-face)
Media-enhanced courses
Day/Period(Room No.)
Mon3-4(W611,情報工学系計算機室)  Thr3-4(W611,情報工学系計算機室)  
Group
-
Course number
CSC.T273
Credits
2
Academic year
2022
Offered quarter
4Q
Syllabus updated
2022/4/20
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) : abstract class, delegation Explain abstract class, delegation
Class 7 Characteristics of OOP (2) : sub type and parametric polymorphism (Generics) Explain sub type and parametric polymorphism
Class 8 Exercise: Polymorphism Write a simple program in Java with polymorphism, abstract class, delegation
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 T2SCHOLA.

Reference books, course materials, etc.

David J. Eck, Introduction to Programming Using Java, Eighth Edition, (Online textbook: https://math.hws.edu/javanotes/)

Assessment criteria and methods

Program exercises (50-60%): Solve programming exercises at computer center or online.
Final exam (50-40%): Paper or online 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