Undergraduate Course: Algorithms in Practice (INFR10028)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Course type  Standard 
Availability  Not available to visiting students 
Credit level (Normal year taken)  SCQF Level 10 (Year 4 Undergraduate) 
Credits  10 
Home subject area  Informatics 
Other subject area  None 
Course website 
http://www.inf.ed.ac.uk/teaching/courses/ap 
Taught in Gaelic?  No 
Course description  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. 
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. 
Additional Costs  None 
Course Delivery Information
Not being delivered 
Summary of Intended 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..

Assessment Information
Written Examination 70
Assessed Assignments 30
Oral Presentations 0
Assessment
Three sets of exercises involving the use of appropriate software. The main emphasis will be on the interpretation and appropriateness of approaches rather than writing large amounts of software. There will also be some pencil and paper elements to accompany the justification of claims.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. 
Special Arrangements
None 
Additional Information
Academic description 
Not entered 
Syllabus 
* 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. 
Transferable skills 
Not entered 
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. 
Study Abroad 
Not entered 
Study Pattern 
Lectures 20
Tutorials 0
Timetabled Laboratories 0
Nontimetabled assessed assignments 30
Private Study/Other 50
Total 100 
Keywords  Not entered 
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 2701
Email: Kate.Weston@ed.ac.uk 

