Total Credits: 10
Level: Level 2
Target Students: Part I undergraduate students in the School of Computer Science. Also available to students from other Schools with the agreement of the module convenor. Available to JYA/Erasmus students.
|Autumn||Assessed by end of Autumn Semester|
Prerequisites: Or equivalent programming experience (e.g. G51PRG up to 2009/10) and knowledge of mathematics.
Summary of Content:
This module is part of the Foundations of Computer Science theme in the School of Computer Science.
This module introduces the basics of specifying abstract data types and using them to design programs. Commonly used data structures and algorithms are studied in depth. The emphasis is made on choosing data structures and algorithms appropriate for solving a given problem.
It presents the mathematical analysis of time and space usage of algorithms using the big-Oh notation. The module covers the use of such mathematical analysis to support algorithm design decisions. It presents the usage of pre/post-conditions and loop invariants to aid in the design and implementation of algorithms. Specific algorithms and data structures may include, but are not limited to: stacks, queues, and lists; trees and tree traversal methods; heaps, search trees; graph problems and graph algorithms such as shortest paths and minimum spanning trees.Module Web Links:
Method and Frequency of Class:
|Activity||Number Of Weeks||Number of sessions||Duration of a session|
|Lecture||11 weeks||2 per week||1 hour|
|Computing||11 weeks||1 per week||2 hours|
Method of Assessment:
|Exam 1||75||1.5 hr written examination|
|Coursework 1||25||Continuous assessment, including programming and writing of reports, possibly with some under exam conditions.|
Dr A Parkes
Education Aims: The main aim of this module is to convey an 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.
Knowledge and Understanding:
The theory and practice of implementing algorithms; to know of and understand the mathematical properties of algorithms.
To be able to apply mathematical techniques to algorithms and data structures. To be able to understand the specification of data structures and algorithms.
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.
To be able to solve problems using a variety of data structures and algorithms. To use mathematical techniques when necessary to achieve the above.
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