Data Structures and Algorithms
Computer Science and Electronic Engineering (School of)
Undergraduate: Level 5
Monday 13 January 2020
Friday 20 March 2020
28 August 2019
Requisites for this module
BSC G610 Computer Games,
BSC G612 Computer Games (Including Year Abroad),
BSC I610 Computer Games (Including Placement Year),
BSC G400 Computer Science,
BSC G401 Computer Science (Including Year Abroad),
BSC G403 Computer Science (Including Foundation Year),
BSC I101 Computer Science (Including Placement Year),
MSCIG402 Computer Science,
MSCII100 Computer Science (Integrated Masters, Including Placement Year),
BSC G1G4 Mathematics with Computing (Including Year Abroad),
BSC G1G8 Mathematics with Computing (Including Foundation Year),
BSC G1GK Mathematics with Computing,
BSC G1IK Mathematics with Computing (Including Placement Year),
BSC I1G3 Data Science and Analytics,
BSC I1GB Data Science and Analytics (Including Placement Year),
BSC I1GC Data Science and Analytics (Including Year Abroad),
BSC I1GF Data Science and Analytics (Including Foundation Year),
BENGH615 Robotic Engineering,
BENGH616 Robotic Engineering (Including Year Abroad),
BENGH617 Robotic Engineering (Including Placement Year),
BSC G111 Computing,
BSC G112 Computing (Including Year Abroad),
BSC G113 Computing (Including Placement Year),
BSC LG01 Economics with Computing,
BSC LG02 Economics with Computing (Including Year Abroad),
BSC LG03 Economics with Computing (Including Placement Year)
Data structures and algorithms lie at the heart of Computer Science as they are the basis for the efficient solution of programming tasks. In this module, students will study core algorithms and data structures, as well as being given an introduction to algorithm analysis and basic computability.
The module will give students core algorithmic skills that are required for Years 2 and 3 of the Computer Science degree schemes.
The aims of this module are to study core algorithms and data structures, as well as an introduction to algorithm analysis and basic computability. Students will study data types such as stacks, queues, trees and graphs, make efficient use of core data types in Java, understand time and space complexity, write and explain commonly used algorithms, use a variety of different data structures, and understand the concepts of computability and complexity.
After completing this module, students will be expected to be able to:
1. Demonstrate an understanding of core data types such as stacks, queues, trees, and graphs.
2. Implement core data types in Java and write programs that make efficient use of them.
3. Reason about the time and space complexity of programs.
4. Demonstrate knowledge of commonly used algorithms.
5. Make informed decisions about the choice of data structure or algorithm for solving a problem.
6. Explain the main concepts of computability and how some problems have no algorithmic solution.
. Data types
Abstract data types
Lists, stacks, queues, trees, sets, graphs
Divide and conquer
Sorting and searching
Algorithms: binary search trees, minimum cost spanning trees, shortest paths, parse trees
Algorithm analysis: time and space complexity
. Basic computability, incomputable functions and the halting problem
This module does not appear to have any essential texts. To see non-essential items, please refer to the module's reading list.
Assessment items, weightings and deadlines
|Coursework / exam
||Progress Test - Wk 21
||Assignment 1 Programming Exercises
||Assignment 2 Programming
||120 minutes during Summer (Main Period) (Main)
Module supervisor and teaching staff
Dr Michael Sanderson, Dr Sebastian Halder
School Office, email: csee-schooloffice (non-Essex users should add @essex.ac.uk to create full e-mail address), Telephone 01206 872770
No external examiner information available for this module.
Available via Moodle
Of 150 hours, 20 (13.3%) hours available to students:
130 hours not recorded due to service coverage or fault;
0 hours not recorded due to opt-out by lecturer(s).
Disclaimer: The University makes every effort to ensure that this information on its Module Directory is accurate and up-to-date. Exceptionally it can
be necessary to make changes, for example to programmes, modules, facilities or fees. Examples of such reasons might include a change of law or regulatory requirements,
industrial action, lack of demand, departure of key personnel, change in government policy, or withdrawal/reduction of funding. Changes to modules may for example consist
of variations to the content and method of delivery or assessment of modules and other services, to discontinue modules and other services and to merge or combine modules.
The University will endeavour to keep such changes to a minimum, and will also keep students informed appropriately by updating our programme specifications and module directory.
The full Procedures, Rules and Regulations of the University governing how it operates are set out in the Charter, Statutes and Ordinances and in the University Regulations, Policy and Procedures.