Description
The aim of the module is to teach non-specialists the problem solving methods commonly used in the algorithms, artificial intelligence and systems areas of computer science. Students who have completed the course should be able to recognize when it is appropriate to apply these method and should be able to solve simple instances of the problems. Topics to be covered include divide and conquer, dynamic programming, search problems, and coping with complexity. Students considering this course should have some aptitude with handling abstract concepts.