ºìÐÓÊÓÆµ

School of Engineering and Informatics (for staff and students)

Programming Concepts (G6090A)

Programming Concepts

Module G6090A

Module details for 2025/26.

15 credits

FHEQ Level 4

Module Outline

In this module, apprentices be introduced 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 used.

The focus is on algorithmic thinking. Basic elements of the programming language Python are introduced as means to discuss the differences between programming languages and pseudocode, and between programs and algorithms in particular cases. Apprentices are shown how to go from an algorithm to an implementation, and how to use the interpreter to help them test and design new algorithms.

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. Apprentices will implement these in Python as a way to reinforce their understanding of program behaviour and give them practice writing simple programs.

Library
D. Harel and Y. Feldman. Algorithmics: The Spirit of Computing. Addison Wesley 2004.


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).

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

TypeTimingWeighting
Coursework100.00%
Coursework components. Weighted as shown below.
ProjectT1 Week 11 50.00%
Computer Based ExamXVAC Week 1 (1 hour)50.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.

TermMethodDurationWeek pattern
Autumn SemesterOnline Lecture2 hours10101010100
Autumn SemesterWorkshop3 hours01010101010
Autumn SemesterOnline Seminar1 hour00000000001

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 University will use all reasonable endeavours to deliver courses and modules in accordance with the descriptions set out here. However, the University 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 University 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 University. If there are not sufficient student numbers to make a module viable, the University reserves the right to cancel such a module. If the University withdraws or discontinues a module, it will use its reasonable endeavours to provide a suitable alternative module.

School of Engineering and Informatics (for staff and students)

School Office:
School of Engineering and Informatics, ºìÐÓÊÓÆµ, Chichester 1 Room 002, Falmer, Brighton, BN1 9QJ
ei@sussex.ac.uk
T 01273 (67) 8195

School Office opening hours: School Office open Monday – Friday 09:00-15:00, phone lines open Monday-Friday 09:00-17:00
School Office location [PDF 1.74MB]