Programming Concepts (G6007)
Programming Concepts
Module G6007
Module details for 2025/26.
15 credits
FHEQ Level 4
Library
D. Harel and Y. Feldman. Algorithmics: The Spirit of Computing. Addison Wesley 2004.
Module Outline
This module provides an introduction to algorithmic problem solving. It will answer the following questions:
What is a problem specification, an algorithm, a computation? What are their properties? How does one develop an algorithm? How can one rigorously argue that an algorithm computes correct solutions to a given problem? How can one measure the efficiency of an algorithm and the complexity of a problem?
For the sake of writing algorithms, a simple algorithmic language (pseudo code) is in use. The focus is on algorithmic thinking, not coding.
Searching, sorting and other simple (and intuitive) algorithms are specified and developed. Principles like divide-and-conquer and recursive programming will be applied and explained.
Two important properties of algorithms are Correctness and Complexity. Algorithms should only compute correct solutions of a problem. To establish correctness, some relevant (propositional and predicate) logic is introduced in an informal style (focusing on logical reasoning principles rather than logical calculi).
Finally, the concept of time complexity of an algorithm is presented and asymptotic complexity classes are discussed.
The exercise classes and coursework are based on a series of examples. The algorithms developed in this module should be implemented in Java concurrently or at a later stage in the further programming module.
Module learning outcomes
Develop an algorithm from a given problem specification.
Prove that a given algorithm is correct for a given problem specification.
Analyse a given algorithm and establish its time complexity class.
Spot mistakes and suggest possible improvements for a given algorithm.
Type | Timing | Weighting |
---|---|---|
Multiple Choice questions | Semester 1 Assessment | 100.00% |
Timing
Submission deadlines may vary for different types of assignment/groups of students.
Weighting
Coursework components (if listed) total 100% of the overall coursework weighting value.
Term | Method | Duration | Week pattern |
---|---|---|---|
Autumn Semester | Lecture | 2 hours | 11111111111 |
Autumn Semester | Lecture | 1 hour | 11111111111 |
How to read the week pattern
The numbers indicate the weeks of the term and how many events take place each week.
Dr Philip Saville
Assess convenor
/profiles/643094
Please note that the 5XÉçÇøÊÓƵ will use all reasonable endeavours to deliver courses and modules in accordance with the descriptions set out here. However, the 5XÉçÇøÊÓƵ keeps its courses and modules under review with the aim of enhancing quality. Some changes may therefore be made to the form or content of courses or modules shown as part of the normal process of curriculum management.
The 5XÉçÇøÊÓƵ reserves the right to make changes to the contents or methods of delivery of, or to discontinue, merge or combine modules, if such action is reasonably considered necessary by the 5XÉçÇøÊÓƵ. If there are not sufficient student numbers to make a module viable, the 5XÉçÇøÊÓƵ reserves the right to cancel such a module. If the 5XÉçÇøÊÓƵ withdraws or discontinues a module, it will use its reasonable endeavours to provide a suitable alternative module.