Loading repository data…
Loading repository data…
rossanoventurini / repository
Page of the course "Competitive Programming and Contests" at Department of Computer Science, University of Pisa
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
The goal of the course is to improve programming and problem-solving skills of the students by facing them with difficult problems and by presenting the techniques that help their reasoning in the implementation of correct and efficient solutions. The importance of these skills has been recognized by the most important software companies worldwide, which evaluate candidates in their job interviews mostly by the ability in addressing such difficult problems (e.g., see here).
A natural goal is to involve the students in the intellectual pleasure of programming and problem solving, also preparing them for the most important international online contests, such as Topcoder, Codeforces, HackerRank, CodeChef, Facebook Hacker Cup, Google Code Jam and so on, for internships in most important companies and their interviews. A desirable side-effect of the course could be to organize and prepare teams of students for online contests.
The course will provide the opportunity of
See these slides. Mandatory exercises for homeworks are in bold.
Extra points for
Implementing solutions for the problems of each lecture is strongly recommended to improve your problem solving skill and to practice with Rust.
I recommend you to create a github repository to collect all your solutions and their descriptions. The repository can be either private or public. In both cases I should be able to access it. Please send me a link to your repository and keep the repository updated. I should be able to monitor your progresses.
| Type | Date | Room |
|---|---|---|
| Written/Lab | 03/02/2022 9:00 | Google Meet |
| Type | Date | Text |
|---|---|---|
| Written/Lab | 23/01/2018 9:30 | Text, TestSet, and Solution |
| Written/Lab | 14/02/2018 9:30 | Text, TestSet, and Quadratic solution |
| Written/Lab | 12/06/2018 14:00 | Text, TestSet, and Solution |
| Written/Lab | 06/07/2018 9:30 | Text and TestSet |
| Written/Lab | 14/01/2019 14:00 | Text and TestSet |
If you wish to refresh your mind on basic Algorithms and Data Structures, I suggest you to look at the well-known book Introduction to Algorithms, 3rd Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein.
I strongly suggest you to watch the following video lectures as soon as possible.
| Date | Lecture | References | Problems |
|---|---|---|---|
| 15/09/2022 | Introduction | Slides | Leaders in array (solution), Kadane's algorithm (solution), and Missing number in array (solution) |
| 19/09/2022 | Solutions of Trapping rain water and Sliding window maximum | Rossano's notes* | Trapping rain water (solution), and Sliding window maximum (solution) |
| 22/09/2022 | Analysis and correctness of Sliding window maximum. Brief introduction to Rust. | Next greater element and Towers (solution) | |
| 29/09/2022 | Searching and Sorting: Binary Search, Merge Sort, QuickSort, Counting Sort, and Radix Sort | Rossano's notes*. [CCLR] Chapters 2.3, 7, and 8. Binary search. Exponential search. Interpolation search (optional) |
| 03/10/2022 | Searching and Sorting: Binary Search, Merge Sort, QuickSort, Counting Sort, and Radix Sort | Inversion count and Two Types of Spells |
| 05/10/2022 | [Hands-On 1](hands |