Introduction to programming DSBA 2020/2021

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

Notifications

During the second semester information about the course will be available at this link

Teachers and assistants

Group 201 202 203 204
Lecturer Voznesenskaya T.V.

tvoznesenskaya@hse.ru , tg: @tvozn

Workshop Instructor 201 - 1: Piatskii G.G.
piatskgeorge@mail.ru, tg: @p_george

201 - 2: Zhulikov G.
l8doku@gmail.com , tg: @l8doku

202 - 1: Rudakov K.A.
rudakovkirillx@gmail.com , tg: @ArcticBEARD

202 - 2: Zhulikov G.
l8doku@gmail.com , tg: @l8doku

203 - 1: Chuvilina A.A.
chuvilinaann@list.ru , tg: @chuvilinaann

203 - 2: Rudakov K.A.
rudakovkirillx@gmail.com , tg: @ArcticBEARD

Sysoev M. V.
sysoevmark@gmail.com, tg: @BartolomeuD

Assistant Diana K., tg: @shadowcure Rustam K., tg: @dergalaktischekaiser Lily K., tg: @lily_kurchenko Sergey G., tg: @SeregaEFD
Jingtao X., tg: @andy0814xu
Group 201 202 203 204
Lecturer Shershakov S. A.

sshershakov@hse.ru , tg: @sshersh

Workshop Instructors Piatskii G.G.
piatskgeorge@mail.ru, tg: @p_george

Zhulikov G.
l8doku@gmail.com , tg: @l8doku

Zhulikov G.
l8doku@gmail.com , tg: @l8doku

Piatskii G.G.
piatskgeorge@mail.ru, tg: @p_george

Julio Carrasquel
jcarrasquel@hse.ru , tg: @juliocarrasquel

Shershakov S.
sshershakov@hse.ru , tg: @sshersh

Shershakov S.
sshershakov@hse.ru , tg: @sshersh

Julio Carrasquel
jcarrasquel@hse.ru , tg: @juliocarrasquel

Assistant Alexander S., tg: @Halters Rustam K., tg: @dergalaktischekaiser Dmitriy K., tg: @dmitrykara Nikolay K., tg: @nickuks
Anika D., tg: @indiaaan_girl

Grading system

The ultimate grade G for the whole course is calculated as: G = 0.7 · min(P1, P2) + 0.3 · max(P1, P2) where P1 is a first part final grade, and P2 is a second part final grade. Grade G is rounded (up or down) to an integer number of points before entering them into records. P1 and P2 are also rounded.
The final grade P1 for the first part is calculated as follows: P1 = 0.4 · E1 + 0.6 · OA1 where E1 is a grade of the first part exam, which takes place at the end of the quartile 1 (semester A), OA1 is an ongoing assessment grade of the first part (both 10-point scale). The ongoing assessment OA measures participant’s performance throughout all classes and involves various types of activities.
The ongoing assessment grade is accumulated throughout all the classes and is related to a participant’s activity. Every activity is evaluated and grants some points to participants. We consider two sorts of points: 1) regular points (RP) and 2) bonus points (BP). BPs are given for additional efforts and for excellent jobs. RPs and BPs are accumulated during a module. At the end of the module OA is calculated according to the following formula: OA = min([10 · (RP + BP) / RPmax ], 10) where, RPmax denotes the maximum possible number of points that can be taken during the module.
Regular points are granted for contests (1 per task) and quizzes conducted at the lectures (1 per quiz). Bonus points can be granted for activity at almost all workshops and working at the whiteboard at the workshops (the amount of points for such activities are determined by workshop instructors). Non-pilot groups can also earn bonus points by completing extra homework (tasks in the contests marked with * and **), in this case 1 bonus point is granted for every task completed. The amount of bonus points that can be gained during the semester cannot exceed 50 points.

Lecture notes

Lecture 1. Introduction
Lecture 2. Numeral systems. Real numbers.
Lecture 3. Strings. The Zen of Python. PEP-8.
Lecture 4. Lists&tuples
Lecture 5. Functions&recursion
Lecture 6. sets & dictionaries
Lecture 8. files. exceptions & errors
Lecture 9. functional
Lecture 10. OOP
Lecture 11. sort & search
Lecture 12. data structures
lecture 13. Python for data analysis [1] [2] [3]
Lecture 14. web scraping

