News

Re-Exam: Results & Inspection

Written on 13.09.24 by Simon Schwarz

Dear students,

the re-exam results are now available. You can see your points as well as the overall grade on your personal status page. Bonus points from the midterm are automatically applied iff you passed the re-exam (i.e. achieved at least 45 points without any bonus).

If you have any… Read more

Dear students,

the re-exam results are now available. You can see your points as well as the overall grade on your personal status page. Bonus points from the midterm are automatically applied iff you passed the re-exam (i.e. achieved at least 45 points without any bonus).

If you have any questions about your exam please visit our exam inspection on Wednesday, 18.09. at 10:30–11:30 in room 622, E1.5. If you want to inspect your exam and cannot make it there, please send us an E-Mail.

The final exam as well as solution spoilers about our intended solutions can now be downloaded from the materials section in CMS.

 

 

Re-Exam: Registration & Cheat-Sheet Submission

Written on 28.08.24 by Simon Schwarz

Dear students,

the re-exam will take place on 11. September at 13:30 in the Günter-Hotz lecture hall.

Please register by 04. September either in LSF or in CMS (depending on your course of study). You may submit an updated cheat-sheet for the re-exam until 09. September. If you do not submit a… Read more

Dear students,

the re-exam will take place on 11. September at 13:30 in the Günter-Hotz lecture hall.

Please register by 04. September either in LSF or in CMS (depending on your course of study). You may submit an updated cheat-sheet for the re-exam until 09. September. If you do not submit a new cheat-sheet, we will provide you with your cheat-sheet from the main exam.

 

Final Exam: Results & Inspection

Written on 07.08.24 by Simon Schwarz

Dear students,

the exam results are now available. You can see your points as well as the overall grade on your personal status page. Bonus points from the midterm are automatically applied iff you passed the exam (i.e. achieved at least 45 points without any bonus).

If you have any questions… Read more

Dear students,

the exam results are now available. You can see your points as well as the overall grade on your personal status page. Bonus points from the midterm are automatically applied iff you passed the exam (i.e. achieved at least 45 points without any bonus).

If you have any questions about your exam please visit our exam inspection on Tuesday, 13.08. between 14:00–15:00 in room 622, E1.5. If you want to inspect your exam and cannot make it there, please send us an E-Mail.

The final exam as well as solution spoilers about our intended solutions can now be downloaded from the materials section in CMS. After the exam inspection, all previous contests will re-open for submission in case you want to prepare for the re-exam.

Final Exam: Final Remarks

Written on 05.08.24 by Simon Schwarz

Dear students,

the final exam will happen on tomorrow, Tuesday, 06. August at 10:00 (sharp) in the Günter-Hotz lecture hall. Please be there a few minutes early to allow for enough time to start your laptop.

You still can submit your cheat-sheet in CMS until today, 14:00 (hard deadline).

More… Read more

Dear students,

the final exam will happen on tomorrow, Tuesday, 06. August at 10:00 (sharp) in the Günter-Hotz lecture hall. Please be there a few minutes early to allow for enough time to start your laptop.

You still can submit your cheat-sheet in CMS until today, 14:00 (hard deadline).

More information can be found in our exam guide.

 

Midterm Exam: Results & Inspection

Written on 14.06.24 by Simon Schwarz

Dear students,

the results from the midterm examination can now be found on your personal status page. The points include partial points for solutions that did not get the CORRECT verdict.

We will offer an exam inspection on Wednesday, 26. June at 15:45 directly after the lecture in the normal… Read more

Dear students,

the results from the midterm examination can now be found on your personal status page. The points include partial points for solutions that did not get the CORRECT verdict.

We will offer an exam inspection on Wednesday, 26. June at 15:45 directly after the lecture in the normal lecture hall.

The online judge is open for submission again. Do not forget to submit the exercise sheet until the next lecture.

 

No Tutorials Tomorrow

