Programming Concepts (G6007)
15 credits, Level 4
In this module, you are introduced to algorithmic problem solving. Your studies in this module 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?
As part of the module, you use a simple algorithmic language (pseudo code) for the sake of writing algorithms - the focus of this module is on algorithmic thinking, not coding.
In the module, you specify and develop searching, sorting and other simple (and intuitive) algorithms. You apply and explore principles like divide-and-conquer and recursive programming.
You also look at two important properties of algorithms - 'correctness' and 'complexity'.
Algorithms should only compute correct solutions of a problem. To establish correctness, you are introduced to some relevant (propositional and predicate) logic, in an informal style (focusing on logical reasoning principles rather than logical calculi).
Finally, you discuss asymptotic complexity classes and explore the concept of time complexity of an algorithm.
As part of this module, you undertake exercise classes and coursework, based on a series of examples.
The algorithms you develop in this module should be implemented in Java concurrently or at a later stage in the further programming module.
Teaching and assessment
We’re currently reviewing teaching and assessment of our modules in light of the COVID-19 situation. We’ll publish the latest information as soon as possible.
Contact hours and workload
This module is approximately 150 hours of work. This breaks down into about 33 hours of contact time and about 117 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.
We’re planning to run this module in the academic year 2021/22. However, there may be changes to this module in response to COVID-19, or due to staff availability, student demand or updates to our curriculum. It may not be possible to take some module combinations due to timetabling constraints. We’ll make sure to let our applicants know of material changes to modules at the earliest opportunity.
This module is offered on the following courses:
- Computer Science (with an industrial placement year) BSc
- Computer Science (with an industrial placement year) MComp
- Computer Science BSc
- Computer Science MComp
- Computer Science and Artificial Intelligence (with an industrial placement year) BSc
- Computer Science and Artificial Intelligence BSc
- Computing for Business and Management (with an industrial placement year) BSc
- Computing for Business and Management BSc
- Finance and Technology (FinTech) (with a professional placement year) BSc
- Finance and Technology (FinTech) BSc
- Games and Multimedia Environments (with an industrial placement year) BSc
- Games and Multimedia Environments BSc