Programming in C++

NPRG041

2024/2025

Martin Svoboda

Department of Software Engineering

Warning (particularly to Erasmus students) - before you enroll to this course

This course assumes that all participants already acquired some experience in programming, understanding of object-oriented programming, and basic knowledge of C (or C++) and C# or Java. If you are a beginner in programming, you shall not enroll. If your experience covers only python, PHP, JavaScript, Pascal, FORTRAN, or similar languages, you may expect problems understanding some parts of the lecture.

For regular students of Computer Science, this assumption is covered by the prerequisities of the subject.

Communication

For communication on all aspects of this course, please use Mattermost. (Your emails are often classified as junk.)

For the first logging-in, you will need an invite-link, placed in the Notice-board module in the SIS. (This invite link is valid for several courses that share the same Mattermost team 2425ZS for the first semester of 2024/25.) When registering, please choose a name corresponding to your real-life identity in SIS.

The channel nprg041-english is dedicated for the English-speaking students. The channel is intended for communication between teachers and students, as well as related discussions between students. In addition, you may use direct messages for non-public communication.

Tutorials and credits

2024/25: Tue 14:00 SW2

The exact conditions for receiving course credit are set by the teacher of the tutorials. The main parts of course credit are

  • Credit test - see below, required for admission to exam
  • Programming project - topics and deadlines individually arranged with the teacher, final version typically delivered during the summer semester

Credit tests and exams

  • NEW: Guide to credit/exam tests

The credit tests and exams take place in a computer lab (S[UW][12] or N8/11). To ensure equal environment, students must use only the computers of the lab, either in Windows or in Linux mode. The use of notebooks (or other computing devices not installed in the lab) is not allowed during the credit/exam tests. Students shall not use any resource other than the compiler, debugger, editor and/or IDE installed at the lab and the language reference manuals at cppreference.com or cplusplus.com. Before attempting an exam, make sure that you are familiar with the development environment at the lab computers.

Each student must work independently.

Credit test

Each group will have a final homework assignment during the semester. The credit test assignments of students in this group will be based on an extended or modified version of this final homework; students will be allowed to download and edit their final homework solution from the recodex during the credit test.

The credit test will last 90 minutes, including the presentation of the assignment and the necessary handling of the recodex, so probably no more than 60 minutes will be left for solving the task itself. It would be extremely difficult to create the entire solution to this task during the credit test. It is therefore in the interest of every student, before the credit test, to create (and insert into the recodex) such a solution to the final homework, which does not obstruct further modifications and extensions.

The decision on successful completion of the credit test will be based not only on the result of the automated tests in the recodex, but also on the assessment of the source codes by the teacher.

Each student has two attempts to pass the credit test.

The standard credit test will be held at the last session of the given group, i.e. in the last week of classes.

The second date of the credit test will take place in the first half of the exam period. Although the date will be shared among multiple groups, each student will be assigned a task related to their group's final homework. (However, it will be a different version than at the standard term.)

Although there may be more than one secondary credit test date (depending on the total number of students who failed the basic dates), only one of these terms will be available for a given group.

Exam

The successful completion of the credit test is required for admission to the exam. Students who pass the credit test only at the second date will thus be deprived of the opportunity to take the exam in the first weeks of the exam period.

The content of the exam is the programming of an assigned task within a time limit of 3.5 hours, including submission to the recodex system. All students solve the same task in a given term.

The evaluation of the exam will be based not only on the result of the automated tests in recodex, but also on the assessment of the source codes.

In accordance with the study regulations, the exam can be taken three times, the last result counts.

All the exam dates published in SIS are mixed Czech/English. Exams will be supervised by various teachers, the examiner name mentioned in SIS is just a placeholder.

Lectures

2024/25: Tue 12:20 S4