Object-Oriented Programming

Module description

This module will introduce you to object-oriented problem-solving methods and provide you with object-oriented (OO) techniques for the analysis, design and implementation of solutions. You will be introduced to these concepts and develop skills with a new programming language, and you will learn to apply these skills to design and implement small applications.



Full module specification

Module title:Object-Oriented Programming
Module code:ECM1410
Module level:1
Academic year:2014/5
Module lecturers:
  • Professor Jonathan Fieldsend - Convenor
Module credit:15
ECTS value:



ECM1408, ECM1409 or equivalent

Duration of module: Duration (weeks) - term 1:


Duration (weeks) - term 2:


Duration (weeks) - term 3:


Module aims

The module aims to provide you with a thorough grounding in the fundamentals of object-oriented design concepts, alongside the fundamentals of the Java programming language, and general object-orientated design concepts. It will also introduce you to widely used components of the unified modelling language (UML), and teach you how to interpret and implement a Java program from these higher-level designs.

ILO: Module-specific skills

  • 1. demonstrate an appreciation of object-oriented modelling techniques;
  • 2. interpret and modify program fragments in an object-oriented language;
  • 3. follow an object-oriented development method to produce a design from a specification;
  • 4. systematically test programs developed;
  • 5. document software to accepted standards.

ILO: Discipline-specific skills

  • 6. interpret a requirements specification;
  • 7. systematically break down a problem into its components;
  • 8. understand and choose between programming languages, and basic techniques.

ILO: Personal and key skills

  • 9. use technical manuals and books to interpret technical errors;
  • 10. analyse a problem and synthesise a solution.

Learning activities and teaching methods (given in hours of study time)

Scheduled Learning and Teaching ActivitiesGuided independent studyPlacement / study abroad

Details of learning activities and teaching methods

CategoryHours of study timeDescription
Scheduled learning and teaching activities 22Lectures
Scheduled learning and teaching activities 20Workshops/tutorials
Scheduled learning and teaching activities 9Surgeries
Guided independent study54Individual assessed work
Guided independent study45Wider reading and exam preparation

Formative assessment

Form of assessmentSize of the assessment (eg length / duration)ILOs assessedFeedback method
Practical programming assignments and formative class test23 hoursAllIn model answer discussion in surgeries
Formative class test1 hourAllWritten on marked class test, and model answer discussion in surgeries

Summative assessment (% of credit)

CourseworkWritten examsPractical exams

Details of summative assessment

Form of assessment% of creditSize of the assessment (eg length / duration)ILOs assessedFeedback method
Written exam - Closed book702 hours1, 2, 3, 6, 7, 8None (can request marked scripts)
Coursework – Practical programming assignments 3030 hoursAllComments directly on individual code, on individual feedback sheet, and in model answer discussion in surgeries.

Details of re-assessment (where required by referral or deferral)

Original form of assessmentForm of re-assessmentILOs re-assessedTimescale for re-assessment
All aboveWritten exam (100%)AllAugust Ref/Def period

Re-assessment notes

Reassessment will be by examination only. For referred candidates the mark will be capped at 40%. Deferred candidates will be awarded the higher of the uncapped exam mark alone and the uncapped exam mark combined with marks for previously completed coursework in the ratio 70:30.

Syllabus plan

The module syllabus is based on the three themes below, each individual topic listed being related to at least one of these themes:

- introduction to object-oriented concepts and fundamentals: classes, methods, attributes, procedural versus object-oriented programming, object state, scope, inheritance (single and multiple), polymorphism, object persistence;

- programming in the Java language: overview (compilation, intermediate and machine code, virtual machines), Java primitives, fundamental classes, conditionals, variables, statements, equivalence, passing by value, iteration, arrays as objects, assertions, exceptions, stack and heap, packages, shadowing versus overriding;

- design documentation tools: the unified modelling language (UML): UML Algorithms, UML class diagrams, UML advanced class diagrams, UML state machine diagrams, UML sequence diagrams, programming by contract, JavaDoc, annotations.

Indicative learning resources - Basic reading

ELE – http://vle.exeter.ac.uk

  1. Introduction to Programming and Object Orientated Design Using Java,James Nino and Frederick A. Horsch,3rd,Wiley,2008
  2. Learning UML 2.0,Miles, Russell, Hamilton, Kim,,O'Reilly,2006,005.117 MIL,978-0596009823
  3. Objects first with Java: a practical introduction using BlueJ,Barnes, D, Kolling, M,5th,Pearson,2012,005.133 BAR,978-0132835541
  4. Learning Java,Niemeyer, Patrick and Knudsen, Jonathan,3rd,O'Reilly,2005,001.6424/JAV NIE
  5. Java Cookbook,Darwin, Ian,2nd,O'Reilly,2004,001.6424/JAV DAR,978-0596007010
  6. Effective Java: Programming Language Guide ,Bloch, Joshua,2nd,Addison Wesley,2008,001.6424/JAV BLO,978-0321356680
  7. Developing Java Software,Winder, Russel and Roberts, Graham,3rd,Wiley,2006,001.6424/JAV WIN

Module has an active ELE page?


Indicative learning resources - Web based and electronic resources

Downey, Allen "How to think like a Computer Scientist: Java version", 4th Edition, Green Tree Press (2004).

This is an open source book and is available freely online at

Origin date


Last revision date