30220382 (Object-Oriented Programming)

Course Name: Object-Oriented Programming

Course Number: 30220382

Program: Undergraduate program

Type: Elective

Credits: 2

Term Offered: Spring

Prerequisite(s):  Computer Program

Instructor(s): Ying Chen


Bruce Eckel, Thinking In Java (3rd Edison), Prentice Hall PTR, 2002.


Harvey M. Deitel and Paul J. Deitel, Java How to Program (7th Edison), Prentice Hall, 2007.

James Gosling, Bill Joy, Guy Steele and Gilad Bracha, Java Language Specification(3rd Edison), ADDISON-WESLEY,2008.

Course Description:

The course is mainly about the Object-Oriented Programming concepts, basics of the Java programming language and modern software development methodology such as version control and unit testing.

Course Objectives and Outcomes:

Numbers in brackets are linked to department educational outcomes

1.Students could grasp object-oriented programming concepts; learn to think as a programmer and know about the modern software engineering techniques. [4,10]

2.Students should skillfully master the Java language, which may be used in the further study and research.  [1,3,5,11]

3.Students could develop skills for team working. [7]

4.Give student a brief introduction about modern power systems and train them to model power system in a object-oriented language [1,5,11]

Course Topics:

1.Introduction to Object-Oriented Programming and Java Language

2.Language Basics I:  variables, arrays, operators ,expressions, statements and control flow statements,

3.Language Basics II: class , interface , package ,exception

4.The Java IO System

5.The Java Data Structure : List, Set, Hash Map, Properties, Enumerations

6.Introduction to UML

7.Java Design Patterns: Factory ,Adapter, Proxy ,Composite, Decorator

8.Java GUI Development

9.Team Programming: version control, SVN, unit testing

10.Java Multiple Threads Programming

11.Java Network Programming

12.Java Database Programming

13.Java and XML

Experiment(s): Programming experiments, which are the entitled as projects as follows.


Java Hello World

 Getting started with the Java programming language, install JDK (Java Development Kit) and JRE (Java Runtime Environment), write the first java program, then compile and run it

Programming practice

Some programming exercises which help students to understand class, interface and exception

Design and Implement of power systems data file parser

Use knowledge learned in Java IO and Java Data Structure to design and implement a parser to parse a data file from real power systems

Java GUI Design

Design and Implement a Java GUI by using NetBeans, and then reappear it by only using notepad and JDK

Java Game: word guessing

Write the first Java game: the program show you a word spelled in wrong order and you try to guess it

Design and Implement of alarm clock

Use knowledge learned in Java multiple threads programming and Java GUI development to design and implement a virtual alarm clock

Final Project: Design and Implement of simple power system simulator

All of the students are divided into several group, a group write a program to simulate the simplified behavior of power dispatch centre, the others write programs to simulate the simplified behavior of power plant or transformer substation. All of the programs communicate with others using socket to keep the power balance of the whole system.

Course Assessment:

  Programming experiments, 60 points(10*6),

  Final project, 40 points.