MCT619 Object-Oriented Programming: Module Handbook

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

MCT619

Object-Oriented Programming
Module Handbook

Master of Science in Software Engineering &


Database Technologies (MScSED)
MCT619 Module Handbook Version
2.3

Table of Contents

1 Module Details 2
1.1 Module Description 2
1.2 Prerequisites 2
1.3 Module Objectives 2
1.4 Required Text 3
1.5 Module Assignments 3
1.6 Module Grading 4

2 Module Outline 5

3 Module Syllabus 7
3.1 Workshop One (Overview of Java Programming) 7
3.2 Workshop Two (Object-Based Programming) 8
3.3 Workshop Three (Applets and Graphical User Interfaces) 9
3.4 Workshop Four (Classes as Building-Blocks) 10
3.5 Workshop Five (Advanced OOP Concepts) 11
3.6 Workshop Six (Arrays, Collections Framework, Files & Streams) 12
3.7 Workshop Seven (Multi-Threaded Programming) 13

4 Appendices 14
4.1 References 14
4.2 Information Sources 14

1
MCT619 Module Handbook Version
2.3

1 Module Details
1.1 Module Description

MCT619, Object-Oriented Programming, provides detailed coverage of Object-Oriented


(OO) programming principles. It focuses on programming in Java, an OO language that
is modern, vendor-independent, and widely used in industry.

Recognising that programming requires skill as well as knowledge, this module places
emphasis on the practical aspects of developing significant Java programs using a
professional development environment. Students also gain practical experience of
program design, testing, and debugging.

Specifically in this module, students learn how to model objects in software, define
classes describing categories of objects, and make appropriate use of concepts such as
inheritance, composition, encapsulation, polymorphism, abstract classes, and
interfaces. As well as learning basic Java syntax and how to express OO concepts in
Java, practical topics such as applets, graphics, data storage, multi-threaded
programming, and exception handling are addressed.

1.2 Prerequisites

Students must have a good working knowledge of a procedural programming language


such as C, to the standard attained through successful completion of MCT612
Application Programming.

1.3 Module Objectives

At the end of the module, students are expected to be able to competently:

2
MCT619 Module Handbook Version
2.3

Describe in detail Object-Oriented Programming concepts (e.g.


classes, inheritance, composition, modularity, polymorphism)
Analyse and interpret complex Object-Oriented programs
written in Java
Develop Object-Oriented solutions to programming problems,
implement them in Java, test and debug them
Write code to demonstrate knowledge of array structures,
files, applets, graphical programs, multi-threaded programming,
and exceptions
Evaluate and justify decisions made in programs (e.g. selection
of data types, choice of decision and repetition structures, use of
inheritance or composition)

1.4 Required Text

Deitel, H. M., & Deitel, P. J. (2010). Java How To Program: Early Objects Version. (9th Ed.)
Upper Saddle River, NJ: Prentice Hall (Pearson Education).

1.5 Module Assignments

Details of module assignments and a sample final examination are detailed fully in the
MCT619 Facilitator Guide. Student assessment will take the form of:
Weekly programming assignments to be completed in the Virtual Lab
Participation in the weekly forum discussions
A final exam consisting of Java program development tasks and theoretical
questions

1.6 Module Grading

3
MCT619 Module Handbook Version
2.3

Assessment Weight Workshop


Forum participation 25% 1 to 7
Weekly assignments/labs 35% 1 to 7
Final exam 40% 8
Total 100%

4
MCT619 Module Handbook Version
2.3

2 Module Outline

Workshop Sections Assessment Summary


1: Overview of Overview of Object Oriented Programming Write a program for
Java Programming calculating the areas of
triangles and rectangles.
Beginning Java Programming Then write a short report
on experimenting with the
debugger.
Fundamentals of Java Syntax

2: Object-Based Control Structures and Methods Create a simple class


Programming Rectangle with attributes
length and width and then
Object-Based Programming create a more
sophisticated Rectangle
class.

3: Applets and Applets and Graphics Develop an applet that


Graphical User displays a dartboard
Interfaces pattern with equally
Graphical User Interfaces spaced concentric circles
and radial lines.

5
MCT619 Module Handbook Version
2.3

Workshop Sections Assessment Summary


