Competitive Programming

Course description Competitive Programming
Year: 2018-2019
Catalog number: 4343CPML6
Teacher(s):
  • dr. F.W.Takes
Language: English
Blackboard: No
EC: 6.0
Level: 500
Period: Semester 2
  • No Elective choice
  • No Contractonderwijs
  • No Exchange
  • No Study Abroad
  • No Evening course
  • No A la Carte
  • No Honours Class

Please note that this course description is preliminary. The final course description will be released in June 2018.

Admission requirements

Bachelor in Computer Science
Courses: Algorithms, Complexity and Data Structures.
Skilled at C++ and LaTeX

Description

This course is intended for highly motivated students with a keen interest in algorithm development and programming in C++.
The topic of competitive programming deals with the finer bits of programming that come to light when programming is done in a competitive context.
Aiming to fully optimize both time and memory usage, a combination of cleverly designed data structures and efficient routines can lead to the very best solution of a particular precisely defined problem.
Building on basis knowledge of elementary datastructures, sorting and search algorithms, we dive into the finer algorithmic aspects of graphs, trees, paths, circuits and flows and cover topics such as number theory , combinatorics, geometry and string algorithms.
All of this with the aim of building a set of knowledge and skills that will ultimately allow us to, in a competitive environment, solve a problem as efficiently and quickly as possible.

Course objectives

  • Learn how to quickly assess which algorithm is suitable for solving which type of problem
  • Understand how to optimize, improve and streamline an algorithm in order to maximize its computational efficiency
  • Be able to understand a complex solution to a problem, and explain its workings to others
  • Learn how to work together in a small team to tackle a set of problems in as little time as possible
  • Have the basic knowledge and skills to successfully participate in a programming contest

Timetable

13 weeks

Mode of instruction

Lectures, lab sessions, assignments, contests and student presentations.

Assessment method

  • One individual assignment (20%)
  • A presentation and short report on a paper (35%)
  • Three evaluated rounds of programming contests done in pairs (45%)

Reading list

Papers will be distributed during the course.

Registration

Contact information

Lecturer: dr. F.W. Takes
Website: http://liacs.leidenuniv.nl/~takesfw/CP

Languages