Semester: summer 2023/24
Lectures: Virtual, Virtual (Pavel Ježek)
Labs: Virtual, Virtual (Filip Kliber)
Page in SIS: NPRG038
Grading: Credit and exam

Table of contents

[in Czech] Zde jsou informace pro studenty anglické paralelky předmětu Pokročilé programování v jazyce C#. Pro českou verzi si v záhlaví stránky přepněte jazyk do češtiny.

Lectures outline

There are no regular lectures planned for the purpose of this course. Instead, the students will receive materials for self study that cover the topics for practicals and homeworks. Every 2-4 weeks, there will be a meeting/consultation lead by Pavel Ježek where students can ask questions regarding the provided materials.


Practicals outline

Information about the Exam

Primary part of the exam consist of written part including around 6 to 8 questions (which might include sub-questions). Every question has a visible maximal amount of points that can be awarded for the question (=N). For correct answer, the student will receive N points for the question; for incomplete, but overall good answer (i.e. some part of the answer is missing or is incorrect), the student will receive 0.5 * N points; in other cases, the student will receive 0 points (i.e. if the answer is missing completely or is mostly incorrect).

The student can receive up to 10 points from the Exam. The mapping between points and grade is as follows:

Points from the exam Awarded grade
10 – 8.5 1
8 – 6.5 2
6 – 5 3
4.5 – 0 4

The written part of the exam takes up to 150 minutes (i.e. 20 minutes for each question, with 30 minutes extra time). After the written part, the oral part follows, where the examiner discusses the answers with the student, demands clarification when needed and asks complementary questions if deemed necessary — based on this, the final amount of points for each question is determined. The evaluation is always based on written part of the Exam, which means that student can’t be awarded with more than 0 points for a question without an answer.

Requirements for the Credit

In order to receive the credit, it is necessary to fulfill these requirements:

1. Homeworks

There will be several (10-12) homeworks assigned during the semester. The difficulty of individual homeworks might vary. Successfully solving the homework task will reward the student with OK mark. If there are some problems with the submission (i.e. missing implementation of minor feature) the student will receive OK- mark. On the contrary, if the assignment is solved in elegant way, or somehow stands above the expected level of quality, the student will be marked with OK+. OK+ marks can erase the minus from OK- mark. In order to fulfil this requirement, the student has to have at least 5 OK marks, from which at least two are received for completing the homework on the topic of multi-threaded programming. The homeworks are graded individually. If you are unsure about your overall grading (e.g. you have quite a few OK-), contact your teacher for clarification.

Each extra OK mark above the count of 5 will give an extra 0.25 points for the exam.

Homeworks do not have a formal specification, but are rather vaguely described during the practicals. It is the student’s responsibility to understand the assignment by asking questions about the expected behavior during the practicals. The homeworks are to be submitted via the Study group roster in the SIS. It is necessary to upload whole assignment (i.e. just .cs files might not be enough, if the assignment also wants the student to set up a NuGet packages, etc.) as a ZIP archive. As opposed to the ReCodEx framework, the students will not receive an immediate feedback about the assignment, but rather will have to wait for the teacher to grade them.

Note: Homeworks are strictly individual.

2. Final Project


You can use single project to complete several courses about C# and .NET, if the project is complex enough:

The source code you (and only you) write has to be in C# language. Comments are included, but everything has to be reasonable.

Final Project requires additional (nontrivial) usage of features and techniques taught on lectures/practicals of these courses (such as Multi-threaded programming, Networking, LINQ, Reflection, …).

Please prepare few slides (talk) about your application’s main features, problems you faced and overall design overview.

Acknowledgement of requirements from past years

If the student was enrolled in this course during the last academic year and fulfilled only some of the requirements for the credit, the teacher can, upon student’s request, acknowledge the fulfillment of requirement from the last year (attendance, homeworks, Practical Test or Final Project). The topic (specification) of Final Project does not need to be acknowledged by new teacher. If the student succeeded in the exam, but didn’t receive the credit, it is possible, upon student’s request, acknowledge the result of the exam. This is a good will of teachers of this course and students can’t enforce this on study department!