Workshop notes

Workshop 3_Number systems [4]
Workshop 4_real_strings [5]
Workshop 5_strings [6]
Workshop 6_strings [7]
Workshop 7_lists_tuples [8]
Workshop 8 Tasks on lists & tuples [9]
Workshop 9 Functions & Recursion [10]
Workshop 10 Some more tasks on Functions [11]
Workshop 11 Sets_Dictionaries [12]
Workshop 12 Tasks on sets and dictionaries [13]
Workshop 13 Files_Exceptions_Errors [14]
Workshop 14 Code Style and Code Reading [15]
Workshop 15 Iterators and Generators [16]
Workshop 16 Functional Tasks [17]
Workshop 17 OOP [18]
Workshop 18 OOP_tasks [19]
Workshop 19 Sorting and Searching [20]
Workshop 21 Data Structure [21]
Workshop 22 Graph [22]
Workshop notes as PDF: [23]
Workshop 23. Github. Numpy. Pandas [24] [25] [26]
Workshop 24. Visualization [27]
Workshop 25-26. Web scraping [28]
Workshop 27. Flask_part1[29] Flask_part2[30]

Homeworks

Contests

Contest Deadline
Contest 1 21 Sep 2020, 23:59:59
Contest 2 28 Sep 2020, 23:59:59
Contest 3 5 Oct 2020, 23:59:59
Contest 4 19 Oct 2020, 23:59:59
Contest 5 26 Oct 2020, 23:59:59
Contest 6 26 Oct 2020, 23:59:59
Contest 7 9 Nov 2020, 23:59:59
Contest 8 16 Nov 2020, 23:59:59
Contest 9 30 Nov 2020, 23:59:59

Results

Table with results

November 14 Test

Retake will take place on Saturday, December 05 at 12.50

The rules are the same. Anyone who scored 20 points and below can go to retake. The maximum possible number of points on a retake - 30.

You will have 4 problems for 80 minutes: A, D - 10 points each, B, C - 5 points each.

The link to zoom:

https://zoom.us/j/99169100569 Meeting ID: 991 6910 0569 Passcode: 373490.

The link to the contest: https://official.contest.yandex.com/contest/23369/enter.

Students who face any technical problems will write a supervised test at zoom and should be prepared to further defend their decisions. The link for those students is:

https://zoom.us/j/98185159185?pwd=aFZYVU5uNDhtYkVuT014SHFLaFd2dz09 Meeting ID: 981 8515 9185 Passcode: 488301

After the test submit the recording to this form within 30 minutes: https://forms.gle/1iuypcJjqzLkxUB5A

If you are unable to submit the recording in 30 minutes, send the size ( in bytes ) of your video file using the same form. Later, when you are able to submit the recording, do it using the same form.

Before the Test

The test will be held using asynchronous proctoring on November 14, 2020 at 13:00. Here is the zoom link:

https://zoom.us/j/97320428256 Meeting ID: 973 2042 8256 Passcode: 645654

This conference will be used for the final briefing and to communicate with teachers during the test if necessary. You can message them in the conference chat. Each student must record the process of completing the assignments using OBS Studio, upload the result to the cloud storage immediately after the quiz and provide a link to the recording. Link to the contest (will be duplicated in the zoom chat):

https://official.contest.yandex.com/contest/22472/enter

Students who face any technical problems must alert their TA. They will write a supervised test at zoom and should be prepared to further defend their decisions at:

https://zoom.us/j/99097338323?pwd=dk5obm92d3NTajlCcUh2ZXV0dElWUT09 Conference ID: 990 9733 8323 Password: 195557

You will need a computer with a webcam and microphone (the majority of modern laptops have them) and Internet access.
You need to install OBS Studio using the link https://obsproject.com/ru
You need to record the microphone and webcam input as well as your screen. See instructions in the video: https://www.youtube.com/watch?v=KVKrvPvPLYg

