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 2024/5

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 

How the module will be delivered

Modules will be delivered through blended learning. You will be guided through learning activities appropriate to your module, which may include: 

on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes), 

on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) 

face to face small group sessions (e.g. help classes, feedback sessions) 

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. 

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

A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations 

Students will be provided with reassessment opportunities in line with University regulations. 

 

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 

Communicating technical details of object oriented software and the data structures and algorithms underpinning it 

Using IDEs for software development 


Copyright Cardiff University. Registered charity no. 1136855