Introduction to Programming DSBA 2021/2022 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Откат правок Skynet (обсуждение) к версии Tvozn)
 
(не показано 48 промежуточных версии 4 участников)
Строка 1: Строка 1:
 
== Notifications ==
 
== Notifications ==
 
=== During the second semester information about the course will be available at [https://edu.hse.ru/course/view.php?id=56898 this link] ===
 
  
 
== Teachers and assistants ==
 
== Teachers and assistants ==
Строка 31: Строка 29:
 
|-
 
|-
 
| colspan="4" | Sadullaev M., tg: [https://tlgg.ru/samiysamiytochniy @samiysamiytochniy]
 
| colspan="4" | Sadullaev M., tg: [https://tlgg.ru/samiysamiytochniy @samiysamiytochniy]
|}
 
 
 
|}
 
|}
  
Строка 43: Строка 39:
 
== ''' <span style="color:#DC143C">Сontrol work</span> '''==
 
== ''' <span style="color:#DC143C">Сontrol work</span> '''==
  
'''The control work will take place on Mondey, 08.11 at 12.50 in an online format using asynchronous proctoring'''
+
'''The control work will take place on Monday, 08.11 at 12.50 in an online format using asynchronous proctoring'''
  
'''All instructions can be read [[here | Rules]]'''
+
The contest will start at 13.00. At 12.50 in the zoom on the lecture link there will be an instruction. Also, this zoom will be used to be able to ask a question or make an announcement during the test.
  
'''Link to the contest:''' will be here before the start
+
You will have 5 problems for 80 minutes: A, В, С, D - 10 points each, E - 20 points. The points earned on the test are part of Ongoing Assesment.
  
