Total Credits: 20
Level: Level 2
Target Students: Part I undergraduate students in the School of Computer Science only.This module is part of the Foundations of Computer Science theme in the School of Computer Science. There is a limited number of places on this module. Students are reminded that enrolments which are not agreed by the Offering School in advance may be cancelled without notice. Available to JYA/Erasmus students.
|Full Year||Assessed by end of Spring Semester|
Summary of Content: This module covers important aspects of algorithms, namely their correctness and efficiency. To address correctness we use a mathematically rigorous approach to formal verification. You'll study topics such as: proofs in propositional logic and predicate logic; introduction to program specification and program correctness, including assertions and loop invariants. To address the issue of efficiency we cover the use of mathematical descriptions of the computational resources needed to support algorithm design decisions. You'll study topics such as: sorting algorithms, heaps, binary search trees, hashmaps, and graph algorithms. The emphasis is upon understanding data structures and algorithms so as to be able to design and select them appropriately for solving a given problem.
Method and Frequency of Class:
|Activity||Number Of Weeks||Number of sessions||Duration of a session|
|Lecture||21 weeks||2 per week||1 hour|
|Tutorial||19 weeks||1 per week||1 hour|
|Computing||19 weeks||2 per week||1 hour|
Method of Assessment:
|Exam 1||25||1-hour examination in January|
|Coursework 1||25||Continuous assessment, including programming and writing of reports, possibly with some under exam conditions.|
|Exam 2||50||2-hour examination in May/June|
Dr B Logan
Dr A Parkes
Education Aims: The aim of this module is to develop reasoning skills relevant for Computer Science and be able to read and use the language of formal logic to precisely express requirements and reason about software systems, to gain understanding of the issues involved in designing a program for a specific task, and a good working knowledge of some common algorithms and data structures.
Learning Outcomes: Knowledge and Understanding: The theory and practice of implementing algorithms; to know of and understand the mathematical properties of algorithms, and of the relevant basic mathematical concepts, definitions and notations.Intellectual Skills: To be able to apply mathematical techniques to algorithms and data structures. The ability to understand and apply simple logical reasoning. To be able to understand the specification of data structures and algorithms. Professional Skills: To implement data structures and algorithms, evaluate available tools, applications, algorithms and data structures, and select those that are fit for purpose within a given domain/scenario. Transferable Skills: To be able to solve problems using a variety of data structures and algorithms. To use mathematical techniques when necessary to achieve the above. The ability to use mathematics to solve problems.
Offering School: Computer Science
Use the Back facility of your browser to return to the previous page.
Search for another module
Return to The University of Nottingham Welcome Page