- Academic Registry
Programme & Unit Catalogues

CM50258: Principles of programming

[Page last updated: 04 August 2021]

Academic Year: 2021/2
Owning Department/School: Department of Computer Science
Credits: 6 [equivalent to 12 CATS credits]
Notional Study Hours: 120
Level: Masters UG & PG (FHEQ level 7)
Semester 1
Assessment Summary: CW 50%, EX 50%
Assessment Detail:
  • Coursework (Exercise sheets and code review) (CW 50% - Qualifying Mark: 40)
  • Examination (EX 50% - Qualifying Mark: 40)
Supplementary Assessment:
Like-for-like reassessment (where allowed by programme regulations)
Aims: To introduce students to the development of computer software, including problem analysis, establishing requirements, designing, implementing and evaluating.
To provide students with the terminology and concepts of programming, irrespective of the language being used.
To provide practical skills at reading and writing programs and producing programs to solve real world problems.
To make students feel confident about programming in the taught languages and about being able to learn different programming languages and programming paradigms.

Learning Outcomes: On completion of this unit, students will be able to:
1. Describe the design of a computer program separately from its implementation.
2. Explain the basic concepts of procedural and object orientated programming in the design and implementation of computer programs.
3. Explain debugging and testing methods and how they contribute to robust code
4. Design, construct and evaluate simple data structures and algorithms.
5. Plan, organise and implement program code to support reuse and maintainability of the software (project)
6. Provide a critical review of a software in terms of software quality, design, reuse and robustness, and offer solutions to correct issues encountered.

Skills: Use of IT (T/F,A), Problem Solving (T/F,A), Communication (T/F,A), Critical thinking (T/F,A).

Content: An introduction to a programming language such as Java or Python.
An introduction to program development environments such as eclipse.
Procedural Control: Introduction to procedural system development. Discussion of control structures: sequence, selection, iteration and recursion.
Objects: Introduction to object-oriented system development. Introduction of objects and classes, inheritance and polymorphism. Comparison of procedural and object programming.
Introductions to scope and extent, abstract data types. Design methods for such systems.
Systems engineering and design methods, such as Object/Class diagrams, UML, iterative software development, code reuse and software maintenance.
Testing and debugging: unit testing, tracing by hand, print statements, etc.
Software quality, software evaluations and reviews, metrics
Data Organisation: Basic data structures: lists, stacks and queues. Basic search and sorting algorithms for these data structures. Files and streams. Data handling.

Programme availability:

CM50258 is a Designated Essential Unit on the following programmes:

Department of Computer Science

CM50258 is Optional on the following programmes:

Department of Computer Science
  • RSCM-AFD06 : Doctor of Engineering (EngD) Digital Entertainment
  • RSCM-AFM51 : Integrated PhD Accountable, Responsible and Transparent Artificial Intelligence
  • TSCM-AFM51 : MRes Accountable, Responsible and Transparent Artificial Intelligence
  • TSCM-AFM52 : MSc Accountable, Responsible and Transparent Artificial Intelligence
  • TSCM-AFM19 : MSc Human Computer Interaction
  • TSCM-AWM31 : MSc Human Computer Interaction


  • This unit catalogue is applicable for the 2021/22 academic year only. Students continuing their studies into 2022/23 and beyond should not assume that this unit will be available in future years in the format displayed here for 2021/22.
  • Programmes and units are subject to change in accordance with normal University procedures.
  • Availability of units will be subject to constraints such as staff availability, minimum and maximum group sizes, and timetabling factors as well as a student's ability to meet any pre-requisite rules.
  • Find out more about these and other important University terms and conditions here.