Introduction to Programming 2 DSBA 2022/2023

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Notifications

Please, do not consider this page as the main one, it is just an addition to the official course page on SmartLMS platform. In case of any inconsistencies, please, follow the instructions given there.

Teachers and assistants

Group 221 222 223 224
Lecturer Zhulikov G.A.
gzhulikov@hse.ru
tg: @l8doku
Workshop Instructor 221-1, 221-2: Shershakov S.A.
sshershakov@hse.ru
tg: @sshersh
222-1: Shershakov S.A.
sshershakov@hse.ru
tg: @sshersh

222-2: Zhulikov G.A.
gzhulikov@hse.ru
tg: @l8doku

223-1, 223-2: Rudakov K.A.
rudakovkirillx@gmail.com
tg: @ArcticBEARD
224-1: Rudakov K.A.
rudakovkirillx@gmail.com
tg: @ArcticBEARD

224-2: Gordenko M.K.
mgordenko@hse.ru
tg: @oduvan_ja

Assistant Makarenkov Artem
tg: @Artem_Makarenkov
Kulakov Denis
tg: @Kulakov_Denis
Shestakov Artem
tg: @aptemvs
Fomin Gena
tg: @Genfom
Head TA Pronina Anna
tg: @l_AnnaPronina_l

Grading system

caption

Study materials

Week Date Topic Lecture slides Lecture recordings Workshop materials
1 9 Jan Introduction Lecture 01 Lecture 01 Seminars 01-02
14 Jan Basics Lecture 02 Lecture 02
2 16 Jan Control Flow Lecture 03 Lecture 03 Seminars 03-04
21 Jan Strings and Streams Lecture 04 Lecture 04
3 23 Jan Procedural Decomposition Lecture 05 Lecture 05 Seminars 05-06
28 Jan References Lecture 06 Lecture 06
4 30 Jan STL Lecture 07 Lecture 07 Seminars 07-08
4 Feb Iterators Lecture 08 Lecture 08
5 6 Feb Sets and Maps Lecture 09 Lecture 09 Seminars 09-10
11 Feb Ranges and Custom Comparators Lecture 10 Lecture 10
6 13 Feb QUIZ discussion ... Lecture 11 Seminars 11-12
18 Feb QUIZ discussion ... Lecture 12
7 20 Feb Structures Lecture 13 Lecture 13 Seminars 13-14
25 Feb Structures. Pointers. Classes Lecture 14 Lecture 14
8 27 Feb Classes. Constructors Lecture 15 [Lecture 15] Seminars 15-16
4 Mar Classes. Operator Overloading Lecture 16 Lecture 16
9 6 Mar Exceptions. Errors Lecture 17 Lecture 17 Seminars 17-18
11 Mar Templates Lecture 18 Lecture 18
10 13 Mar Bitwise operations. Enums Lecture 19 Lecture 19 Seminars 19-20
18 Mar Type casting. Enum. Enums class Lecture 20 Lecture 20
11 20 Mar Memory model. Pointers Lecture 21 Lecture 21 Seminars 21-22
25 Mar ... ... ...
12 3 Apr Memory model. Stack and Heap Lecture 23 Lecture 23 Seminars 23-24
8 Apr Memory model. Constant Pointers Lecture 24 Lecture 24
13 10 Apr Inheritance 1 Lecture 25 Lecture 25 Seminars 25-26
15 Apr Inheritance 2 Lecture 26 Lecture 26
14 17 Apr string_view Lecture 27 Lecture 27 Seminars 27-28
22 Apr ... ... ...
15 24 Apr Qt 1 Lecture 29 Lecture 29 Seminars 29-30
29 Apr Qt 2 Lecture 30 Lecture 30
16 13 May Qt 3 Lecture 31 Lecture 31 Seminars 31-32
17 15 May Qt Classes Lecture 32 Lecture 32
18 May Qt Models Lecture 33 Lecture 33 Seminars 33-34
20 May Qt 4 Lecture 34 Lecture 34
18 22 May Qt 5 Lecture 35 Lecture 35 [ Seminars 35-36]
27 May Qt 6 Lecture 36 Lecture 36
19 29 May Qt 7 Lecture 37 Lecture 37 [ Seminars 37-38]
1 June Qt 8 Lecture 38 [ Lecture 38]
20 5 June Qt 9 Lecture 39 [ Lecture 39] [ Seminar 39]

Honor Code

