Skip to main content

Unit information: Object-Oriented Programming with Java in 2023/24

Unit name Object-Oriented Programming with Java
Unit code COMSM0086
Credit points 20
Level of study M/7
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Lock
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

COMSM1201 Programming in C

Units you must take alongside this one (co-requisite units)

COMSM0085 Overview of Software Tools

COMSM0110 Overview of Software Engineering

Units you may not take alongside this one

None.

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Why is this unit important

This unit provides an opportunity to apply the programming skills developed in previous units, whilst at the same time being exposed to advanced development tools and techniques that will prove to be invaluable in your final major project and your career beyond university. This unit emphasises the point that being a developer is not just about “cutting code” but also encompasses key skills such as analysis, design, debugging and testing.

How does this unit fit into your programme of study

This unit builds upon the fundamentals delivered in the C programming unit from TB1, but also provides an opportunity to apply tools and techniques being taught in the parallel Software Tools and Software Engineering units to systems of non-trivial size.

Your learning on this unit

An overview of content

The Syllabus includes:

  • Object-Oriented Design: objects, classes, abstraction, encapsulation, polymorphism, inheritance, interfaces, coupling, cohesion, code reuse, refactoring, design patterns, design methods, UML, testing.
  • Programming in Java: characteristics of Java, comparison with other languages, syntax and semantics, how Java implements object-oriented design concepts, Java's APIs.
  • Advanced Subjects: various advanced subjects in programming, and Java's handling of them, will be briefly introduced. Among others, these may include script programming, data structures from the Java libraries, Graphical User Interfaces, concurrent programming and networking.

How will students, personally, be different as a result of the unit

By the end of this unit students, will be able to program in the Java language, have a good understanding of how good program design can help you, how to produce it and how to implement it in Java.

Learning Outcomes

On successful completion of this unit, students will be able to:

  • Evaluate program design; [ILO1]
  • Design good object-oriented programs; [ILO2]
  • Implement [ILO3a], test [ILO3b], maintain [ILO3c] refactor [ILO3d] medium sized applications in Java.

How you will learn

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities supported by drop-in sessions where necessary. The core student learning activities will be a series of self-directed programming exercises, which culminate in the assessed exercises.

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

A series of programming exercise in Java will provide a problem-led-learning backbone to the unit. Delivery of teaching materials on the unit will be driven by and synchronised with the knowledge required by students in completing these formative tasks. The knowledge, skills and techniques required by these formative assignments will be mirrored by those required in the final summative assessments.

Tasks which count towards your unit mark (summative):

Two significant pieces of summative coursework will form the assessment for this unit. You will be marked both on the correctness and on the quality of your implementations. The first assessment occurs before the Easter break and the second afterwards towards the end of the unit.

Specific details on the 2 assignments and their links to the ILOs are as follows:

Assignment 1 (40%)

Evaluating Design Patterns: Use of basic/simple patterns (e.g. augmenting object operations) [ILO1]

Designing OO Programs: Internal design considerations (granularity, size, depth and complexity) [ILO2]

Implementation: Use of core/basic APIs (e.g. File API) [ILO3a]

Testing: Basic usage of testing frameworks (i.e. running existing tests) [ILO3b]

Maintenance: Applying coding standards (to ease maintenance) [ILO3c]

Assignment 2 (60%)

Evaluating Design Patterns: Use of more complex/advanced patterns (e.g. transversal, decision etc.) [ILO1]

Designing OO Programs: External structural and relational aspects [ILO2]

Implementation: Use of advanced APIs (e.g. collections, parsing etc.) [ILO3a]

Testing: Creation of appropriate test cases for frameworks [ILO3b]

Refactoring: Refactoring to avoid replication [ILO3d]

When assessment does not go to plan:

Reassessment will involve a hybrid of both assignments, combining features of both (in order to cover all ILOs) in an exercise that will be achievable within the summer resit timeframe.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMSM0086).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.

Feedback