CMP7001 Advanced Programming Assessment Brief  Semester 3, 2024-25 | CMU

Published: 04 Jul, 2025
Category Assignment Subject Programming
University Cardiff Metropolitan University Module Title CMP7001 Advanced Programming
Word Count 1000 words
Assessment Title Presentation of a Software Prototype
Academic Year 2024-25
Submission Deadline 18th July 2025, 4:00 PM

CMP7001 Task/Assessment Brief:

To demonstrate the system design skills you have learnt on CMP7001, you are required to design, build, and test a software system to meet the scenario below.

CMP7001 Scenario

LMP Technologies Ltd. is an engineering centre offering its customers a wide range of services. The centre relies on an MS Access database to book in equipment brought by customers for repair, assign jobs to different technicians, dispatch repaired equipment when customers pay the charges in full, order spares, and send unclaimed equipment to auction houses to recover costs. LMP Technologies would like to replace its current system as it is obsolete and no longer supports its key business processes. 

The company has approached you to develop a new system with the following requirements:

Functional Requirements

  • The system should have three types of users: the centre administrators, the technicians, and the customers, each of which sees different system functionalities.
  • When a customer comes in with their equipment for repair, they may either be registered or an unregistered ‘walk-in’ customer. The centre administrator should capture all the customer and equipment details if unregistered.  
  • Registered customers can log into the system and book their equipment for repair.
  • The centre administrator or the technician can log their personal and equipment details into the system.
  • The centre administrator can allocate repair jobs to technicians in line with their expertise and the nature of the repairs required. In this case, the system should generate a Job ID and initialise its status to ‘New Job’.
  • The technician should be able to view all the jobs allocated to them, but not to unassigned tasks or those assigned to other technicians – Record all the repair tasks that need to be done, and update the Job ID’s status to ‘Job Assessed’.
  • In turn, the centre administrator should view all assessed jobs and cost all the repair tasks logged by the technician to generate the total repair bill for the customer.
  • The new system should automatically notify the customer when their equipment is ready for collection.
  • An unregistered customer can upgrade to a registered customer.
  • Registered customers should be able to receive notifications of offers, vouchers, or promotions from the centre administrator.  Customers should have the option to opt out of receiving these.
  • The new system should maintain information about different spare parts suppliers and their locations.
  • The centre administrator and the technicians can add or remove parts suppliers or flag non-paying customers as needed.

Non-Functional Requirements

  • You are required to design your system following object-oriented design principles using multiple classes. (Hint: look at the separation of concerns and single responsibility principles to help factor your classes)
  • The solution must employ at least one form of polymorphism, be it parametric polymorphism (generics) or subtype polymorphism (inheritance/interfaces).
  • The solution will require a console-based, command-line interface (CLI) menu system to allow the user to access the required functionality as outlined above. If you wish to implement a graphical user interface (GUI), e.g. using Swing or Java-FX, you are free to do so; however, a CLI must be available.
  • Your solution must employ exception handling to catch all system errors (input, run-time and output errors). This should include both the handling of API exceptions and throwing your own generated exceptions.
  • You are required to implement some unit tests to validate your prototype.

Deliverable

For the project, you are required to record a 10-minute video presentation discussing your initial system design, the object-oriented principles used, and explaining the rationale behind your decisions. A working implementation prototype is not required at this stage. The format of the presentation is up to you, and you can be as creative as you like. You may choose to use presentation slides (e.g. PowerPoint).

Presentations are an important means of professional and academic communication, and it is important that, as engineers, scientists, and analysts, you enhance your skills to communicate your ideas and arguments effectively. You should view this presentation as an opportunity to showcase your system design skills, learnt both within and outside this module.

Although the format of the presentation is up to you, the following elements should be included:

  • Introduction.
  • Overview of your use case model.
  • Overview of your class model.
  • Discussion of how polymorphism was used.
  • Discussion of any design patterns you included in your design.
  • Discussion of your use of exception handling.
  • Discussion of design issues and challenges faced in the design. Note:  Do not be afraid to discuss incomplete elements – discussion of how you analysed the problems and attempted to fix them is invaluable to the learning process.
  • A reflection of the object-oriented techniques you have learned on the module, and which elements you found challenging.
  • Conclusion.

