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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м
(add w18)
 
(не показано 12 промежуточных версии 2 участников)
Строка 1: Строка 1:
== Notifications ==
 
 
 
== Teachers and assistants ==
 
== Teachers and assistants ==
 
{| class="wikitable" style="text-align:center"
 
{| class="wikitable" style="text-align:center"
Строка 39: Строка 37:
 
{| class="wikitable" style="text-align:center"
 
{| class="wikitable" style="text-align:center"
 
|-
 
|-
! Contest !! Deadline
+
! Contest !! Deadline !! Topic
 
|-
 
|-
|| [https://official.contest.yandex.ru/contest/40073/problems/ Contest 1] ||  19 sep 2022, 21:00:00
+
|| [https://official.contest.yandex.ru/contest/40073/problems/ Contest 1] ||  19 sep 2022, 21:00:00 || Basic Operations
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/40477/problems/ Contest 2] ||  3 oct 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/40477/problems/ Contest 2] ||  3 oct 2022, 23:59:59 || Strings and Loops
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/40724/problems/ Contest 3] ||  10 oct 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/40724/problems/ Contest 3] ||  10 oct 2022, 23:59:59 || Lists
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/40911/problems/ Contest 4] ||  17 oct 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/40911/problems/ Contest 4] ||  17 oct 2022, 23:59:59 || Functions and Recursion
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/41144/problems/ Contest 5] ||  31 oct 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/41144/problems/ Contest 5] ||  31 oct 2022, 23:59:59 || Sets and Dictionaries
 
|-
 
|-
|| [https://official.contest.yandex.ru/contest/42282/problems/ Contest 6] ||  14 nov 2022, 23:59:59
+
|| [https://official.contest.yandex.ru/contest/42282/problems/ Contest 6] ||  14 nov 2022, 23:59:59 || Sorting and Searching
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/43494/problems Contest 7] ||  5 dec 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/43494/problems Contest 7] ||  5 dec 2022, 23:59:59 || Graphs
 
|-
 
|-
|| [https://official.contest.yandex.com/contest/43853/problems Contest 8] ||  12 dec 2022, 23:59:59
+
|| [https://official.contest.yandex.com/contest/43853/problems Contest 8] ||  16 dec 2022, 23:59:59 || Functional Programming
 
|}
 
|}
  
Строка 146: Строка 144:
 
<br> <br>
 
<br> <br>
  
== Workshop notes ==
+
'''Week 12''' <br>
 +
