MA407 Half Unit
Algorithms and Computation
This information is for the 2017/18 session.
Teacher responsible
Dr Konrad Swanepoel
Availability
This course is available on the MSc in Applicable Mathematics, MSc in Data Science, MSc in Operations Research & Analytics, MSc in Statistics, MSc in Statistics (Financial Statistics), MSc in Statistics (Financial Statistics) (Research) and MSc in Statistics (Research). This course is available with permission as an outside option to students on other programmes where regulations permit.
The course is compulsory for students on the MSc Applicable Mathematics who are not taking MA421 Advanced Algorithms; it is optional for students on the MSc Applicable Mathematics who take the advanced course.
Pre-requisites
Good general knowledge of mathematics, including familiarity with abstract concepts. A willingness to cope with technical details of computer usage, and with a rapid introduction to programming.
Course content
Introduction to programming in Java. Introduction to the theory of algorithms: running time and correctness of an algorithm. Recursion. Data structures: arrays, linked lists, stacks, queues, binary search trees. Sorting algorithms. Greedy algorithms. Dynamic programming. Inheritance and Generics in Java.
Teaching
20 hours of lectures, 20 hours of seminars, 9 hours of workshops and 10 hours of help sessions in the MT. 2 hours of lectures in the ST.
Workshops will be held before the start of MT.
Formative coursework
Weekly exercises are set and marked. Many of these will require implementation of programming exercises in Java.
Indicative reading
T H Cormen, C E Leiserson, R L Rivest and C Stein, Introduction to Algorithms; R Sedgewick, K Wayne, Introduction to programming in Java; D Flanagan, Java in a Nutshell.
Assessment
Exam (75%, duration: 2 hours and 30 minutes) in the main exam period.
Coursework (25%) in the MT.
Key facts
Department: Mathematics
Total students 2016/17: 28
Average class size 2016/17: 28
Controlled access 2016/17: No
Value: Half Unit
Personal development skills
- Self-management
- Problem solving
- Application of information skills
- Communication
- Application of numeracy skills
- Specialist skills