You can use:

  • The testing system site (https://contest.yandex.com/) and your solutions of past contests in it.
  • Development environments (installed on a computer ONLY, web IDEs are not allowed)
  • Materials posted on this page
  • Python documentation at https://docs.python.org/

It is prohibited to communicate with other people. Please warn the people around you about this in advance.

Actions you must complete before the test:
  • Disable all messengers in advance and close all unnecessary tabs.
  • Physically disconnect and remove any electronic devices and additional monitors from the workplace.
  • You will not be able to leave your workplace for 1 hour 30 minutes, be ready for that.
  • Enable recording from three sources: screen, webcam and microphone in OBS Studio.
  • Record your workplace from and its surroundings on video.
  • Show the camera the blank pages you plan to use as drafts.
During the Test

On November 14, 2020 at 13.00 enter the zoom using the link that will appear here, higher on this page and in the Telegram chat. Please disable Telegram after receiving the link. We will provide a general briefing. This Zoom conference will be used as a chat to communicate with teachers during the test, if necessary.
Please start recording before you start the test! Students who started recording too late will be disqualified. At 13:15 a contest consisting of 5 problems opens (10 points per problem). The contest closes at 14:45.
When the test is over, you will have half an hour to upload the recorded video. Only the teachers and assistants will view your videos.
Please check that you have learned how to record video in the required format in advance as this can sometimes be problematic. All solutions to problems with recording in OBS Studio can be found online.

Procedure during the test:
  • You should ask any questions via the testing system or via chat in zoom.
  • If you are working with a paper draft, aim the camera so that your hands are visible. Remember to point your webcam at your face when you return to work at your screen.
  • You can receive important announcements from instructors through the testing system. Notifications appear in the upper right corner of the testing system interface.
  • If you want to complete the test ahead of time, message the teacher or a TA using the questions interface in the testing system and complete all the actions that you must perform after the end of the test.
  • If you try to return to the test after sending this message, you will be disqualified.
  • Wearing headphones is prohibited.
After finishing the test:

Within 30 minutes, you must post the video that you recorded during the test in the public domain and submit a link to it in this form: https://forms.gle/ZtzU9QGhZ8gbFpyq7

Don't forget to upload a copy of your document (passport or student ID)

Good luck!

Project

Deadline: December 17th, 23:59

Submission format. Jupyter Notebook, submit a link to the notebook file and the dataset file via this Google form: https://forms.gle/NhAhe9LMebbkWWxd7

Dataset selection. After you choose a dataset for the project, submit it to this form: https://forms.gle/YK9ijh5iTqB72y4eA

When selecting a dataset, check this table with the form responses to make sure nobody else has picked it. https://docs.google.com/spreadsheets/d/1Q9o0FBh-lNGbqGT63NtLHIPNI5AP21obq4S12pfHdh0

Project description: Find a dataset with text data and analyze it the following way.

  1. Output descriptive statistics of the dataset: mean, median, standard deviation. Do this for at least 3 numerical fields.
  2. Plot at least 3 numerical fields. Choose the plot type based on the data. It may make more sense to do a scatter plot, a regular plot, a histogram or something else.
  3. Do at least 2 comparisons similar to the ones in the Titanic example. "What are the distributions of the column A for different values of the column B?" Output as either numbers or plots.
  4. Describe your results in 2-3 paragraphs of text. What you can see from the plot, from the statistics and comparisons.

Exam

will take place on Saturday, December 26 at 10:00

The rules are the same as on test.

In the case of plagiarism, zero is set for the entire work. In case of suspicion of plagiarism, the student will be summoned for defence.

The link to zoom: https://zoom.us/j/99403879699 Passcode: 859144

The link to the contest: https://official.contest.yandex.com/contest/23903/problems/

Students who face any technical problems will write a supervised test at zoom and should be prepared to further defend their decisions. The link for those students is: https://zoom.us/j/93234922042?pwd=OFE3MmVtVzZKWExYUnJvTkJ5VGV5UT09 Passcode: 755751

You can use:

  • The testing system site (https://contest.yandex.com/) and your solutions of past contests in it.
  • Development environments (installed on a computer ONLY, web IDEs are not allowed)
  • Materials posted on this page
  • Python documentation at https://docs.python.org/

After the test submit the recording to this form within 30 minutes: https://forms.gle/gF6RZQMAWpGbokZ48

If you are unable to submit the recording in 30 minutes, send the size ( in bytes ) of your video file using the same form. Later, when you are able to submit the recording, do it using the same form.

Syllabus

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