Computer Science


Applied Algorithmics: COMPSCI 320 Semester 2, City Campus

Objectives

Algorithmics is the systematic study of the design and analysis of algorithms. It deals with such fundamental questions as: How do we go about designing an algorithm for a given problem? Is the algorithm correct? Does it perform efficiently? Is it the best possible for the job? Is there any good algorithm for this problem?

It has been said that algorithms form the soul of computer science. Certainly the study of algorithms is a fundamental activity of a computer scientist. It is also very useful for those interested in programming competitions and getting past the interview process at companies like Google!

In this course we study fundamental design paradigms: greedy algorithms, divide-and-conquer, dynamic programming, and exhaustive search. We focus on methods for developing algorithms which are both correct and efficient. We analyse the efficiency of algorithms so that we have a basis for deciding which algorithm is best for the job. Finally we discuss limits on the power of computers by showing that there are many problems where an efficient solution is unlikely to exist. These limits are provided by the theory of NP-completeness.

Learning Activities

These are based on lectures, graded assignments, and your detailed reading of your course textbook and other books. All of these ingredients are necessary if you are to get the most out of the course. See Canvas for current course information, including assessment requirements.

Top


Apply now!


Handbook

Postgraduate study options

Computer Science Blog



Please give us your feedback or ask us a question

This message is...


My feedback or question is...


My email address is...

(Only if you need a reply)

A to Z Directory | Site map | Accessibility | Copyright | Privacy | Disclaimer | Feedback on this page