Object Oriented Programming
Course infoSchedule
Course moduleNWI-IPI005
Credits (ECTS)6
CategoryB1 (First year bachelor)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
PreviousNext 1
M.A.A. Klinik
Other course modules lecturer
dr. P.W.M. Koopman
Other course modules lecturer
dr. P.W.M. Koopman
Other course modules lecturer
dr. P.W.M. Koopman
Other course modules lecturer
Contactperson for the course
dr. P.W.M. Koopman
Other course modules lecturer
Academic year2018
KW3-KW4  (28/01/2019 to 01/09/2019)
Starting block
Course mode
RemarksAs of 2017, this course is taught in English.
Registration using OSIRISYes
Course open to students from other facultiesYes
Waiting listNo
Placement procedure-
This course teaches you to design and implement object oriented programs. This includes:
  • using inheritance and interfaces.
  • using and extending given classes.
  • understanding the memory model of Java.
  • using generics.
  • using enumeration types as classes.
  • understanding and applying collections like lists and the associated iterators.
  • applying UML in the design of object oriented programs.
  • apply software patterns.
  • develop and use JUnit tests.
  • use object oriented GUI libraries and event driven programming.
  • divide the work over threads, synchronize threads, handle race-conditions, avoid deadlock.
Object orientation (OO) offers a framework to design and implement reusable software. We will use Java to illustrate the principles of object orientation.

Objects and their relations provide a conceptual framework that can be used for analysis, design and implementation. In this course you will learn the principles of OO analysis (OOA) and OO design (OOD). You also learn to realize these designs in an object-oriented program.
Abstraction and encapsulation are the most important properties of the object-oriented paradigm. Through these concepts, a representation of the behavior and structure of an object can be given independently of its realization.

This course is aimed at the development of object-oriented design and programming skills. The programming language used is Java. In this language the concept of class is central. A class is a blueprint for the objects, and consists of attributes (the condition of the object) together with operations (the so-called methods) with which we can edit an object.
Additional comments
This course is part of the first year of the bachelor Computing Science and also of the first year of Artificial Intelligence. Note: this is not the course for Science students; please see NWI-MOL098 for that course.

The recommended book has been updated to the 11th edition.

• types, classes, objects, methods, attributes
• controlstructures and datastructuren in Java
• abstraction and inheritance
• input/output and graphic interfaces (JavaFX)
• iterators
• interfaces and implementations thereof
• threads
• exceptions
• object oriented analysis and design
• design patterns
• testing (Junit)

Test information
The course is completed with a written (digital) exam. In order to participate in the exam you must have participated seriously in the computer practicum. This means you must have completed all assignments or at least have made a serious attempt to do so.

The ability to program using an imperative programming language, for example, by having completed the course Imperative Programming successfully.

Recommended materials
Introduction to Java Programming, Comprehensive Version: Global Edition, 11/e, Y Daniel Liang, ISBN: 9781292221878 (Note: 11th edition)

Instructional modes
Course occurrence


Practical computer training



Test weight1
Test typeDigital exam with TAO
OpportunitiesBlock KW4, Block KW4