Course ObjectiveUpon successful completion of this course, the students are expected to
• be able to analyse algorithms' resource usage by using asymptotic
analysis and asymptotic notations,
• identify the algorithm design technique used by a given algorithm such
as divide-and-conquer, dynamic programming, greedy, etc.),
• use these algorithm design techniques to develop new algorithms for
simple computational problems,
• be aware of some common computational problems and some known
algorithms for these problems.
Course ContentAlgorithms lie at the heart of computing. An algorithm is a well-defined
computational procedure that takes a value (or a set of values) as input
and produces a value (or set of values) as output, as a solution to a
computational problem. Algorithms usually rely on a set of data
structures that allow them to manipulate the data efficiently. No matter
which programming language you program in, learning about data
structures and algorithms is essential to build scalable systems.
This course is an introduction to data structures, algorithmic design
and complexity. We will start with an introduction to algorithms,
covering sorting algorithms, the divide-and-conquer paradigm, greedy
algorithms, and dynamic programming. We will analyze the efficiency of
such algorithms, using big-Oh notation and worst-case time complexity.
We will continue by covering the basics of data structures, including
linear data structures, tree-like data structures, and hash tables.
Teaching MethodsThe course will have the following structure, and attendance is
- 2 lectures (2 x 1hr 45mins)
- 1 tutorial (1hr 45mins)
- 1 computer practical (1hr 45mins)
Method of Assessment4 assignments (40%) and a written exam (60%).
Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009).
Introduction to Algorithms (3rd edition; ISBN 978-0-262-03384-8). MIT
|Language of Tuition||English|
|Faculty||School of Business and Economics|
|Course Coordinator||dr. A. Okbay|
|Examiner||dr. A. Okbay|
dr. A. Okbay
You need to register for this course yourself
Last-minute registration is available for this course.
|Teaching Methods||Computer lab, Lecture, Study Group|
This course is also available as: