Undergraduate Course: Algorithms in Practice (INFR10028)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Credit level (Normal year taken)  SCQF Level 10 (Year 4 Undergraduate) 
Availability  Not available to visiting students 
SCQF Credits  10 
ECTS Credits  5 
Summary  Algorithms (and data structures) are fundamental to all computing. Any given problem will have many possible algorithms unless it is computationally unsolvable. It is therefore important to have criteria for choosing between competing algorithms. Various technical tools (e.g., runtime analysis) are covered in the third year prerequisite course. However there remains the difficulty of what can be done with problems that do not seem to have algorithms that can be guaranteed to be efficient for all inputs. This course will focus on a few areas and discuss techniques for addressing such problems as well as pragmatic considerations in choosing algorithms. In addition students will have the opportunity to extend their knowledge of algorithms in the area of Computational Geometry. The course overall is practically based but theory informed. 
Course description 
* Informal introduction to efficiency concerns, optimisation problems and related decision problems, intractability, NPcompleteness.
* Theoretical and practical concerns: Linear Programming as a case study, comparison with Integer Programming techniques. Rephrasing practical problems as instances of Linear Programming and Iinteger Programming.
* Computational Geometry. Topics such as:
o Half plane intersection, relation to linear programming.
o Smallest enclosing disc of points in the plane.
o Voronoi diagrams and brief discusion of applications (e.g., in physics, astronomy, robotics); appropriate data structures (e.g., doubly connected edge lists).
o Delaunay triangulations, study of what constitutes a "good" triangulation.
* Approximation algorithms for "hard" problems covering heuristics and performance guarantees. Topics such as:
o Notions of approximation: relative error, approximation schemes.
o The vertex cover problem.
o The travelling salesman problem: with and without the triangle inequality.
o The set covering problem.
o The subset sum problem.
* Survey of various techniques, e.g., Markov chains.
Relevant QAA Computing Curriculum Sections: Data Structures and Algorithms.

Entry Requirements (not applicable to Visiting Students)
Prerequisites 
Students MUST have passed:
Algorithms and Data Structures (INFR09006)

Corequisites  
Prohibited Combinations  
Other requirements  Successful completion of Year 3 of an Informatics Single or Combined Honours Degree, or equivalent by permission of the School. 
Course Delivery Information
Not being delivered 
Learning Outcomes
1  Discuss the obstacles to efficient exact solutions to certain problems.
2  Given a problem related to those covered in the course assess its likely algorithmic difficulty.
3  Given a proposed algorithm for a problem assess its suitability in terms of correctness and efficiency.
4  Discuss notions of approximation for optimisation problems.
5  Develop and justify appropriate algorithms for problems related to ones discussed in the course..

Reading List
* T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein: Introduction to Algorithms (2nd Edition). MIT Press, 2002
* H. Edelsbrunner, Algorithms in Combinatorial Geometry, EATCS Monographs in Computer Science, Springer, 1987.
* F.P. Preparata and M.I. Shamos, Computational Geometryan introduction, Springer, 1985.
* Vijay Vazirani, Approximation Algorithms, Springer 2001. 
Contacts
Course organiser  Dr Amos Storkey
Tel: (0131 6)51 1208
Email: A.Storkey@ed.ac.uk 
Course secretary  Miss Kate Weston
Tel: (0131 6)50 2692
Email: Kate.Weston@ed.ac.uk 

