Programming Fundamentals II

Professor: Matthias Hauswirth
Assistant: Steven Mudda
Assistant: Mohammad Azadmanesh
Assistant: Randolf Schärfig

Course type: Theory and Laboratory
Value in ECTS: 8
Bibliographic references available on the University Library website


Academic year 2012/13 - Spring semester

Prerequisites:
- pass (or eligibility to do the retake exam for) Programming Fundamentals I
- pass (or eligibility to do the retake exam for) Software Atelier I
- pass (or eligibility to do the retake exam for) Computer Architecture
Co-requisite: Software Atelier II

Objectives
In this course you will learn how to develop object-oriented programs with Java.

Contents
After exposure to functional programming in Programming Fundamentals I, Programming Fundamentals II introduces students to the object-oriented programming paradigm. The course is based on the Java programming language. While the course covers imperative programming concepts such as variables and iteration, the main focus is on object-oriented thinking, design, and programming. The topics covered include: classes and objects, interaction between objects, grouping of objects, use of class libraries, creating well-behaved objects, coupling and cohesion, inheritance and polymorphism, interfaces and abstract classes, graphical user interfaces, exception handling, and object-oriented design.

Teaching mode
In this course we will use the conversational classroom teaching approach.
Students are expected to read the assigned readings before class. During class sessions we discuss remaining questions and problems. The course is heavily based on the textbook and the BlueJ educational interactive development environment. The homework assignments mostly consist of assignments that require students to work through the engaging exercises in the text book.
During the second half of the course, students will work on a group project in parallel to the regular readings and class sessions. The projects allow students to apply and deepen their object-oriented programming skills to develop a significant application.

References
Objects First with Java, 4th Edition (ISBN: 0-13-606086-2)