Written on 12.06.24 by Simon Schwarz

Dear students,

due to the midterm-exam, there will be no tutorials tomorrow. The judge will re-open for exercise sheet submissions likely tomorrow in the late afternoon.
 

Midterm Exam: Registration & Reminder

Written on 10.06.24 by Simon Schwarz

Dear students,

the registration and cheat-sheet deadline for the Midterm exam is today at 23:59.

The exam will happen on Wednesday at 14:00 (s.t. / sharp) in the Günter-Hotz lecture hall. Please arrive a few minutes early to boot your computer. Remember to bring a laptop with the VM installed… Read more

Dear students,

the registration and cheat-sheet deadline for the Midterm exam is today at 23:59.

The exam will happen on Wednesday at 14:00 (s.t. / sharp) in the Günter-Hotz lecture hall. Please arrive a few minutes early to boot your computer. Remember to bring a laptop with the VM installed with you.

Our online judge will have a planned downtime from tomorrow in the late afternoon until shortly before the exam. Please check that you can reach the judge from your VM beforehand. Also, if you want to submit any solutions for past exercise sheets or the mock midterm, please do this until tomorrow afternoon.

Starting Tuesday at noon, you will be able to download your cheat-sheet inside the VM (open the file called important-links.html, click on Cheat-Sheet). You can save your cheat-sheet e.g. on your Desktop.

 

Midterm Exam: Registration, Cheat Sheet & VM Installation

Written on 03.06.24 by Simon Schwarz

Dear students,

the registration for the midterm exam is now possible. Please register on your personal status page in CMS until Monday, 10. June 23:59. You also have to submit your cheat sheet there. Registration in LSF is not necessary.

To participate in the exams, you need to install a… Read more

Dear students,

the registration for the midterm exam is now possible. Please register on your personal status page in CMS until Monday, 10. June 23:59. You also have to submit your cheat sheet there. Registration in LSF is not necessary.

To participate in the exams, you need to install a custom virtual machine. Installation should be done as soon as possible. Please follow the installation instructions at https://cms.sic.saarland/cp24/2/VM.

If you encounter any difficulties while installing the VM, we offer an extra office hour on Wednesday June 5 from 16:00-16:45 (right after the lecture). The office hour will take place in E1.3 HS 002. Additionally, there will be an office hour for technical problems on Monday June 10 from 12:00-13:00 in Room 622, E1 5. Please contact us as early as possible if there are any problems with installation.

To participate in the midterm exam, please read the exam guide https://cms.sic.saarland/cp24/3/Exams. Further information regarding the exams will be announced in the next lecture.

We have prepared a practice contest, which will be released after the lecture on Wednesday. The contest is last iterations midterm exam.

UdS ICPC Training

Written on 24.04.24 by Yasmine Melina Briefs

Competitive programming is like a sport. In the same way, as in sports, there are competitions and training sessions. If you would like to solve hard problems, compete with others, and travel around Europe (and the world), join our ICPC training telegram chat. We will hold meetings, discussions,… Read more

Competitive programming is like a sport. In the same way, as in sports, there are competitions and training sessions. If you would like to solve hard problems, compete with others, and travel around Europe (and the world), join our ICPC training telegram chat. We will hold meetings, discussions, lectures, and training sessions. If you are interested, join using this link: https://t.me/+xjeGeV7df144ZTdi.
Note that this is NOT connected to the course in any way. Participating in ICPC training will neither affect your grade for the course nor give you any additional credit points. Join solely for your personal interest. What it will affect though is your NWERC performance :)

P.S. Note that the number of places at NWERC for each university is limited, so eliminations will be held to decide who will go to NWERC. Participation in the ICPC training will also help you prepare for this elimination.

Tutorial assignment

Written on 22.04.24 by Tim Scheckenbach

Dear students,

we have assigned the tutorials. You can find your tutorial on your personal status page.

