Alogrithms and Data Structure Syllabus
Alogrithms and Data Structure Syllabus
Course description
The study of algorithms and data structures is central to an undergraduate degree in
computer science. This course will introduce you to your first algorithms and data
structures, as well as the tools of abstraction required to help you decide which of these
concepts to use. In this way you will not only enhance your box of problem solving tools,
you will be able to critically compare, and assess the advantages and disadvantages, of
these tools.
The course starts at a basic level by describing problems and algorithms in computer
science. It then goes on to introduce the tools for describing algorithms: flowcharts and
pseudocode. You will then build on these basics to cover a wide range of topics:
In this course you will be solving problems both at an abstract level and in the form of
coding activities. The techniques required for problem solving will touch upon, and
utilise, the concepts covered in the topics. For example, in this course, every topic ends
with a problem, and the solution will be the launching pad for the next topic.
Specific essential readings for this course will be taken from the following text book:
Cormen, T.H., C.E. Leierson, R.L. Rivest and C. Stein Introduction to Algorithms.
(Cambridge, MA: MIT Press, 2009) 3rd edition.
The specific pages for the reading activities will be given in the platform, and there is no
need to read beyond to recommended pages.
In addition to the text book, there are additional reading activities written by the course
author, some of which involve coding exercises.
There will also be discussion prompts asking you to do some independent research
using online sources.
Course outline
The course consists of 10 topics, each of which spans two weeks.
Learning outcomes:
Learning outcomes:
Learning outcomes:
Learning outcomes:
Learning outcomes:
Learning outcomes:
● The coursework consists of five quizzes and one written, staff graded assignment
consisting of exercises in writing pseudocode and analysing algorithms