Ozzey / cpp-mipt-2021

A repo for publishing C++ homework assignments for 1st year MIPT DIHT international students.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C++ MIPT

Links

Rules of the game

Lessons

During the semester, the group will have one lesson of C++. Lessons are conducted in Zoom. Links to lessons are posted in advance in telegram chat. Course roadmap can be found here. Presentation slides from lessons can be found here

Restrictions

It's absolutely prohibited to write off, each task must be solved individualy! We'll ban every writen off solution. Furthermore, we'll also ban the solution wrom which the other student has written off. If the situation will happen again – it will cause an instant retake for both sides. You'll also have to stick to codestyle guide: Google codestyle.

Final grade

You'll have two final grades for each of the semesters. Your final grade for every semester can be calculated with this formula: (semester_score >= 30 && exam_talk_score >= 3) ? round(semester_score / 10) : retake(). The formula implies that you must get at least 30 points for problems and pass talk with 3 points to get a positive final grade.

Exam

I will conduct two online examinations (one in each of the semesters). Each time you'll have to solve examination contest and attend the talk. Contest costs 30 points n the first semester and 10 in the second respectively. Contest is strictly limited in time (look above to find links and durations). Talk costs 10 in the each of the semesters. During a talk, you'll get one random ticket from the list: first semester tickets – in the first semester and second semester tickets – in the second one.

Exam talk

On the appointed day of the exam talk, I will publish a list of students, which will include the talk start time for every individual student. At the appointed time, you should follow the link to the zoom conference, which I will send in the telegram chat. I will give you a ticket, and you will move to the online preparation room for thirty minutes, at this time I will listen to another student. During preparation, you can use whatever you want. After thirty minutes of preparation, we start discussing your ticket. During the discussion, I will ask additional questions, and, possibly, give you some simple tasks to check your skills in programming. As a result of the exam, I will give you a grade, and you will see it in the spreadsheet with grades. Be prepared to turn on the camera and show the code on your computer screen.

Retake

The retake consists of only one part: the talk. First you are assigned a ticket following the same procedure as for the main exam. You prepare to answer the ticket for thirty minutes while I talk to another student. Next, we start a thirty minute talk. During the first fifteen minutes, you must demonstrate knowledge of the ticket (for this, a free retelling of the main topics with code examples is suitable). In the remaining fifteen minutes, I will ask a few questions in a blitz format. Be prepared to turn on the camera and show the code on your computer screen. The individual date and time of the retake for each student will be published in the spreadsheet with grades (link is above).

Commission

The commission consists of only one part: the talk. First you are assigned a ticket following the same procedure as for the main exam. In addition to the ticket, you are given a practical task that must be solved before starting a talk (during your preparation). You prepare to answer the ticket and solve the problem for fourty minutes while I talk to another student. Next, we start a fourty minute talk. During the first fifteen minutes, you must demonstrate knowledge of the ticket (for this, a free retelling of the main topics with code examples is suitable). In the next fifteen minutes, you must explain your solution to the problem given to you. In the remaining ten minutes, I will ask a few questions in a blitz format. Be prepared to turn on the camera and show the code on your computer screen. The individual date and time of the commission for each student will be published in the spreadsheet with grades (link is above).

Codereview

Blocks 3 and 4 of the contest have problems with codereview: problems 3D, 4A and 4B. The codereview is conducted by my assistant, who checks your code (after it passes all the tests and you get the AcceptedForTesting status). The assistant sends all comments on the code to you in telegram. This process goes on cyclically until your code is written well. When the assistant considers that your code is good, he will manually set the status OK for your solution.

Codereview criteria

  • Codestyle: Codestyle must conform to the standards described in this document.
  • Logic and optimality of the solution: your code should be logical, divided into understandable structural units, the code should be read as a story. Feel free to add clarifying comments if necessary. The code should be laconic: for example, if you can get by with a ternary operator, instead of branching with if/else, it is better to use the ternary operator. Also in this criterion the success of naming variables is evaluated.
  • Code correctness: your code should work not only on provided autotest, but also in any other cases, all edge cases should be taken into account.
  • Asymptotic optimality: the solution must be asymptotically optimal in both time and memory.

Copyright

Creative Commons Licence

All materials are available under license Creative Commons «Attribution-ShareAlike» 4.0.
When borrowing any materials from this repository, you must leave a link to it, also, you should include my name: Konstantin Leladze.

© Konstantin Leladze

About

A repo for publishing C++ homework assignments for 1st year MIPT DIHT international students.

License:Creative Commons Attribution Share Alike 4.0 International


Languages

Language:C++ 100.0%