Introduction to Algorithms

This course is intended to give undergraduate students of mathematics an introduction to algorithmic reasoning.

This course is a level one elective offered to third year mathematics students and students from other majors. Mathematics students in the third year would have already been introduced to programming and numerical methods, in which they have developed some computational skills but have not thought deeply about algorithms. This course will help students learn the basics of algorithmic thinking and connect it to mathematics and computation. This elective will help students interested in doing masters in mathematics/​data science and will help education students understand the link between computation, algorithm and mathematics learning and teaching.

The students gets to focus on the notion of algorithm and to understand what it means to view mathematical problems through an algorithmic lens. This involves analysis of computational methods to determine their correctness and efficiency, to compare different methods systematically and to design optimal algorithms.

The course is introductory in nature, giving the students a basic understanding of the
design and analysis of algorithms (rather than mastery of the subject), and offering a glimpse of algorithms in mathematical domains such as number theory, algebra, geometry and graph theory. As an elective in the final semester of the BSc Mathematics programme, the course provides the student an opportunity to revisit mathematical problems through a new lens.