Click here to start your application. Apply now

Academic Handbook Postgraduate Programmes

Object-Oriented Design Course Descriptor

Course Title Object-Oriented Design Faculty Philosophy
Course code NCHCS774 Course Leader TBD
Credit points 15 Teaching Period TBD
FHEQ level Level 7 Date approved January 2021
Compulsory/ Optional  Compulsory
Pre-requisites None
Co-requisites None

Course Summary

This course offers students an opportunity to deepen their understanding of the concepts and practice of program design: learn how to design and codify software components using object-oriented design principles and, more generally, best programming practices. The course equips students with practical program design skills via case studies in modern software libraries and hands-on coding sessions in Java and/or Python.

In this course, students will learn how to represent data and methods that manipulate that data using classes (or objects); and how to use object-oriented design patterns to design and implement more complex compositions.

This course is suitable for graduate students of disciplines other than computing who are keen to acquire new (or deepen existing) knowledge of programming.

Course Aims

The aims of this course are to:

  • Become a good programmer: design, debug and test your software solutions.
  • Consistently write good programs: correct, clear, well-structured, and well-documented.

Learning Outcomes

On successful completion of the course, students will be able to:

Knowledge and Understanding

K1d Systematically understand the domain of object-oriented program design.
K2d Develop a critical awareness of essential object-oriented design patterns and best practices to design and implement small to moderately sized programs.
K3d Understand the impact of program design decisions on the technical, social and management dimensions of software.

Subject Specific Skills

S1d Create and revise suitable program designs for a given software problem specification.
S2d Implement a given software design with understandable, well-structured, well-tested and well-documented code.
S3d Become a software developer familiar with best programming practices to deliver correct, well-designed code.

Transferable and Professional Skills

T1d Participate in the design and implementation of software projects.
T2d Review and defend program design choices to a group of peers, identify limitations and propose ways for improvement.
T3d Consistently display an excellent level of technical proficiency in written English and command of scholarly terminology, so as to be able to deal with complex issues in a sophisticated and systematic way.
T4d Understand the design of existing software libraries and frameworks to integrate them appropriately in new software projects.

Teaching and Learning

Teaching and learning strategies for this course will include: 

  • 15 (10 x 1.5) hours of full-cohort lectures
  • 15 (10 x 1.5) hours of lab sessions 
  • 20 (10 x 2) office hours 

There will be one lecture and one lab session per teaching week, 11/2 hours each. Lab sessions give students the opportunity to work on their (formative and summative) assignments with the help of the course leader and teaching assistants.

Course information and supplementary materials are available on the University’s Virtual Learning Environment (VLE).

Students are required to attend and participate in all the formal and timetabled sessions for this course. Students are also expected to manage their directed learning and independent study in support of the course.

Employability Skills

  • Communication skills
  • Presentation skills
  • Programming skills

Assessment

Formative

Students will be formatively assessed during the course by means of set assignments. These do not count towards the end of year results but will provide students with developmental feedback. Set assignments will also amplify problem-solving skills and develop software components that form part of the coding assignments.

Summative

Assessment will be in the form of coding assignments, which the student will have to do to the set guidelines for coding:

AE: Assessment Activity Weighting (%) Online submission Coding Length
1 Coding assignment 50 Yes Yes Code and up to 2500-word explanation
2 Coding assignment 50 Yes Yes Code and up to 2500-word explanation

The coding assignments will be assessed in accordance with the assessment aims set out in the Programme Specification.

Feedback

Students will receive formal feedback in a variety of ways: written (including via email correspondence); oral (on an ad hoc basis) and indirectly through discussion during group tutorials. Students will also attend the formal meeting, Collections, in which they will receive constructive and developmental feedback on their  performance. 

Feedback is provided on summative written assignments which will be handed back to the students.

Indicative Reading

Note: Comprehensive and current reading lists for courses are produced annually in the Course Syllabus or other documentation provided to students; the indicative reading list provided below is used as part of the approval/modification process only.

Books

Matthias Felleisen, Robert B. Findler, Matthew Flatt and Shriram Krishnamurthi. 2014. How to Design Programs (2nd ed.). The MIT Press. Available online at https://htdp.org

Eric Freeman, Bert Bates, Kathy Sierra and Elisabeth Robson. 2004. Head-First Design Patterns: A Brian-Friendly Guide. O’Reilly Media

Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley

Perdita Stevens. 2020. How to Write Good Programs: A Guide for Students. Cambridge University Press

Indicative Topics

Students will study the following topics: 

  • Representing (complex) data with objects
  • Representing data collections with objects
  • Equality and comparison between objects
  • How to test programs
  • Composing programs with the model-view-controller architecture
  • Code reuse via inheritance and composition
  • Program design patterns (e.g. the adapter, strategy, decorator, visitor, factory and builder design pattern)
Title: NCHCS774 Object-oriented Design 

Location: Academic Handbook/Programme specifications and Handbooks/ Postgraduate Programme Specifications/MA Philosophy & Artificial Intelligence Specification/Course Descriptors

Version number Date approved Date published  Owner Proposed next review date Modification (As per AQF4) & category number
3.0 October 2022 January 2023 Dr Brian Ball April 2025 Category 1: Corrections/clarifications to documents which do not change approved content or learning outcomes

Category 3: Change to Learning Outcome

2.0 January 2022 May 2022 Dr Brian Ball January 2026 Category 3: Change to learning outcomes.
1.0 January 2021 March 2021 Dr Brian Ball January 2026
Print/Save PDF