If you use slides, you do not have to include everything on them – use the slides to provide the overall structure of the presentation, but you can jump out of the slides to show diagrams, code, or testing, for example.

Your video presentation should ideally be presented as an unlisted YouTube video, but if you prefer, you can also store the video file on your student's OneDrive with appropriate access setup for your tutor.  
Place a link to the video in a text file for submission to Moodle.

Please test your video before submission, checking that the audio and screen capture work correctly.

Academic or Technical Terms Explained:

Object Orientation – A means of structuring software systems around separate, functionally specialised, reusable objects that interact to form a working application.

Design Pattern – A template that outlines the classes and their relationships to accomplish different tasks and solve different problems in software engineering.

Polymorphism – The ability to represent multiple implementations using a single interface or representation.

Exception Handling – A method of cleanly capturing errors and propagating them to calling functions to handle as needed.

Unit Testing – A unit test is a single, discrete test of one aspect of a system.  The test runs and either pass or fails, the results of which are reported back to the developer.

VCS – Version Control System. Software used in conjunction with good developer practices to track and manage changes to source code.  Git is an example of a distributed version control system, and GitHub is a service built around Git.  Bitbucket is an alternative also built around Git.

CMP7001 Assessment Criteria

Learning outcomes assessed

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

  • Critically evaluate the utility of object-oriented principles such as abstraction, reusability, inheritance, and encapsulation.
  • Adapt to the advanced concepts in programming with polymorphic constructs through generics and collections.
  • Apply best practices to write secure software through exception handling.
  • Solve real-life problems by using object-oriented constructs and design patterns. Develop proficiency in a high-level programming language at an advanced stage.
  • Develop proficiency in a high-level programming language at an advanced stage.

Other skills/attributes Developed

This includes elements of the Cardiff Met EDGE (Ethical, Digital, Global and Entrepreneurial skills) and other attributes developed in students through the completion of the module and assessment. These will also be highlighted in the module guidance, which should be read by all students completing the module. Assessments are not just a way of auditing student knowledge. They are a process that provides additional learning and development through the preparation for and completion of the assessment. 

This module assessment provides opportunities for students to demonstrate development of the following EDGE Competencies: 

  • Ethical concerns of team management and human-centred approaches to conflict resolution.
  • Digital management methods are examined and used throughout the module and tasks.
  • Perspectives of global software development (GSD) are examined and discussed. The task involves reasoning of multi-cultural teams in multiple countries.
  • How Project Management can be used to assist tight budgets and entrepreneurial development.

Struggle With assignments and feeling stressed?

 Order Non-Plagiarised Assignment

CMP7001 Marking Criteria

Contribution

Description

Learning Outcomes

Marks

15%

Presentation clarity, structure and demonstrated knowledge of the class design.

 

LO1

15

15%

Presentation clarity, structure and demonstrated knowledge of included polymorphism features.

 

LO1, LO2

15

30%

Presentation clarity, structure and demonstrated knowledge of the design principles used.

 

LO1, LO4

30

15%

Presentation clarity, structure and demonstrated knowledge of exception handling.

 

LO3, LO4

15

15%

Discussion of analysis and problems faced.

 

LO1, LO3

15

10%

Reflection of object-oriented techniques learned on the module.

 

LO1

10

Total

100

Grade

Criteria

70 – 100%

(Distinction)

An excellent presentation is given with clear audio, well-structured slides and suitable length / timing.  The discussion of the class diagram is both clear and detailed, and an excellent understanding of object-oriented principles is evident.  The discussion of polymorphism is also detailed, demonstrating a deep understanding of the different polymorphic methods used.  An excellent understanding of the design patterns employed along with their implementation and function is also evident.  A very detailed, discussion of the exception handling code is also given, with both the capture of API exceptions and the throwing of custom exceptions discussed. The reflection of techniques used is honest and goes into detail about what was learned, and the difficulties overcome.

 

60 - 69%

(Merit)

