Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

University of Indonesia - Faculty of Computer Science

Object Oriented Design and Programming


Semester 2, 2008
Last Update: 3 February 2008

Short Description:
This course teaches the fundamental ideas behind the object-oriented approach to
programming; through the widely-used Java programming language. The course concentrates
on those aspects of the Java language that best demonstrate object-oriented principles and
good practice. The course also teaches students to describe and communicate their object-
oriented design.
Before studying this course, you should be confident of your ability to use a PC and have
some experience of writing small programs, such as that gained through study of DDP
(Dasar-Dasar Pemograman / Fundamental of Programming). You should also be able to write
short explanations of technical ideas in your own words, and be able to communicate with
others electronically.

Course Objective (as written in The Official Academic Guide 2006):


Mata ajar ini mengajarkan konsep-konsep dan teknik-teknik dasar OOP (Object-Oriented
Programming), dalam konteks pengenalan Ilmu Komputer. Bahasa yang digunakan adalah
bahasa Java. Topik-topik yang akan dibahas meliputi: elemen-elemen dasar bahasa Java,
termasuk: ekspresi, variabel, statement, method, tipe-tipe data primitif, dan pengenalan
konsep Class. Inheritance, konsruksi subclass, polimorfisme, overloading, overriding,
interface dan abstract class, access control, event handling, array dan vector. GUI (Graphical
User Interface) yang meliputi: Java Swing package, Stream dan File, Exception handling.
Pengenalan Software Life Cycle dan Object-Oriented Design dengan UML (Unified
Modelling Language)

Course Content:
In the object-oriented view of software, programs are considered to be collections of objects
that interact by sending messages to one another and reacting to the answers to those
messages. These ideas are at the forefront of modern software development.
The course takes an ‘objects first’, approach to teaching: you start seeing and interacting with
graphical objects right from the very start. This is achieved by working within innovative and
engaging micro worlds that allow you to learn some basic object-oriented principles, before
having to get to grips with Java syntax or source code.
The course will provide brief discussion on Java language construct due to the assumption
that the student should already familiar with control statements and the logic behind it from
the prerequisite course (DDP). The course will introduce the OO characteristics in Java
together with its construction. Sufficient programming exercises are given to provide student
with first hand experience on doing OO programming and design.
To facilitate the teaching of Java, the course makes use of BlueJ, an integrated development
environment (IDE) specifically developed for teaching and learning object-oriented
programming. BlueJ is used worldwide and is designed to be easy to use and places special
emphasis on visualisation and interaction techniques to provide a highly interactive
environment that encourages experimentation and exploration.
Software/Tools:
- BlueJ version 2.2, downloadable from www.bluej.org
(old version is currently available in Faculty laboratory)

- JDK 6 (including JRE 6), Sun Microsystem, downloadable from java.sun.com


(Latest version is currently avaible in Faculty Laboratory)

Textbook:
• Deitel , JAVA How to Program, 7th ed, Pearson Education, Inc., New Jersey, USA.
(available in faculty library)
Abbreviation: JHP

Reference Book:
• James Gosling, Bill Joy, Guy Steele, Gilad Bracha, The Java Language Specification 3rd
ed, Sun Microsystem 2005.
(free document)
Abbreviation: JLS
• Michael Kölling, The BlueJ Tutorial version 2. (free document)

Suggested Texts:
• Bruce Eckel, Thinking in Java, 3rd ed. Revision 4.0, Prentice Hall / Pearson Education,
2002. ISBN 0-13-100287-2
(free e-book available)
Abbreviation: TIJ
• Bruce Eckel, Thinking in Java 4th ed, Prentice Hall / Pearson Education. 2006
ISBN 0-13-187248-6
(available in faculty library)
• David J. Barnes & Michael Kölling, Objects First with Java: A Practical Introduction
using BlueJ Third Edition,
Prentice Hall / Pearson Education, 2006
ISBN 0-13-197-629X
(available in faculty library)

Assignments (subject to change)


- Four (4) Quizes
- Two (2) Individual programming assignments
- Two (2) Pair programming assignments
- One (1) Group project (programming and presentation) (group of 5-7)

Assignment's Expectation:
• Assignment 1 - Individual:
Student is expected to be able to program in java including using simple GUI,
specifically:
• understand and able to use control flow in java
• understand basic stucture of java program
• be able to create simple GUI
• understand how string is used in java
• writing well documented program
• Assigment 2 - Pair
Student is expected to be able to develop an OO program in Java. Student should :
• be able to identify the objects including its attribute and methods
• be able to differentiate between OO and non-OO approaches.
• understand how those objects combined as one application
• be able to use inheritance and polymorphism
• be able to use java library and extend it
• be able to debug their program using blueJ or JDB.
• organize 4-6 classes in their programs.
• Assigment 3 - Pair
Student is expected to understand more feature of java and OO. Student should
• be able to use exception handler
• understand abstract class and multiple inheritance
• describe the OO design using diagram
• be able to capture and analyse the problem and design an OO solution
• be able to use exception handler appropriately.
• organize 6-8 classes in their programs.
• Assigment 4 - Individual
Student is expected to able to do design and programming in OO and Java. Student is
expected to...
• be able to show modularity in their OO design.
• understand the weakness and strength of OO and Java.
• understand inner class and its uses
• understand and use java library for datatype and collection
• understand generic programming in java (generic java)
• be able to avoid runtime error because of casting
• organize 6-8 classes in their programs.
• Assigment 5 – Group Projects ( group of 5 or 7)
Student is expected to be able to develop a project based on OOP. Student should
• be able to apply OOP methodology and follows the phases
• be able to show the advantages of using OO and Java compare to non-OO
approaches.
• be able to capture a more complex problem and design an OO solution of it.
• be able to communicate their design.
• be able to work in team.
• organize 10-15 classes in their programs.

