Bachelor
2023/2024
Programming in Python
Type:
Compulsory course (HSE University and Kyung Hee University Double Degree Programme in Economics and Politics in Asia)
Area of studies:
Foreign Regional Studies
Delivered by:
Faculty of World Economy and International Affairs
When:
1 year, 3, 4 module
Mode of studies:
offline
Open to:
students of one campus
Instructors:
Maksim Karpov
Language:
English
ECTS credits:
3
Contact hours:
42
Course Syllabus
Abstract
This is a required course for students of all undergraduate programs at HSE University. The course provides students with basic knowledge of programming for 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 file manipulations. 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
- 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
- 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
- Use local-based IDE Jupyter Notebook or similar
Course Contents
- Intro and logistics. Jupyter Notebook 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
- Attendance
- Seminar ParticipationThere will be mini-tasks during the seminars. The student needs to continue the snippet of code on a given task or answer the question. Semi-points and no points are allowed to assess the students' performance. The total grade will be normalised from the maximum in the group.
- Homework AssignmentsThere will be homework assignments devoted to programming basics in Python. Solutions should be submitted via SmartLMS platform. Each assignment will have its own deadline and will be graded from 0 to 10 points. A selective oral examination of a home assignment is performed. In case of plagiarism (or if the student cannot explain his/her solutions), the grades for all homework assignments submitted by the student are zeroed.
- QuizzesThere will be 10 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.
- Midterm TestThere will be a midterm test at the end of the third module. The test will be conducted via SmartLMS platform. The test will consist of a quiz and a few problems. The midterm test will cover topics up to the Review I. A Mock Test will be published a few weeks in advance.
- Final TestThere will be a final test at the beginning of June. The test will be conducted via SmartLMS platform. The test will consist of a quiz and a few problems. The final test will cover the entire course up to Review 2. A Mock Test will be published a few weeks in advance. The grade for the test is from 0 to 10.
- Exam (Project Defence)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, write it to a file and then calculate some statistics. Students will have to submit their code and project description before the exam week and then defend it on the day of the exam. 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 part.
Interim Assessment
- 2023/2024 4th modulemin(0.01 * Attendance + 0.2 * Seminar Participation + 0.15 * Homework Assignments + 0.14 * Quizzes + 0.15 * Midterm Test + 0.15 * Final Test + 0.2 * Exam (Project Defence), 8). In accordance with paragraph 69 of the Regulations for Interim and Ongoing Assessments of Students at National Research University Higher School of Economics, grades awarded on the basis of interim assessment outcomes of the discipline-prerequisites for the independent exam on digital competency may not exceed 8 points.
Bibliography
Recommended Core Bibliography
- Ben Stephenson. (2019). The Python Workbook : A Brief Introduction with Exercises and Solutions (Vol. 2nd ed. 2019). Springer.
- 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