4: Classes as Classes as Building Blocks 1 Develop a class called
Building-Blocks BankAccount and the
develop a class called
Classes as Building Blocks 2 LoanAccount, based on
BankAccount.

5: Advanced OOP Advanced Object-Oriented Programming Modify the Payroll system


Concepts to include an additional
Employee subclass.
Advanced OOP: Example

Advanced OOP: Exception Handling

6: Arrays, Arrays and Collections Write a Java program to


Collections read and process a text
Framework, Files file.
& Streams Files and Streams

7: Multi-Threaded Multi-Threaded Programming 1 Write three versions of an


Programming applet that bounce balls
inside of its graphics area.
Multi-Threaded Programming 2

6
MCT619 Module Handbook Version
2.3

3 Module Syllabus

3.1 Workshop One (Overview of Java Programming)

Objectives
Upon completion of this workshop, students are expected to be able to:

Explain how hardware independence is achieved


Discuss essential differences between different editions of Java
Select a development environment
Read and analyse simple Java programs
Write a Java application to perform basic computation
Compile, run, test, and debug Java programs
Compare and contrast Java and C programming
Work with variables and constants in Java
Convert between different data types
Describe and distinguish between different categories of operator

Topics Suggested Activities


Module Overview The facilitator and students introduce themselves
What's So Special About OOP? The facilitator explains module objectives, grading
Different Editions criteria, assignments and administrative matters
The facilitator and students discuss the basic
How to Write, Compile & Run a Program
module material (e.g. What are the key differences
Our First & Second Java Programs between Java and C?; Write a Java version of a C
Choosing a Java Development Environment program that youve done before.)
Debugging The facilitator reviews the concepts of the reading
Comparison of Java & C Syntax material
Data Types, Variables & Operators The class reviews the assigned learning materials
(multimedia learning objects, presentation slides,
videos, etc.)
The facilitator assists the students in getting started
with the Java Development Environment
The class work on this weeks assignment(s) in the
Virtual Lab

7
MCT619 Module Handbook Version
2.3

3.2 Workshop Two (Object-Based Programming)

Objectives
Upon completion of this workshop, students are expected to be able to:

Describe, select and use Java control structures


Define and use methods
Contrast object-oriented and procedural approaches to programming
Explain the concepts of objects and classes
Develop Java code to define classes, create objects, and work with them
Discuss and use member visibility keywords and constructors
Explain and demonstrate use of static members, getters and setters

Topics Suggested Activities


Control Structures and Methods The class discusses last weeks lab exercise
The Object-Oriented Perspective The facilitator leads a review of this workshops
Modelling Objects & Classes in Software learning materials (e.g. Real-world examples of
classes, objects, attributes and behaviours; Select
Defining a Class
an example and develop, as a group, an appropriate
Creating Objects, Using Object References Java representation of it; Technical details of
Constructors syntax)
Visibility of Class Members The class work on this weeks assignment(s) in the
"Get" & "Set" Methods, Static Members Virtual Lab

8
MCT619 Module Handbook Version
2.3

3.3 Workshop Three (Applets and Graphical User Interfaces)

Objectives
Upon completion of this workshop, students are expected to be able to:

Write and deploy basic Java applets

Develop applets and applications with simple graphics


Explain the principles of event-driven programming

Develop applets and applications with GUIs


Discuss the purpose of Java GUI Builders
Describe and use JavaBeans in GUI development

Topics Suggested Activities


Applications & Applets The class reviews last weeks assignment
Running an Applet & Basic HTML Required The facilitator leads a review of this workshops
learning materials (e.g. Writing applets with
Simple Graphics Commands
graphics, Relate Javas GUI elements to GUIs of
GUIs & GUI Components well-known programs; Event-driven programming
Event-Driven Programs in Java and how to do it in Java; Coding GUIs by hand
Using GUI Builders versus using a GUI Builder; The motivation for
JavaBeans, BeanInfo, and JAR Files JavaBeans)
The class work on this weeks assignment(s) in the
Virtual Lab

9
MCT619 Module Handbook Version
2.3

3.4 Workshop Four (Classes as Building-Blocks)

Objectives
Upon completion of this workshop, students are expected to be able to:

Explain OOP concepts covered, including encapsulation, packages,