Tutorials start on Thursday this week. In preparation for the first tutorial, you can already create an account on Codeforces and join our group. We prepared instructions on how to use… Read more

Dear students,

we have assigned the tutorials. You can find your tutorial on your personal status page.

Tutorials start on Thursday this week. In preparation for the first tutorial, you can already create an account on Codeforces and join our group. We prepared instructions on how to use Codeforces here: https://cms.sic.saarland/cp24/4/Codeforces.

Tutorial registration & First tutorial

Written on 19.04.24 by Yasmine Melina Briefs

Dear students,

please do not forget to enter your tutorial preferences today. This can be done on your personal status page.

In the tutorials, we will use Codeforces for additional problems. In preparation for the first tutorial, you can already create an account on Codeforces and join our… Read more

Dear students,

please do not forget to enter your tutorial preferences today. This can be done on your personal status page.

In the tutorials, we will use Codeforces for additional problems. In preparation for the first tutorial, you can already create an account on Codeforces and join our group. We prepared instructions on how to use Codeforces here: https://cms.sic.saarland/cp24/4/Codeforces.

Show all

Competitive Programming

Advanced Course, 6 CP

 

Competitive Programming is the art of solving algorithmic problems and implementing solutions in a time-constrained environment. Such problems usually need insight into algorithms and efficient implementation to be solved successfully. This course will deal with general solution techniques as well as the algorithmic background knowledge to compete in programming contests. Since practice makes perfect, this course will include many tasks from previous competitions as hands-on exercises.

Aside from preparing for competitions, the goal of this lecture is to improve programming ability and apply algorithms that are usually only taught theoretically.

 

Prerequisites

You should be able to write basic programs in C++, Java, Python or Rust. Code examples in the lecture will use C++.

Some knowledge of algorithms as taught in Grundzüge von Algorithmen und Datenstrukturen is an advantage.

You will need your own laptop to solve problems on exercise sheets and participate in the exam. If you don't have access to a laptop, please contact the lecture staff.

 

Course Preparation

If you want to prepare for the course, we recommend having a look at the book "Competitive Programming 3" which is available for registered students in our Materials section. If you already want to practice on some competitive programming tasks, you may have a look at the UVa Online Judge. The linked book recommends some problems on this website for each topic.
More problems can be found in the Codeforces problem set. Codeforces also hosts competitive programming contests about once a week.

 

Dates

Lectures: Wednesday 14:00-16:00 in HS002, E1.3.

 

Topics

These topics are preliminary and subject to change.

  • Introduction to C++ for contests
  • Basic algorithmic ideas
    • Brute-force
    • Backtracking
    • Greedy algorithms
    • Dynamic Programming
    • Divide & Conquer
  • Dynamic Programming
  • Graphs
    • Breadth-first search and depth-first search
    • Shortest paths
    • Topological sorting
    • Strongly connected components
    • Articulation points and bridges
    • Maximum Flow and Matching
    • Finding subgraphs
  • Trees
    • Lowest common ancestor
    • Minimal spanning tree
  • Mathematical Basics
  • Segment trees
  • String algorithms
  • Parsing
  • Geometric problems

 

Weekly Exercises

There will be weekly exercises. Exercises will be purely practical and consist of a set of problems (usually about 4) that have to be solved, implemented and submitted. Solutions will be graded automatically against a set of test cases. Possible verdicts are Correct, Wrong Answer (your program produced wrong output), Time Limit Exceeded (your program took too long to compute an output) or general errors such as Compilation Error or Runtime Error. You are allowed to submit solutions for exercise sheets and exams in C++, Java, Python and Rust.

Points will be awarded iff your solution is accepted as correct by our automated judge. You will need to reach 50% of all possible points to be admitted to the exam.

 

Exams

Exams are practical contests. You are given a set of problems where you have to find, implement, and submit a solution. Exam solutions are implemented on your computer (inside of a VM provided by us with no internet connection), submission is possible through a portal provided by us.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.