'''Video download link''' - form [https://docs.google.com/forms/d/e/1FAIpQLSdO0AAkt9XhcrvXZKqZP-RVs9WhS2_aB77d5vLZtaIteT5spA/view]
+
'''Students who face any technical problems''' must alert their seminarist or TA. They will write a supervised test in zoom and should be prepared to further defend their works. Zoom link for such  students:https://zoom.us/j/92446507737
 +
 
 +
'''All instructions can be read here [[Introduction_to_Programming_DSBA_2021/2022/Control_work_rules | Rules]]'''
 +
 
 +
'''Link to the contest:''' https://official.contest.yandex.com/contest/31178/problems/ 
 +
 
 +
'''Video download link''' - form [https://docs.google.com/forms/d/e/1FAIpQLSeG9R8BGosVAO84z2C_lQX-GAcDxsXJ3Cfhys2t2kUo84r8cw/viewform?usp=sf_link]
 +
 
 +
 
 +
=== Who have missed CW ===
 +
 
 +
Students who have missed the control work for a good reason will be able to write it '''on Monday, December 6 at 12.50.''' The rules are the same as for the main attempt (proctoring with the help of OBS system, etc.) The link will be sent before the control work
 +
 
 +
'''Link''' — [https://zoom.us/j/95617319275 here]
  
 
== Lecture notes ==
 
== Lecture notes ==
  
 
[https://drive.google.com/file/d/1jpJmpOubHceZOTkCs5oHgnzbsLNs7AfZ/view?usp=sharing Lecture 1. Introduction] <br>
 
[https://drive.google.com/file/d/1jpJmpOubHceZOTkCs5oHgnzbsLNs7AfZ/view?usp=sharing Lecture 1. Introduction] <br>
[https://drive.google.com/file/d/1jpJmpOubHceZOTkCs5oHgnzbsLNs7AfZ/view?usp=sharing Lecture 2. Sort & search] <br>
+
[https://drive.google.com/file/d/1cpQgDzfo0qx3KLi5FqyBql34NEiWnaH5/view?usp=sharing Lecture 2. Sort & search] <br>
 
[https://drive.google.com/file/d/1Wn8doFKX6QEgthcKNxozIp1vQTzxsbcg/view?usp=sharing Lecture 3. Functional & OOP] <br>
 
[https://drive.google.com/file/d/1Wn8doFKX6QEgthcKNxozIp1vQTzxsbcg/view?usp=sharing Lecture 3. Functional & OOP] <br>
 +
[https://drive.google.com/file/d/10oO1lk5BqVHedCY5QDnH0m2eF5JHu8cB/view?usp=sharing Lecture 4. Basic data structures. Graphs.] <br>
 +
[https://drive.google.com/file/d/19nr1z5Mx-cs_06KoNlik6MR2nHlLp9rj/view?usp=sharing Lecture 5. NumPy.] <br>
 +
[https://drive.google.com/file/d/1iLPnPtRKwYoi1V328_1BlBRtiin4bbLv/view?usp=sharing Lecture 6. Pandas. Matplotlib. Seaborn.] <br>
 +
Lecture 7.Python for data analysis. Examples: Titanic 1 [https://drive.google.com/file/d/1uTpw8kbj8oeexhEqiME1jU-1wNlVGIVK/view?usp=sharing], Titanic 2 [https://drive.google.com/file/d/1U4M_P5h1eTvRZwXL9RmaS4ZvxMgXLzcz/view?usp=sharing]<br>
 +
[https://drive.google.com/file/d/1xSStI-ObdWE76IJfKikDz7T5e1IvGA6s/view?usp=sharing Tweets] <br>
  
 
== Workshop notes ==
 
== Workshop notes ==
Строка 81: Строка 95:
  
 
[https://drive.google.com/drive/folders/1T-g8DUJtmF6uH1lFEZhh8X6KmZp_p8wB?usp=sharing Workshop 13.Search and sort]
 
[https://drive.google.com/drive/folders/1T-g8DUJtmF6uH1lFEZhh8X6KmZp_p8wB?usp=sharing Workshop 13.Search and sort]
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Topic !! ipynb (Jupyter) !! html !! pdf
 +
|-
 +
| 1. Introduction || [[https://drive.google.com/file/d/163k2AVJAOXi5vzuqhLTUbUtXBORDWjJ0| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%201%20-%20introduction HTML]] || [[https://drive.google.com/file/d/1XiWVH77w96t4M-bDcCMQ5yDoHvaDUbJc/view?usp=sharing PDF]]
 +
|-
 +
| 2. Numeral systems || [[https://drive.google.com/file/d/1SZqOa3szmbJtrGOvqOhOzqIWyN8lvjnO| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%202%20-%20numbering%20systems HTML]] || [[https://drive.google.com/file/d/123wWBNg80z067VBsrxRaNVnVTaxX2eZt/view?usp=sharing PDF]]
 +
|-
 +
| 3. If, while || [[https://drive.google.com/file/d/12dkRJ7DyOxn4u5rgfsD7ulA4VsZGk4_Y| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%203%20-%20if,%20for HTML]] || [[https://drive.google.com/file/d/1yJD7vFi5xLr2QUpQaN-XW2aTtBZwVKCt/view?usp=sharing PDF]]
 +
|-
 +
| 4. Floats and strings || [[https://drive.google.com/file/d/1Q1UAICsnU4nOtUqCC1GmK82Y18p6jdpo| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%204%20-%20real%20numbers%20and%20strings HTML]] || [[https://drive.google.com/file/d/1FHVmsqCxTTU03YZjrooyhXPu0_aLeYCo/view?usp=sharing PDF]]
 +
|-
 +
| 5. Strings || [[https://drive.google.com/file/d/17oz8WLoVY-XaSiyZe48i8q55zDNOOoGu| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%205%20-%20strings HTML]] || [[https://drive.google.com/file/d/1LWgVN1_HRF9imYoBTT-oApsXWzCtqdlU/view?usp=sharing PDF]]
 +
|-
 +
| 6. Tasks on strings || [[https://drive.google.com/file/d/1SQE9WIlXFXLAt9HwstpYbLiZSo17zOGf| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%206%20tasks%20on%20strings HTML]] || [[https://drive.google.com/file/d/1S5Dj9z4RQfrZx26GpRfJNf1VTRCBxWrZ/view?usp=sharing PDF]]
 +
|-
 +
| Extra: code style || [[https://drive.google.com/file/d/1KDJ0y0f4m2GjVUnURXBYCVplgXqYHH3c| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%206.%20code%20style.%20strings HTML]] || [[https://drive.google.com/file/d/1ScflFw797otQHv7dLkemNP1kxrhgBjxN/view?usp=sharing PDF]]
 +
|-
 +
| 7. Lists and tuples || [[https://drive.google.com/file/d/1Hrt-fJlQllybqis75yz7Z8J98SCbyROD| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%207_lists_tuples HTML]] || [[https://drive.google.com/file/d/1vx0G7hd_zCw-cj-AwySJwFTLQ0EwkRSb/view?usp=sharing PDF]]
 +
|-
 +
| 8. Tasks on lists and tuples || [[https://drive.google.com/file/d/1zGlaGLWZQ8GxjVLOI2arFbM69poj8DaY| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%208%20tasks%20on%20lists%20and%20tuples HTML]] || [[https://drive.google.com/file/d/1AnuIayxEnm4XrtA1h_f6wtyCC8WIgQw5/view?usp=sharing PDF]]
 +
|-
 +
| 9. Functions || [[https://drive.google.com/file/d/1az-sgSitygmDGMChX2EuhuQRF7sZ8P1T| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%209_functions_and_recursion HTML]] || [[https://drive.google.com/file/d/1CojdOj7mJUOxGk31dGyQtIsbqWIfuD5A/view?usp=sharing PDF]]
 +
|-
 +
| 10. Tasks on functions || [[https://drive.google.com/file/d/1hCh7NFgIFaQor4HnglfF-Dcgz285JEFy| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2010%20some%20more%20tasks%20on%20functions HTML]] || [[https://drive.google.com/file/d/1lHYfnUBg_3bCyqytJbnph0VO-N14ZHje/view?usp=sharing PDF]]
 +
|-
 +
| 11. Sets and dictionaries || [[https://drive.google.com/file/d/15g-eKzRayWOIt3ZgPjhfcB0Moefy_Uhk| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2011%20sets_dictionaries HTML]] || [[https://drive.google.com/file/d/1VoLiisI92gKjIzd2e_sy3xvUnmEQQ_tr/view?usp=sharing PDF]]
 +
|-
 +
| 12. Tasks on sets and dictionaries || [[https://drive.google.com/file/d/14Y4PqEVEDqhcWibSCFmE1XuGqo3VUxh5| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2012.%20tasks%20on%20sets%20and%20dictionaries HTML]] || [[https://drive.google.com/file/d/1EZ0NnyFlabcls1l6uHwgepJ7Op3gIre7/view?usp=sharing PDF]]
 +
|-
 +
| 13-14. Sorting and searching || [[https://drive.google.com/file/d/14rZvEish6O0uY5NLfm1Z8wlJpaYXvZfS| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2013.%20sorting%20and%20searching HTML]] || [[https://drive.google.com/file/d/1PtqR2-TNiJJ9Vt9zVDNzuzpKZvkGzoqa/view?usp=sharing PDF]]
 +
|-
 +
| 15. Iterators and generators || [[https://drive.google.com/file/d/1EnkVxx2QJ6UBK6uEgV35rTO7TK_JSh6G| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2015%20iterators%20and%20generators HTML]] || [[https://drive.google.com/file/d/1F4uy9x1Ux1HR6q7FXcighmyR2XW7BuXU/view?usp=sharing PDF]]
 +
|-
 +
| 16. Tasks on functional programming || [[https://drive.google.com/file/d/1xFiGPwNkJztADLbskVqUpR_iboX8kvn0| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2016%20functional%20tasks HTML]] || [[https://drive.google.com/file/d/1Xode0cKPxe4-Jq6Ywy1DyMLoABIzrAyx/view?usp=sharing PDF]]
 +
|-
 +
| 17. Abstract data structures || [[https://drive.google.com/file/d/1fRzr5BOQzzLrB3X2p5p6AeeljT1xHcE3| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2017%20abstract%20data%20structures HTML]] || [[https://drive.google.com/file/d/1gvZygA1-29tWFYXxI60E6Ht5UW8j7ZEQ/view?usp=sharing PDF]]
 +
|-
 +
| Extra: graphs, search algorithms || [[https://drive.google.com/file/d/1TJbAw_21DfrRpHSeQmOLWA4pWpFYUm0F| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2017.5%20graphs.%20trees.%20practice HTML]] || [[https://drive.google.com/file/d/1-3R9BViqZOWfzTsQ0LdNpa-IHhl-EHM9/view?usp=sharing PDF]]
 +
|-
 +
| 18. Files and exceptions || [[https://drive.google.com/file/d/1ewXawJhhl6pc8E1ZKrFc2vkZqGQG8yqR| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2018%20files,%20exceptions,%20errors HTML]] || [[https://drive.google.com/file/d/11SeZbzTku5pdiqNnpHFWAEqgk_Eg-Abn/view?usp=sharing PDF]]
 +
|-
 +
| 19. Test solutions. Practice || [[https://drive.google.com/file/d/1RHo1UV6RWsVow77NjDA5mCUHbRkWiBNk| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2019.%20test%20solutions.%20practice.%20random HTML]] || [[https://drive.google.com/file/d/1KCSUAVRZ-Gjx2gZ0NxwP3CJlHxkO5d_K/view?usp=sharing PDF]]
 +
|-
 +
| 20. File system || [[https://drive.google.com/file/d/11Uj52_pOlLu_b1TFMgPXf4BpiMYVjuPo| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2020.%20file%20system.%20practice HTML]] || [[https://drive.google.com/file/d/1V9LC4LQSIv14kCsQb3EtKYl-3Q7SsI5v/view?usp=sharing PDF]]
 +
|-
 +
| 21. Numpy. Pandas || [[https://drive.google.com/file/d/1RYc16Si3KOGjornzRhGG0cR_ldk0upOD| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2021%20numpy%20pandas HTML]] || [[https://drive.google.com/file/d/1Joy4Vl3Orgbo-hfma9usqWUSfvoYtonr/view?usp=sharing PDF]]
 +
|-
 +
| 22. Pandas || [[https://drive.google.com/file/d/1WqyvV9_h5eD_dDMine4bRYyjEUAzNWQw| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2022%20pandas HTML]] || [[https://drive.google.com/file/d/1ZTRjILBQevf8oKlXUhiheIvKwcGZXH-x/view?usp=sharing PDF]]
 +
|-
 +
| 23. Data analysis. Visualization || [[https://drive.google.com/file/d/1VXqRxxfI9b1Hp_zi_VccTbO7fLlesH1t| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2023.%20data%20analysis%20examples.%20visualization HTML]] || [[https://drive.google.com/file/d/1mdJOgYckOpJqu82krE8rf9QGZbky-EK-/view?usp=sharing PDF]]
 +
|-
 +
| 24. Visualization || [[https://drive.google.com/file/d/1rafsGZoSxILN1NbtwZAUvMUoaEGsQ-Cp| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2024.%20visualization. HTML]] || [[https://drive.google.com/file/d/1P9ITSj1ToL_w0gKX4BKF-ZdsrMoHmBTe/view?usp=sharing PDF]]
 +
|-
 +
| 25-26. Web requests. Scraping. || [[https://drive.google.com/file/d/1PlIMK9UkOCKlyRP-wiFfBnMCm9hIVc3J| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop%2025-26%20web%20scraping,%20requests HTML]] || [[https://drive.google.com/file/d/1zG03U9HnlZEhoEaIrtZzkpfjqxl2elss/view?usp=sharing PDF]]
 +
|-
 +
| 27. Flask || [[https://drive.google.com/file/d/19Gg8rmlnlCQmkH7jkA7Ohcc9GGsjoSnQ| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop_27_flask_part_1 HTML]] || [[https://drive.google.com/file/d/15whemE-OqO1xX3Zgla_mM4B46ab48Nmt/view?usp=sharing PDF]]
 +
|-
 +
| 28. Deploying Flask || [[https://drive.google.com/file/d/1gwU27N-Cb98zKIoAIMmiW2gUkZFMZt1G| Jupyter]] || [[https://vigorous-northcutt-59e55f.netlify.app/workshop_27_flask_part_2 HTML]] || [[https://drive.google.com/file/d/1T5cElJqCQhFUvJ9NoBaWm3UZ81h-14Mx/view?usp=sharing PDF]]
 +
|}
  
 
== Homeworks ==  
 
== Homeworks ==  
Строка 99: Строка 175:
 
|| [https://official.contest.yandex.com/contest/30083/enter/ Contest 5] || 30 october 2021, 22:00:00
 
|| [https://official.contest.yandex.com/contest/30083/enter/ Contest 5] || 30 october 2021, 22:00:00
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/30853/enter/ Contest 6] || 9 november 2021, 22:00:00   
+
|| [https://official.contest.yandex.com/contest/30853/enter/ Contest 6] || 16 november 2021, 22:00:00
 
+
|-
 +
|| [https://official.contest.yandex.com/contest/31586/enter/ Contest 7 (pilot)] || 30 november 2021, 22:00:00   
 +
|-
 +
|| [https://official.contest.yandex.com/contest/31178/enter/ Test] ||
 
|}
 
|}
 
  
 
=== Results ===
 
=== Results ===
Строка 111: Строка 189:
  
 
== Project ==
 
== Project ==
 +
'''Deadline''': December 12th, 23:59
  
 +
'''Submission format''': Jupyter Notebook + Data file. Submit the notebook file and the dataset example via this Google form: https://forms.gle/cvG8tLn2ugjMMAPj8
 +
 +
If your data is larger than 10 MB, please use a subset of data under 10 MB and submit the subset into the form.
 +
 +
'''Dataset selection''': After you choose a dataset for the project, submit it to this form: https://forms.gle/hQx7fpaneXKgRAJt9
 +
 +
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/1WQSgOzQdamwSWXexN7EHtVv2sstl6A9yVguQUMCAcZk
 +
 +
'''Project description''': Find a dataset with text data and analyze it the following way.
 +
 +
* Output descriptive statistics of the dataset: mean, median, standard deviation. Do this for at least 3 numerical fields.
 +
* 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.
 +
* Do at least 2 comparisons similar to the ones in the Titanic example. "What are the distributions of column A for different values of column B?" Output as either numbers or plots.
 +
* Describe your results in 2-3 paragraphs of text. What you can see from the plot, from the statistics and comparisons.
 +
* For pilot students one of the requirements is to set up a web server using the Flask framework. Web Server interface should be one of the following: end users must be able to get required data using get-requests, html page or telegram-bot.
 +
 +
Additional notes:
 +
 +
* Plots for tasks 2 and 3 are counted separately. So, your project has to have at least 5 plots in total.
 +
* Make sure your plots have proper legends, titles, axis titles, so that it’s easy to understand what the graph represents.
 +
* Try to format your project as a sequence of problems you’re solving. What the data looks like, what are some questions you can answer with the data. You should try to make a simple analysis project instead of doing exactly the bare minimum of tasks 1-4.
  
 
== Exam ==
 
== Exam ==
 +
 +
The exam is held '''on December 21st starting at 10:40''': you should enter the system at 10:40. The contest starts at 11:00. The total length of the exam is 120 minutes without breaks. After 120 minutes pass from the start of the exam, Yandex.Contest will stop counting your solutions towards the total grade, even though it will still be possible to upload the solutions.
 +
 +
During the exam:
 +
 +
You may use:
 +
# Lecture and workshop materials. Links: '''[[Introduction_to_Programming_DSBA_2021/2022#Workshop_notes|Workshop materials]], [[Introduction_to_Programming_DSBA_2021/2022#Lecture_notes|Lecture notes]]'''
 +
# Printed lecture and workshop materials.
 +
# Python documentation at https://docs.python.org
 +
# Your solutions to tasks from homeworks and the control work. Use Yandex.Contest only to open your previous code. Link: '''[[Introduction_to_Programming_DSBA_2021/2022#Contests|Contests]]'''
 +
# IDE tools. Built-in documentation, automatic code checking tools, debugger and so on.
 +
 +
The page for built-in types (lists, dictionaries) may be hard to find using documentation search. Here it is: https://docs.python.org/3/library/stdtypes.html
 +
 +
'''Proctoring requires you to always keep the ProctorEdu tab of your browser open. If you don't want to get warnings when you switch to another tab, please open another window of your browser.'''
 +
 +
You must not use:
 +
# Internet search. To search Python documentation, use the search tools built into the documentation: https://docs.python.org/3/search.html?q=&check_keywords=yes&area=default
 +
# Any sites except the ones linked on this page.
 +
# Any kind of communication except the proctoring chat.
 +
# Google Colab and other web applications where it's possible to work collaboratively. Use Jupyter Notebook, Jupyter Labs or similar local software to open workshop materials in .ipynb format. Alternatively, open the materials as HTML or PDF.
 +
 +
You will not be able to enter the exam after 11:15. Students who are late by more than 15 minutes will be considered absent.
 +
 +
If your connection breaks for less than 10 minutes, you may continue working on the exam. The lost time will not be compensated, and you will be asked to defend your work on December 24th. If your connection breaks for more than 10 minutes and it's confirmed to be a technical issue out of your control, you are considered absent with a valid reason and you may retake the exam during the retake period.
 +
 +
If you encounter any technical issues, send a message to '''helpexam@hse.ru'''. Include your '''last name''' and the '''name of the exam''' (that is, course) in the '''subject''' of your email, then briefly explain the problem. Take screenshots of all the issues. If you completely lose your internet connection, please contact your Internet service provider to get confirmation from them.
 +
 +
== Exam Retake==
 +
'''Video download link''' - form [https://forms.gle/oTGaQMLithoA9QpP6]
  
 
== Archive ==
 
== Archive ==

Текущая версия на 12:22, 26 августа 2022

Notifications

Teachers and assistants

Group 211 212 213 214
Lecturer Voznesenskaya T.V.

tvoznesenskaya@hse.ru , tg: @tvozn

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

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

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

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

213 - 1: Zhulikov G.
l8doku@gmail.com , tg: @l8doku

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

214 - 1: Ahremenko A.
chuvilinaann@list.ru, tg: @chuvilinaann

214 - 2: Maksimova D.
daria.maximova.m@gmail.com tg: @narretei

Assistant Chechulin N., tg: @nchechulin Abramov N., tg: @sad_0_me Gadaev I., tg: @god_flask Belyakov K., tg: @ArcticBEARD
Sadullaev M., tg: @samiysamiytochniy

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.

Сontrol work

The control work will take place on Monday, 08.11 at 12.50 in an online format using asynchronous proctoring

The contest will start at 13.00. At 12.50 in the zoom on the lecture link there will be an instruction. Also, this zoom will be used to be able to ask a question or make an announcement during the test.

You will have 5 problems for 80 minutes: A, В, С, D - 10 points each, E - 20 points. The points earned on the test are part of Ongoing Assesment.

Students who face any technical problems must alert their seminarist or TA. They will write a supervised test in zoom and should be prepared to further defend their works. Zoom link for such students:https://zoom.us/j/92446507737

All instructions can be read here Rules

Link to the contest: https://official.contest.yandex.com/contest/31178/problems/

Video download link - form [1]


Who have missed CW

Students who have missed the control work for a good reason will be able to write it on Monday, December 6 at 12.50. The rules are the same as for the main attempt (proctoring with the help of OBS system, etc.) The link will be sent before the control work

Linkhere

Lecture notes

Lecture 1. Introduction
Lecture 2. Sort & search
Lecture 3. Functional & OOP
Lecture 4. Basic data structures. Graphs.
Lecture 5. NumPy.
Lecture 6. Pandas. Matplotlib. Seaborn.
Lecture 7.Python for data analysis. Examples: Titanic 1 [2], Titanic 2 [3]
Tweets

Workshop notes

Workshop 1.Introduction

Workshop 2.Numeral Systems

Workshop 3.Conditions and loops

Workshop 4.Floating point numbers and strings

Workshop 5-6.Strings

Workshop 7.List, tuples

Workshop 8.Tasks on lists and tuples

Workshop 9.Fuctions

Workshop 10. Tasks on function

Workshop 11.Sets and dictionaries

Workshop 12.Tasks on sets and dictionaries

Workshop 13.Search and sort


Topic ipynb (Jupyter) html pdf
1. Introduction [Jupyter] [HTML] [PDF]
2. Numeral systems [Jupyter] [HTML] [PDF]
3. If, while [Jupyter] [HTML] [PDF]
4. Floats and strings [Jupyter] [HTML] [PDF]
5. Strings [Jupyter] [HTML] [PDF]
6. Tasks on strings [Jupyter] [HTML] [PDF]
Extra: code style [Jupyter] [HTML] [PDF]
7. Lists and tuples [Jupyter] [HTML] [PDF]
8. Tasks on lists and tuples [Jupyter] [HTML] [PDF]
9. Functions [Jupyter] [HTML] [PDF]
10. Tasks on functions [Jupyter] [HTML] [PDF]
11. Sets and dictionaries [Jupyter] [HTML] [PDF]
12. Tasks on sets and dictionaries [Jupyter] [HTML] [PDF]
13-14. Sorting and searching [Jupyter] [HTML] [PDF]
15. Iterators and generators [Jupyter] [HTML] [PDF]
16. Tasks on functional programming [Jupyter] [HTML] [PDF]
17. Abstract data structures [Jupyter] [HTML] [PDF]
Extra: graphs, search algorithms [Jupyter] [HTML] [PDF]
18. Files and exceptions [Jupyter] [HTML] [PDF]
19. Test solutions. Practice [Jupyter] [HTML] [PDF]
20. File system [Jupyter] [HTML] [PDF]
21. Numpy. Pandas [Jupyter] [HTML] [PDF]
22. Pandas [Jupyter] [HTML] [PDF]
23. Data analysis. Visualization [Jupyter] [HTML] [PDF]
24. Visualization [Jupyter] [HTML] [PDF]
25-26. Web requests. Scraping. [Jupyter] [HTML] [PDF]
27. Flask [Jupyter] [HTML] [PDF]
28. Deploying Flask [Jupyter] [HTML] [PDF]

Homeworks

Contests

Contest Deadline
Contest 1
Contest 2 5 october 2021, 22:00:00
Contest 3 12 october 2021, 22:00:00
Contest 4 19 october 2021, 22:00:00
Contest 5 30 october 2021, 22:00:00
Contest 6 16 november 2021, 22:00:00
Contest 7 (pilot) 30 november 2021, 22:00:00
Test

Results

Results table


Project

Deadline: December 12th, 23:59

Submission format: Jupyter Notebook + Data file. Submit the notebook file and the dataset example via this Google form: https://forms.gle/cvG8tLn2ugjMMAPj8

If your data is larger than 10 MB, please use a subset of data under 10 MB and submit the subset into the form.

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

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/1WQSgOzQdamwSWXexN7EHtVv2sstl6A9yVguQUMCAcZk

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

  • Output descriptive statistics of the dataset: mean, median, standard deviation. Do this for at least 3 numerical fields.
  • 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.
  • Do at least 2 comparisons similar to the ones in the Titanic example. "What are the distributions of column A for different values of column B?" Output as either numbers or plots.
  • Describe your results in 2-3 paragraphs of text. What you can see from the plot, from the statistics and comparisons.
  • For pilot students one of the requirements is to set up a web server using the Flask framework. Web Server interface should be one of the following: end users must be able to get required data using get-requests, html page or telegram-bot.

Additional notes:

  • Plots for tasks 2 and 3 are counted separately. So, your project has to have at least 5 plots in total.
  • Make sure your plots have proper legends, titles, axis titles, so that it’s easy to understand what the graph represents.
  • Try to format your project as a sequence of problems you’re solving. What the data looks like, what are some questions you can answer with the data. You should try to make a simple analysis project instead of doing exactly the bare minimum of tasks 1-4.

Exam

The exam is held on December 21st starting at 10:40: you should enter the system at 10:40. The contest starts at 11:00. The total length of the exam is 120 minutes without breaks. After 120 minutes pass from the start of the exam, Yandex.Contest will stop counting your solutions towards the total grade, even though it will still be possible to upload the solutions.

During the exam:

You may use:

  1. Lecture and workshop materials. Links: Workshop materials, Lecture notes
  2. Printed lecture and workshop materials.
  3. Python documentation at https://docs.python.org
  4. Your solutions to tasks from homeworks and the control work. Use Yandex.Contest only to open your previous code. Link: Contests
  5. IDE tools. Built-in documentation, automatic code checking tools, debugger and so on.

The page for built-in types (lists, dictionaries) may be hard to find using documentation search. Here it is: https://docs.python.org/3/library/stdtypes.html

Proctoring requires you to always keep the ProctorEdu tab of your browser open. If you don't want to get warnings when you switch to another tab, please open another window of your browser.

You must not use:

  1. Internet search. To search Python documentation, use the search tools built into the documentation: https://docs.python.org/3/search.html?q=&check_keywords=yes&area=default
  2. Any sites except the ones linked on this page.
  3. Any kind of communication except the proctoring chat.
  4. Google Colab and other web applications where it's possible to work collaboratively. Use Jupyter Notebook, Jupyter Labs or similar local software to open workshop materials in .ipynb format. Alternatively, open the materials as HTML or PDF.

You will not be able to enter the exam after 11:15. Students who are late by more than 15 minutes will be considered absent.

If your connection breaks for less than 10 minutes, you may continue working on the exam. The lost time will not be compensated, and you will be asked to defend your work on December 24th. If your connection breaks for more than 10 minutes and it's confirmed to be a technical issue out of your control, you are considered absent with a valid reason and you may retake the exam during the retake period.

If you encounter any technical issues, send a message to helpexam@hse.ru. Include your last name and the name of the exam (that is, course) in the subject of your email, then briefly explain the problem. Take screenshots of all the issues. If you completely lose your internet connection, please contact your Internet service provider to get confirmation from them.

Exam Retake

Video download link - form [4]

Archive

Last year's page

Syllabus

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