composition and inheritance
Develop Java code demonstrating thorough understanding of these
concepts
Explain the concepts of inheritance and composition
Demonstrate an understanding of constructors, finalizers, and
garbage collection

Topics Suggested Activities


Modularity & Encapsulation The class reviews last weeks assignment
Working with Packages The facilitator leads a review of this workshops
Inheritance & the Substitutability Principle learning materials (e.g. Real-world examples of
hierarchies that could be modelled by inheritance;
The 'Object' Class
Real-world examples of composition; Select an
Composition example and develop, as a group, an appropriate OO
More about Constructors & Finalizers model of one of these real-world examples)
The class work on this weeks assignment(s) in the
Virtual Lab

10
MCT619 Module Handbook Version
2.3

3.5 Workshop Five (Advanced OOP Concepts)

Objectives
Upon completion of this workshop, students are expected to be able to:

Explain OOP concepts covered, including polymorphism, abstract


classes and interfaces
Develop Java code demonstrating thorough understanding of these
concepts
Design object-oriented programs that apply the ideas developed in
Workshops 2, 4 and 5
Implement these designs in coherent, well-structured Java code
Discuss exception handling and demonstrate how it is done

Topics Suggested Activities


Polymorphism The class reviews last weeks assignment
Abstract Classes The facilitator leads a review of this workshops
Interface Definitions learning materials (e.g.The concepts of
polymorphism, abstract classes and interfaces, and
A Worked Example
their implications in OOP; The distinctions between
Exceptions & Exception Handling abstract classes and interfaces; For the worked
example, consider & analyse design alternatives and
how they might be implemented; Practical benefits
of exception handling)
The class work on this weeks assignment(s) in the
Virtual Lab

11
MCT619 Module Handbook Version
2.3

3.6 Workshop Six (Arrays, Collections Framework, Files & Streams)

Objectives
Upon completion of this workshop, students are expected to be able to:

Describe and program with 1-D and multi-dimensional arrays, including


initialising, indexing, manipulating and examining
Explain the structure of the Collections Framework
Describe and program with the ArrayList collection class
Describe and apply the general model of file input/output in Java, and
its variations
Write code to perform input & output with text and binary files,
including random access and object serialization
Demonstrate the use of the File class for file management

Topics Suggested Activities


Arrays The class reviews last weeks assignment
Multi-Dimensional Arrays The facilitator leads a review of this workshops
Overview of Collections Framework learning materials (e.g. Using standard arrays versus
ArrayList; Relating Javas file I/O mechanisms to those
ArrayList Collection Class
encountered in other programming languages; Relating
File Input and Output in Java the File class to operations that may be performed in
Object Persistence & Serialisation an OS file manager (such as Windows My Computer
Random Access Files interface))
File and Folder Management The class work on this weeks assignment(s) in the
Virtual Lab

12
MCT619 Module Handbook Version
2.3

3.7 Workshop Seven (Multi-Threaded Programming)

Objectives
Upon completion of this workshop, students are expected to be able to:

Distinguish between threads and processes and explain what threads are
used for
Discuss issues such as Operating System dependence, life cycle, priority
and daemons
Explain the Java language constructs for writing multi-threaded
applications
Analyse and write Java code to work with threads
Discuss synchronisation, deadlocks and race conditions

Topics Suggested Activities


Processes Versus Threads The class reviews last weeks assignment
Life Cycle of a Thread The facilitator reviews with the students this weeks
Threads in Java reading material and workshop material (The
necessity for multi-threaded programming; cycle of
Examples of Multi-Threaded Programming
a thread and how this relates to Java code; multi-
Synchronisation & Deadlocks threading implementation in Java; problems that
Producer/Consumer Model may arise with synchronization; the
producer/consumer model.
The class work on this weeks assignment(s) in the
Virtual Lab

13
MCT619 Module Handbook Version
2.3

4 Appendices

4.1 References
Official Java language documentation and software downloads:
http://www.oracle.com/technetwork/java/index.html

4.2 Information Sources


Java Help Centre: http://www.java.com/en/download/help/index.xml
Discussion Forum: http://forums.oracle.com
Bruce Eckel Thinking in Java: http://www.mindview.net/Books/TIJ/
New to Java programming: http://www.ibm.com/developerworks/java/newto/
Java Tutorials: http://javaboutique.internet.com/tutorials/

14