Lab Activities and Exercises:


• 2 hours perweek by student asistants (see teaching plan)
• During lab activities, students are expected to do and submit the given exercises.

Grading Scheme:
20% Mid Exam
10% Programming Exam
25% Final Exam (it covers all materials)
20% Programming Assignment (Assignment 1-4)
10% Group Project (Assignment 5)
15% Quiz (inc. Forum Discussion Activities)
Final grades are based on normal distribution curve.
Teaching Plan:

Week Title Material Covered Reading Material Tutorial (2 hours) Milestone/Notes


1 Course Overview • Course rules JHP Ch 1, 2 • Introduction to JDK
Introduction to Objects • Overview TIJ Ch 1, 2 (lecture) • First simple program:
• What is object JLS Helloworld
• History of OO TIJ Ch 3 (tutorial) • String
• Why OO • Running
• OO characteristic • Compile
• running and compiling java
• Introduction to GUI and applet
• Introduction to UML
2 Basic Java dan OO • Introduction to Class JHP Ch 3 Announce
• Statement Control in java TIJ Ch 4,5 (lecture) • Simple GUI Assignment 1
• Initialization • Applet
• Object creation and lifetime • JavaDoc
• Constructor
• Instance variable, set and get method
• Primitive data type in Java
3 Methods, Access • Method signature JHP Ch 3, 8 • Introduction to BlueJ
Specifiers • Method overloading TIJ Ch 4,5 • Running java in BlueJ Quiz 1
• This keyword BlueJ Tutorial (tutorial) • Debugging in BlueJ Assignment 5 –
• class access and access specifiers • Worksheet: BlueJ Group Project is
(public, private, protected) announced.
• static vs non-static field
4 Arrays • Declaring and creating arrays JHP Ch 7 • Assignment 1 Assigment 1
• Enhanched for statement (individual) submitted and
• Passing arrays to method graded by
• Multidimensional arrays assistant during
• Using command-line argument tutorial
5 Reusing Class • Why reuse JHP Ch. 8,9
• Composition TIJ Ch 6 • Worksheet: Class Assignment 2 is
• inheritance BlueJ Tutorial (tutorial) Diagram announced!
• casting
• class loading
• final keyword
6 Polymorphism • upcasting JHP Ch. 10 • Worksheet:
• covariant return type TIJ Ch 7 polymorphism Quiz 2.
• constructor and polymorphism
• designing with inheritance
• abstract class
• interface
7 GUI and Applet • Swing JHP Ch. 11,12 • Assignment 2 (pair Assigment 2
• Applet programming) submitted and
graded by
assistant during
tutorial
8 Mid Test Assignment 3 is
Review Mid Test • Tutorial for Midtest announced
9 Error Handler with • Basic exception JHP Ch. 13
exception • Catching an exception TIJ Ch. 9 • Worksheet: exception
• Creating your own exception handler
• Java Standard exception
• exception restriction
• alternative approaches
• guidelines and pitfalls
10 Files and Streams • Data hierarchy JHP Ch 14 • Read – Write files
• Class File • Worksheet : object
• Sequential-access text file serialization
• Object serialization
11 Collection of Objects • containers & iterator JHP Ch. 19 • Assignment 3 (pair Assignment 3
• package programming) submitted and
• container taxonomy graded by
• Java dataype library (API) assistant during
tutorial.
12 Inner Classes • what is inner class and why TIJ Ch 8 • Inner Classes
• creating inner class • Worksheet : inner class Assignment 4 is
• upcasting and inner class announced.
• anonymous inner class
• nested classes
• inheritent and overiding in inner class
• local inner class
• inner class identifier
13 Detecting Type and • Introduction to Generic Programming JHP Ch. 18 • Generic Java
Generic Java • Why Generic TIJ Ch 10 • Worksheet: Generic Quiz 3
• Run time information
• Reflection
14 Analysis and Design of • Methodology TIJ Ch 16 • Assignment 4
OOP • UML ( Class and use case diagram) (individual) Assignment 4
• OOP Guidelines submitted.
• Management obstacles
15 Programming Exam
16 Final Exam • Assignment 5 (Team) Assignment 5
submitted before
Final Exam
17 Assignment 5: Assignment 5
presentation and oral graded by
evaluation. lecturer
18 Publishing Final Grade Two weeks after
exam.

You might also like