[https://drive.google.com/file/d/1TVlnhYTNmIg--PV33Opta6NfQmK5gavV/view?usp=sharing Lecture 7: Elements of Functional Programming. Basic concepts of OOP]
 +
<br> <br>
  
=== IPython notebooks ===
+
'''Week 13''' <br>
[https://drive.google.com/file/d/16EARZj8UZHSLMehfUFr_e6OhV_EaSLoI/view?usp=sharing Workshop 1: Introduction] <br>
+
[https://drive.google.com/file/d/1KWA86qnVtRFe0j2mEDdyCEin335kYTaD/view?usp=sharing Lecture 8: Data Base]  
[https://drive.google.com/file/d/1ku7XJb-TZoXbqiRAHNMtMwAOUDVWkEDn/view?usp=sharing Workshop 2: Numeral systems] <br>
+
<br> <br>
for pilot students: [https://drive.google.com/file/d/1zD_suIN-HXuQF-Qi5ppLi-jHcBypkzzB/view?usp=sharing Workshops 2-3: Conditions and Loops] <br>
+
[https://drive.google.com/file/d/1-5vunsNOKK-96D3mTRCXF0LIAD4qq1UF/view?usp=sharing Workshop 3: Conditions and Loops] <br>
+
[https://drive.google.com/file/d/1YC67EjbRtLDieTZp8ejffL5lpm9aRhgP/view?usp=sharing Workshop 4: Strings] <br>
+
[https://drive.google.com/file/d/1e_Rr-QA0QpdGramChDmnFan5RaX01PdM/view?usp=sharing Workshops 5-6: Lists and Tuples] <br>
+
[https://drive.google.com/file/d/1Q613DRQC0K82mME8_s9BaHgj6KPip1ZS/view?usp=sharing Workshops 7-8: List Comprehension] <br>
+
[https://drive.google.com/file/d/12htz6WBV1aN50yXmiCehwyotB82PwHOA/view?usp=sharing Workshops 9-10: Functions and Recursion] <br>
+
[https://drive.google.com/file/d/1ZiWaE6rk9Y-5glXiAu5FE2FOxSCUnsna/view?usp=sharing Workshop 11: Sets and Dictionaries] <br>
+
[https://drive.google.com/file/d/1fLfU1FdOQDQu5YG-lyIFkTIA2FtqLNjt/view?usp=sharing Workshop 12: Sets and Dictionaries] <br>
+
[https://drive.google.com/file/d/108tA9g7nhwU8AbqQX-2PiWAayZ_aNlZJ/view?usp=sharing Workshop 13.1: Files, Errors and Exceptions] <br>
+
[https://drive.google.com/file/d/1JRbxNjDKlkglZOrzdf7Oxykd3Tru9S2B/view?usp=sharing Workshop 13.2: Files, Errors and Exceptions] <br>
+
[https://drive.google.com/file/d/1ksQcXG7HMi7Ephzx9t-T1Bzh03cMLC8e/view?usp=sharing Workshop 14: Code Style] <br>
+
[https://drive.google.com/file/d/1_z0f8EO5ZhtYA0UBm0rUSiFeUo-vZy2h/view?usp=share_link Workshop 15: Sorting and Searching] <br>
+
[https://drive.google.com/file/d/1RhwsgnD7uOcd2TCADXyL71VL4ioMilWF/view?usp=sharing Workshops 16-17: Numpy, Pandas and Project] <br>
+
[https://drive.google.com/file/d/1riFqyaOq3nMCXkVqT9XvnpVUy-6T8124/view?usp=sharing Workshops 18-19: Abstract Data Structures. Graphs] <br>
+
[https://drive.google.com/file/d/1ZEgPCpSB0ME0Gk4iR4VUu5Vj92a7amR_/view?usp=sharing Workshop 20: Visualisation] <br>
+
  
 +
== Workshop notes ==
 
=== PDF ===
 
=== PDF ===
 
[https://drive.google.com/file/d/1AbISkYvSZ60l7eA_hypmjuiBnMk4gTMl/view?usp=share_link Workshop 1: Introduction] <br>
 
[https://drive.google.com/file/d/1AbISkYvSZ60l7eA_hypmjuiBnMk4gTMl/view?usp=share_link Workshop 1: Introduction] <br>
Строка 182: Строка 168:
 
[https://drive.google.com/file/d/1QQi4jKPNBiw3pi0J3-djimT03CSrNCI0/view?usp=share_link Workshop 14: Code Style] <br>
 
[https://drive.google.com/file/d/1QQi4jKPNBiw3pi0J3-djimT03CSrNCI0/view?usp=share_link Workshop 14: Code Style] <br>
 
[https://drive.google.com/file/d/12R07UP4CMSLvO7DWkDqjHqhI-MN7bSY3/view?usp=share_link Workshop 15: Sorting and Searching] <br>
 
[https://drive.google.com/file/d/12R07UP4CMSLvO7DWkDqjHqhI-MN7bSY3/view?usp=share_link Workshop 15: Sorting and Searching] <br>
 +
[https://drive.google.com/file/d/1ZxzDrDcKx-eiaCwv2BCMucQsoq3A6xdC/view?usp=share_link Workshop 18 Abstract data structures]
  
 
==Control work==
 
==Control work==
  
The midterm will be conducted on '''Friday, November 18, at 16:20''' in the '''offline''' format.  
+
The midterm will be conducted on '''Friday, November 18, at 16:20''' in the '''offline''' format.
  
There will be several rooms: '''R205''' for the majority of you and '''R610''' with campus computers and sockets for those, who do not have personal laptops or whose laptops consume too much energy to manage OBS + contest + IDE without recharging. If you understand that you are facing one of these problems, please write directly to [https://t.me/l_AnnaPronina_l assistant Anna in Telegram] in order to be allocated in а computer class.
+
All the details you can find [[Introduction to Programming DSBA 2022/2023 / Midterm|here]].
  
'''People invited in R610:'''
+
== Project ==
# Абубекерова Сафия
+
All the required information about your 1st semester project can be found at [[Introduction to Programming DSBA 2022/2023 / Project|this page]].
# Антонов Андрей
+
# Бохян Роман
+
# Валами Беньямин
+
# Гниломедов Павел
+
# Забруссков Филипп
+
# Зарембо Михаил
+
# Иванова Екатерина
+
# Карих Дмитрий
+
# Карпунин Егор
+
# Клевцова Снежана
+
# Корнеев Александр
+
# Корнилова Ульяна
+
# Лесовина Полина
+
# Машкарин Иван
+
# Морозова Юлия
+
# Никитина Мария
+
# Петошин Степан
+
# Попов Андрей
+
# Розинский Сергей
+
# Степанов Андрей
+
# Суслов Тимофей
+
# Сухопаров Тимофей
+
# Фокина Виктория
+
# Харченко Вера
+
  
If you asked for a socket, but did not find yourself in the list above, do not worry. We will provide you with one in R205.
+
== Exam ==
  
 +
The exam will be conducted on '''Saturday, December 17, at 18:00''' in the '''offline''' format.
  
'''Important note:''' follow [https://github.com/Aptemvs/DSBA-Tools-Installation this instruction] to install OBS. If something goes wrong, do not hesitate to ask your assistants for help.
+
All the details you can find [[Introduction to Programming DSBA 2022/2023 / WinterExam|here]].
  
You will have to solve several problems in '''90 minutes''': 4 for 10 and 1 for 20 points. The points earned on the test are part of Ongoing Assessment.
 
 
'''Rules:'''
 
# During the test you are allowed to use only the materials found by the links available at our course wiki page, installed (not online) IDE and documentation at https://www.python.org/ and https://docs.python.org/3/. If we notice you opening any external windows, your work will get a 0 mark automatically.
 
# Be prepared that you will '''not be able to leave the room''' until the end of the work.
 
#You will have to record your screen using the OBS system:
 
## You are supposed to record your screen onlу. Microphone and web-camera recordings are a must only for those, who are now studying online (and have confirmed it with the Study Office).
 
## Start the recording '''5 minutes before''' the beginning of the contest.
 
## At the end of the contest, '''within 30 minutes''', you must place the recordings on Yandex/Google disk, dropbox or YouTube, and '''<big>fill the [https://forms.gle/Yk4e8q2hW3Z4oxAZ9 form]</big>''', indicating the link to the recording file (just a file, not a folder) in it. In case of technical problems with video uploading or with meeting the uploading deadline (30 minutes), fill the form, indicating in the "link to video" field the size of your video file '''in bytes''', and write to [https://t.me/l_AnnaPronina_l assistant Anna in Telegram]. As soon as the problem is solved, fill the form for the second time and provide a link to your video.
 
## Please, '''do not delete the video until your teacher checks the recording''' (you will get notification about it).
 
# '''Communication in any form is strictly prohibited''' including:
 
## Verbal communication
 
## Messengers
 
## Code collaboration tools (e.g. Collab)
 
 
<br> For '''those, who have confirmed studying online''': we will send you a link to Zoom as private messages. Please, join the conference and start recording your screen, web-camera and microphone. All the rules above are valid for you.
 
 
<br> PS: you may consider [https://official.contest.yandex.com/contest/31178/enter/ the midterm of the previous year] as an example of what you may be given during your work
 
 
== Project ==
 
All the required information about your 1st semester project can be found at [[Introduction to Programming DSBA 2022/2023 / Project|this page]].
 
 
== Exam ==
 
 
== Syllabus ==   
 
== Syllabus ==   
 
https://www.hse.ru/edu/courses/749558890
 
https://www.hse.ru/edu/courses/749558890

Текущая версия на 18:15, 17 декабря 2022

Teachers and assistants

Group 221 222 223 224
Lecturer Voznesenskaya T.V.

tvoznesenskaya@hse.ru , tg: @tvozn

Workshop Instructor 221-1: Zhulikov G.A.
gzhulikov@hse.ru
tg: @l8doku

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

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

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

223-1, 223-2: Garshin S.A.
sgarshin@hse.ru
tg: @SeregaEFD
224-1, 224-2: Maximova D.M.
daria.maximova.m@gmail.com
tg: @narretei
Assistant Makarenkov A.
tg: @Artem_Makarenkov
Kulakov D.
tg: @Kulakov_Denis
Shestakov A.
tg: @aptemvs
Fomin G.
tg: @Genfom
Head TA Pronina A.
tg: @l_AnnaPronina_l

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 semester exam, OA1 is an ongoing assessment grade of the first semester (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 e.g. 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.

Contests

Contest Deadline Topic
Contest 1 19 sep 2022, 21:00:00 Basic Operations
Contest 2 3 oct 2022, 23:59:59 Strings and Loops
Contest 3 10 oct 2022, 23:59:59 Lists
Contest 4 17 oct 2022, 23:59:59 Functions and Recursion
Contest 5 31 oct 2022, 23:59:59 Sets and Dictionaries
Contest 6 14 nov 2022, 23:59:59 Sorting and Searching
Contest 7 5 dec 2022, 23:59:59 Graphs
Contest 8 16 dec 2022, 23:59:59 Functional Programming

Results

The results table can be found by this link.

Lecture notes

Week 1
Lecture 1: Introduction. Numeral systems. Real numbers
- Introduction to Python (DataCamp) chapter 1: Python basics
- Introduction to CompSci & OOP: Python (Stepik) chapter 1: Introduction: The Nuts & Bolts
- video: Working with Numeric Data

Week 2
Conditionals:
- Intermediate Python (Datacamp) chapter 3: Logic, Control and Filtering
- Introduction to CompSci & OOP: Python (Stepik) chapter Conditionals: Ice Cream Isn’t for Breakfast
Loops:
- Intermediate Python (Datacamp) chapter 4: Loops (excluding NumPy videos)
- Introduction to CompSci & OOP: Python (Stepik) chapter Loops: Breakfast, Lunch, Dinner, Breakfast, Lunch, Din…

Week 3
Strings: Basic Methods
- Basic string methods (W3Schools tutorial)
- video: 31 essential string methods
- video: Built-In String Functions
- video: Working with Textual Data

Week 4
Strings: Formatting
- Python documentation 7.1. Fancier Output Formatting
- String formatting (W3Schools tutorial)
- video: Tutorial: String Formatting
- video: f-Strings and advanced String Formatting
- Cheat Sheet

Lists and Tuples:
- Introduction to CompSci & OOP: Python (Stepik) chapter Data Structures: I’ll have Combo #3, Please!, pt.1–3
- Introduction to Python (DataCamp) chapter 2: Python Lists
- video: Python Tutorial for Beginners part 4: Lists, Tuples, and Sets
- video: How to use lists and tuples effectively?
- Cheat Sheet

Weeks 5-7

Functions and Recursions:
- Introduction to CompSci & OOP: Python (Stepik) chapter Functions: How Do I Stop Rewriting Code?
- Introduction to Python (DataCamp) chapter 3: Functions and Packages (до видео Packages)
- Python Data Science Toolbox (Part 1) (DataCamp) chapter 1: Writing your own functions)
- Ibid., chapter Recursion: Give Me a Minute, I’m Getting a Call from Myself
- Ibid., chapter 2: Default arguments, variable-length arguments and scope
- Ibid., chapter 3: Lambda functions and error-handling (lambda-functions only)

Sets:
- Introduction to CompSci & OOP: Python (Stepik) chapter Data Structures: I’ll have Combo #3, Please!, pt.4
- String formatting (W3Schools tutorial)
- video: Python Tutorial for Beginners part 4: Lists, Tuples, and Sets
- video: Python Tutorial: Sets - Set Methods and Operations to Solve Common Problems
- blog: Real Python: Python Sets

Dictionaries:
- Introduction to CompSci & OOP: Python (Stepik) chapter Data Structures: I’ll have Combo #3, Please!, pt.5
- Intermediate Python (Datacamp) chapter 2: Dictionaries & Pandas (up to the Pandas video, pt.1)
- Dictionaries (W3Schools tutorial)
- video: Python Tutorial for Beginners part 5: Dictionaries: Working with Key-Value Pairs
- blog: Medium: A Complete Guide to Dictionaries in Python


Week 8
Lecture 2: Sorting algorithms. Search algorithms in one-dimensional arrays

Week 9
Lecture 3: NumPy
Lecture 4: Pandas. Mathplotlib. Seaborn

Week 10
Lecture 5: Data Structures: Stack, Queue, Deque, Graphs

Week 11
Lecture 6: Test 1 Discussion

Week 12
Lecture 7: Elements of Functional Programming. Basic concepts of OOP

Week 13
Lecture 8: Data Base

Workshop notes

PDF

Workshop 1: Introduction
Workshop 2: Numeral systems
for pilot students: Workshops 2-3: Conditions and Loops
Workshop 3: Conditions and Loops
Workshop 4: Strings
Workshops 5-6: Lists and Tuples
Workshops 7-8: List Comprehension
Workshops 9-10: Functions and Recursion
Workshop 11: Sets and Dictionaries
Workshop 12: Sets and Dictionaries
Workshop 13.1: Files, Errors and Exceptions
Workshop 13.2: Files, Errors and Exceptions
Workshop 14: Code Style
Workshop 15: Sorting and Searching
Workshop 18 Abstract data structures

Control work

The midterm will be conducted on Friday, November 18, at 16:20 in the offline format.

All the details you can find here.

Project

All the required information about your 1st semester project can be found at this page.

Exam

The exam will be conducted on Saturday, December 17, at 18:00 in the offline format.

All the details you can find here.

Syllabus

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