Module Descriptors
CLEAN CODING
COMP60058
Key Facts
Digital, Technology, Innovation and Business
Level 6
20 credits
Contact
Leader: Robert Hobbs
Hours of Study
Scheduled Learning and Teaching Activities: 39
Independent Study Hours: 161
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 2
Sites
  • Stoke Campus
Assessment
  • PRACTICAL ASSESSMENT - 20 mins demonstration weighted at 50%
  • WRITTEN REPORT - 1500 words weighted at 50%
Module Details
INDICATIVE CONTENT
This module addresses topics of:

Review of the Four Pillars of OO (Encapsulation, Abstraction, Inheritance and Polymorphism)

Clean coding

Clean unit testing

Refactoring

SOLID principles

Design patterns

Clean Architecture

Distributable APIs

Making applications secure

Plug-able components in Clean Architecture

Database components

Interface components (Command-line, desktop, and APIs for HTTP requests)
ADDITIONAL ASSESSMENT DETAILS
Practical Assessment – Students will critically analyse a given application and refactor it into clean code. They will need to design and implement a suite of clean tests to test a given application (Learning Outcomes 1 to 3).

Written Report - Students will write a report identifying, with examples, the problems of the original application, the principles of clean code that have been used to refactor the application, and the principles of clean tests used (Learning Outcomes 1 to 3).

LEARNING OUTCOMES
1. Demonstrate a critical understanding of the principles of clean code and clean testing, being able to refactor code into clean code.

Analysis,

Application

2. Design a suite of clean tests for a given application.

Knowledge and Understanding,

Communication

3. Implement clean tests from a set of created designs.

Knowledge and Understanding

LEARNING STRATEGIES
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
RESOURCES
Java SE Developers Kit

Java IDE (e.g. IntelliJ IDEA Ultimate)
REFERENCE TEXTS
Martin, R.C. (2021), Clean Craftsmanship: Disciplines, Standards, and Ethics, Addison-Wesley Professional

Khorikov, V. (2020), Unit Testing:Principles, Practices and Patterns Paperback, Manning Publications

Martin, R.C. (2017), Clean Architecture: A Craftsman's Guide to Software Structure and Design, Prentice Hall.

Spring Boot (2022) "Spring Boot" [Online] Available at: https://spring.io/projects/spring-boot (Accessed: 03/01/2023)
WEB DESCRIPTOR
In this module, you will learn and practice the principles of clean code, clean testing and clean architecture. This will add a degree of professionalism to the coding and testing practices you have already gained during your studies. You will also experience industry-standard methods, tools, and frameworks to develop server-side web applications.