A very good presentation is given with clear audio, well-structured slides and good length / timing, though some aspects could be expanded upon.  The discussion of the class diagram is both clear and a very good understanding of object-oriented principles is evident.  The discussion of polymorphism is also detailed, demonstrating a very good understanding of the different polymorphic methods used.  A very good understanding of the design patterns employed along with their implementation and function is also evident, though some technical elements could be expanded upon and some minor errors are evident.  A very good discussion of the exception handling code is also given, with both the capture of API exceptions and the throwing of custom exceptions discussed, but this could be expanded upon and some minor errors are evident. The reflection of techniques used is honest and goes into detail about what was learned, and the difficulties overcome.

 

50 - 59%

(Pass)

A good presentation is given with clear audio, but the structure and timing could be improved upon.  The discussion of the class diagram is clear a good understanding of object-oriented principles is evident, though some errors are present.  A good discussion of the polymorphic methods used is also given but could be expanded upon.  A good understanding of the design patterns employed along with their implementation and function is also evident, though some technical elements could be expanded upon, and some minor errors are also present.  A good discussion of the exception handling code is given, but more is needed on throwing custom exceptions and some minor errors are evident throughout. The reflection of techniques used describes the different approaches learned, reading more like a syllabus, but more personal aspects such as how challenges were approached could be included.

 

40 - 49%

(Narrow Fail)

A basic presentation is given – the audio is unclear in places and the structure and timing could also be improved upon.  A basic discussion of the class diagram is given but more is needed on the object-oriented principles used and some errors are present throughout.  The discussion of the polymorphic methods used could also be expanded upon.  Only a basic understanding of the design patterns employed along with their implementation and function is evident, much more is needed on how the patterns have been implemented and some errors are evident throughout.  A basic discussion of exception handling is given, but it is not clear the student fully understands the mechanisms from the given presentation.   The reflection of techniques used describes the different approaches learned, reading more like a syllabus, little to no personal aspects such as how challenges were approached are evident.

 

35 - 39%

(Fail)

A very basic presentation is given – the audio is unclear throughout; the structure is confusing, and the presentation length does not fit the requirements.  Little to no understanding of object-oriented principles is evident from the class diagram discussion.  The discussions of the design patterns, polymorphism and exception handling are basic, and need to be significantly expanded.  Numerous technical errors are evident throughout the presentation of these elements. The reflection of techniques is very basic and needs to be significantly expanded.

 

<35%

(Low Fail)

No meaningful presentation is given.  The audio is of poor quality and there is little to no structure.  Very poor understanding of object-oriented principles is presented, and little to no functioning design patterns, polymorphism or exception handling is evident.  Many details are left out and many technical errors are present throughout.

 

Take our academic assistance & get 100% plagiarism-free papers

Buy Today, Contact Us

 

Looking for expert guidance in CMP7001 Advanced Programming? Worry, no need! We are here to help you with assignments. Whether you need programming assignment help or well-structured solutions, we will provide everything. You will get free assignment examples that will make your study material stronger. our expert team are providing all assignment services, you will get accurate, clear, and original content. Now stop worrying about marks and complete your assignments hassle-free with expert support. So what's the delay? Get connected with us now and make your academic journey easy!

Workingment Unique Features

Hire Assignment Helper Today!


Latest Free Samples for University Students

MARK723-Contemporary Marketing Assignment Sample 2025-26 | LBU

Category: Assignment

Subject: Marketing

University: Leeds Beckett University

Module Title: MARK723-Contemporary Marketing

View Free Samples

HC70025W Public Health Health Systems (PHHS) Formative And Summative Assessment Sample Answers

Category: Assignment

Subject:

University: Leeds Beckett University

Module Title: HC70025W Public Health Health Systems

View Free Samples

Level 7 Research Methods and Event Evaluation Assessment 1 –Research Report Sample

Category: Assignment

Subject: Management

University: Leeds Beckett University

Module Title: L7 Research Methods and Event Evaluation

View Free Samples

LCBM7024 Marketing Management Level 7 Assignment 1 Sample 2025

Category: Assignment

Subject: Management

University: University of Wales

Module Title: LCMB7024 Marketing Management

View Free Samples

AFE_4_MAC Managerial Accounting Assignment 1 Answer | LSBU 2025

Category: Assignment

Subject: Accounting

University: London South Bank University (LSBU)

Module Title: AFE_4_MAC Managerial Accounting

View Free Samples
Online Assignment Help in UK