• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Bachelor 2021/2022

Programming in Python

Area of studies: Foreign Regional Studies
When: 1 year, 3, 4 module
Mode of studies: offline
Open to: students of one campus
Instructors: Maksim Karpov, Tatiana Rogovich
Language: English
ECTS credits: 3
Contact hours: 42

Course Syllabus

Abstract

This is a required course for students of all undergraduate programs at the HSE. The course provides students with basic knowledge of programming for the routine tasks automation and data gathering. Via this course, students will also build a solid basis in programming that will be a prerequisite for a statistics course in the second year. The course consists of two parts. In the first part, students will get familiar with basic Python data types and syntax structure. The second part of the course introduces some more complex Python structures and looks into the Python applications for files manipulations and data gathering. Students achieve excellent results by doing a considerable amount of practical exercises both in class and at home and taking part in group projects.
Learning Objectives

Learning Objectives

  • Students achieve excellent results by doing a considerable amount of practical exercises both in class and at home and taking part in group projects
Expected Learning Outcomes

Expected Learning Outcomes

  • Know and differentiate basic Python data types. Choose the correct data types based on the problem in hand
  • Know and understand basic Python syntax
  • Load and use additional Python modules
  • Solve not complex algorithmic problems using Python
  • Use cloud-based IDE Google Colaboratory or similar
  • Use Python for basic data manipulation
  • Use Python for data gathering and cleaning (web-scraping, parsing)
  • Use Python for routine tasks automation
  • Use Python to read and write structured and unstructured files
  • Write their own functions
Course Contents

Course Contents

  • Intro and logistics. Google Colaboratory. First program.
  • Data types: integers and strings. Input and output. Strings formatting.
  • Data types: floating-point numbers and boolean. Logical operators. Conditionals.
  • While loop.
  • Data types: lists and tuples. For loop.
  • For Loop (2nd Part)
  • Problem-solving seminar
  • Methods I (Strings)
  • Methods II (Lists)
  • Review I.
  • MIDTERM
  • Data types: sets and dictionaries.
  • Nested Structures
  • Functions
  • Working with text files in Python. Regular expressions.
  • Working with structured files in Python.
  • Review II
  • TEST
  • Web-Scraping I: intro to HTML
  • Web-Scraping II: simple pages scraping.
  • Web-Scraping III: news web-site scraping
Assessment Elements

Assessment Elements

  • non-blocking Take-home Problem sets (50 problems total)
    There will be ten homework assignments with Python problems sets. Solutions should be submitted via online.hse.ru platform and graded automatically. Each assignment will have its own deadline and will be graded from 0 to 10 points. The worst grade out of ten will be discarded, and the mean of nine assignments with the best grades will count towards the final grade with a weight of 20%.
  • non-blocking Quizzes
    There will be five short in-class quizzes distributed throughout the course. Each quiz will take 5-10 minutes and will cover the material of the previous weeks (particularities will be communicated at least one week in advance). Question types might be a multiple-choice or a short answer. There will be 5 assignments in total, each graded 0 to 2. The sum of all grades will count towards the final grade with a weight of 10%.
  • non-blocking In-class Problems based on Take-home problem sets
    After some homework assignments, there will be an in-class problem-solving assignment related to the topic. It is assumed, that you will be able to solve the problem in the short time-frame (7-15 minutes) if you diligently did your homework. If the test were to be conducted online you will have to share your screen and turn on your camera during it. Failure to do so will result in grade 0 for the assignment. There will be 5 assignments in total, each graded 0 to 2. The sum of all grades will count towards the final grade with a weight of 15%.
  • non-blocking Midterm test
    There will be a midterm test at the end of the third module and the test in the beginning of June. Both will be conducted via online.hse.ru platform (or similar). The tests will consist of a quiz and a few problems. The midterm test will cover topics up to the Review I. The test will cover the entire course up to Review 2. For each test, a Mock Test will be published a few weeks in advance. If the test were to be conducted online the students will have to share their screens and turn on your camera during it. Failure to do so will result in grade 0 for the assignment. The grade for each test is from 0 to 10. The average of two will count towards the final grade with a weight of 30%.
  • non-blocking Homework Project (Individual)
    There will be an individual homework project in the middle of the course where each student will have to write a code that solves the given problem and follows the provided guidelines. The project is graded from 0 to 10, and will count towards the final grade with a weight of 5%
  • non-blocking Final Group Project (2 people)
    At the end of the course, students will have to participate in the group project. Groups will consist of 2 students. They will have to gather data from the Internet via Python, write it to a file and then calculate some statistics. Students will have to submit their code and project description during the exam week and then defend it on the day of the exam. The Q&A project defence will be conducted via Zoom in groups. Students will be asked questions about the code they have submitted. The total grade will consist of a grade for the written part and a grade for the Q&A. All students in the group receive the Q&A grade based on the performance of the weakest student in the group (e.g. if one of the participants cannot answer any question, then the entire group gets a 0 for a defence part). Particularities of the project will be announced in the second part of the 4th module. The project grade will count towards the final grade with a weight of 10%.
  • non-blocking Bonus points
    Students will have an opportunity to earn up to 1 bonus point that will be added to their final grade. The particularities will be announced by the instructors in the beginning of the course.
  • non-blocking Work in Class
    There will be 2 mini-tasks per semester during the seminars. The student needs to continue the snippet of code on a given task. Semi-points and no points are allowed to assess the students' performance.
  • non-blocking Test
    There will be a midterm test at the end of the third module and the test in the beginning of June. Both will be conducted via online.hse.ru platform (or similar). The tests will consist of a quiz and a few problems. The midterm test will cover topics up to the Review I. The test will cover the entire course up to Review 2. For each test, a Mock Test will be published a few weeks in advance. If the test were to be conducted online the students will have to share their screens and turn on your camera during it. Failure to do so will result in grade 0 for the assignment. The grade for each test is from 0 to 10. The average of two will count towards the final grade with a weight of 30%.
Interim Assessment

Interim Assessment

  • 2021/2022 4th module
    0.15 * Test + 0.05 * Homework Project (Individual) + 0.15 * In-class Problems based on Take-home problem sets + 0.15 * Midterm test + 0.1 * Final Group Project (2 people) + 0.1 * Quizzes + 0.2 * Take-home Problem sets (50 problems total) + 0.1 * Work in Class
Bibliography

Bibliography

Recommended Core Bibliography

  • Downey, A. (2015). Think Python : How to Think Like a Computer Scientist (Vol. Second edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1105725
  • Severance, C. (2016). Python for Everybody : Exploring Data Using Python 3. Place of publication not identified: Severance, Charles. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsotl&AN=edsotl.OTLid0000336

Recommended Additional Bibliography

  • Ivan Idris - Python Data Analysis - Packt Publishing, Limited , 2014-430 - Текст электронный - https://ebookcentral.proquest.com/lib/hselibrary-ebooks/detail.action?docID=1826990

Authors

  • ROGOVICH TATYANA VLADIMIROVNA