CM1210: Object Oriented Java Programming

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CM1210
External Subject Code 100960
Number of Credits 20
Level L4
Language of Delivery English
Module Leader Dr Matthew Morgan
Semester Spring Semester
Academic Year 2018/9

Outline Description of Module

The aim of this module is to provide students with the fundamental programming and problem solving skills necessary to develop an understanding of Object Oriented Programming. It will also introduce fundamental data structures and algorithms used in Computational systems. This knowledge will serve as a foundation for future taught modules. Focus on Object Oriented Design will be delivered through the use of core worked examples that will be built upon throughout lab-based sessions.

 

On completion of the module a student should be able to

1. Develop a Object-Oriented program that has input and output functionality and that is event driven
2. Show fluency in selecting and using basic components in the Java language
3. Show an understanding of the theoretical underpinnings of the Java language
4. Implement basic data structures and algorithms
5. Analyse and describe the performance of data-structures and algorithms
6. Deliver technical reports on Object-Oriented systems

How the module will be delivered

The module will be delivered through a combination of lectures, supervised lab sessions, example classes and tutorials as appropriate.

Skills that will be practised and developed

Computer programming;
Object oriented programming
Programming in Java
Writing platform-agnostic Java code
Implementing basic data structures
Implementing simple algorithms
Understanding the performance of data structures and algorithms
Problem solving skills.
Creating professional reports communicating technical details of object oriented software and the data structures and algorithms underpinning it
Using IDEs for software development
 

How the module will be assessed

Continual assessment/Lab assessment:  Continual assessment will aid progress towards achieving the learning outcomes of the module.
Coursework: The coursework will allow the student to demonstrate their knowledge and practical skills and to apply the principles taught in lectures.

The potential for reassessment in this module is an individual 100% coursework during the summer.

Assessment Breakdown

Type % Title Duration(hrs)
Practical-Based Assessment 50 Java Implementation Skills N/A
Practical-Based Assessment 50 Data Structures And Algorithms In Java N/A

Syllabus content

Java Fundamentals
Introduction to data types, identifiers, variable declarations, constants, comments, program output and simple arithmetic operations.
Programming style conventions.
Decision Structures
Relational operators/expressions
Control the flow of a program with if /switch statements and conditional/logical operators
Comparing Objects and primitive types
Control Structures & Files
Control structures
Counters, accumulators, running totals, sentinels and other application/related topics are explored
Basic read/write file operations
Methods
Explore the various ways of writing methods
Functional decomposition
Classes
Class fields/methods, constructors, overloading, packages and imports.
Static method/fields, interaction between objects, passing objects as arguments and returning objects.
Aggregation and enumerated types
Garbage collection
Input Processing
Introduction to wrapper Classes
Character Class, String Methods, tokenizing Strings
Wrapper Classes for numeric data
Inheritance
Chains of inheritance
The Object class
Polymorphism
Abstract Classes/Methods
Exceptions Handling
Handling Exceptions
Throwing Exceptions
Polymorphism
Implementing basic data structures
Linked Lists
Stack
Queue
Implementing simple algorithms
Simple search algorithms
Understanding the performance of data structures and algorithms
Creating professional reports communicating technical details of object oriented software and the data structures and algorithms underpinning it
Using IDEs for software development

 

Essential Reading and Resource List

The Java Class Libraries Second edition Vol 1&2  by Chan Lee 
      (Core JAVA series from SUN) 
JAVADOC’s online at:   
      http://docs.oracle.com/javase/7/docs/api/


Copyright Cardiff University. Registered charity no. 1136855