Plagiarism rules are using the Honor Code based on the ideas of Stanford University. You may discuss general ideas and strategies, look up information about particular steps of your solution (e.g. "how to open a file"). You may use your past results. However,

  • Never look at other people's solutions (both from other students and from the Internet) specific to problems from the course.
  • Never share your solutions.
  • State any outside help you received, including other students.

You can get acquainted with the full text of the Honor Code on SmartLMS.

Contests

Contest Preliminary Deadline Topic
Contest 1 24 jan 2023, 23:59:59 31 jan 2023, 23:59:59 Basic Operations
Contest 2 1 feb 2023, 23:59:59 15 feb 2023, 23:59:59 Strings
Contest 3 18 feb 2023, 23:59:59 25 feb 2023, 23:59:59 STL
Contest 4 17 mar 2023, 23:59:59 24 mar 2023, 23:59:59 Classes
Contest 5 15 apr 2023, 23:59:59 24 apr 2023, 23:59:59 Bitwise Operations
Contest 6 (bonus) - 6 may 2023, 23:59:59 string_view

In addition to regular in-built tests, there are manual checks in the contest (if there are major flaws in your solution, but you still pass the tests, you get a reduced grade). To give you a chance to fix and flaws, there will be a preliminary deadline for each contest. Submission rate will be limited to 1 submission every 5 minutes. Thus, please, test your code locally before submitting it.

Remember that you can extend any homework/project deadline for 24 hours. You may have 3 such extensions for the whole course. But note, that you cannot use more than 2 extensions for the same deadline. In order to get an extension, please, fill in the form on the SmartLMS platform.

Also, do not forget about CodeStyle. It is based on the "Google C++ Style Guide", but with minor differences:

  • The indent size is 4 space characters.
  • Tab characters must not be used.
  • Nested structures should be indented.
    • Your indentation structure should look similar to Python code, where such indentation is mandatory.
    • Your own namespace is an exception to this rule.
  • Place the opening brace on the new line.
    • Short single line function are an exception (for example, line `int getValue() { return _value;})
  • The asterisk for pointer definition and the ampersand for references should be written next to the type (for example, use int* p = getPointer(); for pointers instead of int *p = getPointer())

Defenses

Some of your works are to be defended. There are 2 types of defenses:

  1. Defenses of potentially plagiarized works. The result may be one of 2 options: the full grade if the defense was successful, or 0 otherwise. Please, note that the teaching team has the right to nullify your work without letting you defend it if the fact of plagiarism is extremely clear.
  2. Defenses which are a part of the assessment. For example, the defense of your BigHW project.

The defenses of your homeworks take place during your assistant’s consultation every Wednesday from 16:00 to 19:00. The deadline is exactly 2 Wednesdays after the work’s grading. In particular cases you may ask to reschedule your defense. For that, please, write assistant Anna on telegram (do not forget to mention the reason for your request).

Results

The results can be found here as well as in your SmartLMS

Control works

Tests (control works or extended quizzes) will be held offline, using OBS proctoring you're familiar with. There are two new rules:

  1. Your OBS recording should show all your running processes at the start of the video (open task manager and scroll through it).
  2. Instead of file size, submit MD5 hash of the video if you can't upload it right away.

Extended Quiz 17 Feb

Your first extended quiz with theoretical questions will be conducted on Friday, February 17, at 16:20 in the offline format.

All the details can be found at Introduction to Programming 2 DSBA 2022/2023 / ExQuiz1.

Control Work 24 March

Your CW will take place on Friday, March 24, at 16:20 in the offline format.

Contest link - https://official.contest.yandex.com/contest/47897

All the details can be found at Introduction to Programming 2 DSBA 2022/2023 /Contest1.

Midterm 11 May

Your midterm will take place on Thursday, May 11, at 16:20 in the offline format.

Contest link - https://official.contest.yandex.ru/contest/49500/problems/

All the details can be found at Introduction to Programming 2 DSBA 2022/2023 /Midterm.

Project

The whole BigHW is worth 100 RP.
The score is given for the entire work. Separate parts are not evaluated.

Deadline
Specification 15 May 2023, 23:59:59
Project 10 June 2023, 23:59:59
Peer review 14 June 2023, 23:59:59

Please, note, that during this work you are not allowed to use more than 1-day-extension at one stage.
Discussions/defenses will continue until the end of the semester.

Useful information:

Exam

Your exam will be conducted on Wednesday, 28th of June, at 13:00 in the offline format, using OBS proctoring you're familiar with.

Contest link - https://official.contest.yandex.com/contest/50435/problems/

All the details can be found at Introduction to Programming 2 DSBA 2022/2023 /Exam.

Syllabus

https://www.hse.ru/edu/courses/749558890