• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Python Programming

2023/2024
Academic Year
ENG
Instruction in English
4
ECTS credits
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructors


Довгополый Иоанн Алексеевич


Иванов Антон Павлович


Смирнов Иван Васильевич

Course Syllabus

Abstract

The course is intended to be taught during the first semester of the program, so it starts from the very beginning and takes into account, that some of the students may have zero experience in programming. The lectures and practical classes are closely inter-related. The lectures are primarily intended to introduce new topics, focus on more theoretical aspects whereas the practical classes are intended for solving specific problems by coding programs in Python.
Learning Objectives

Learning Objectives

  • One of the objectives of this course is for the students to will study the methodology of programming.
  • During this course, the students will develop algorithmic thinking.
  • 3 During this course, the students will study approaches and toolkits for the development of Python applications.
  • During this course, the students will practice application debugging and deployment with respect to various platforms and toolchains.
Expected Learning Outcomes

Expected Learning Outcomes

  • Students will acquire skills in Python programming to formalize and solve simple development tasks.
  • Students will learn basic concepts and methods of software development.
  • Students will learn to select the most appropriate toolset for app development.
  • Students will practice application debugging and deployment with respect to various platforms and toolchains.
Course Contents

Course Contents

  • Introduction.
  • Dynamic typing. Operations of sequence, selection, and iteration.
  • Number systems. Float in the computer memory, rounding and other aspects.
  • Strings.
  • Functions and recursion. Lambda-functions. Named parameters.
  • Tuples. Lists. Function map. Methods Split and Join.
  • Zen of python. PEP-8. Files. Exceptions and errors. Program debugging.
  • Sets. Dictionaries.
  • Sort and found. Introduction into the complexity theory.
  • Elements of functional programming. Function Enumerate. Module Functools.
  • Object-oriented programming. Main ideas: encapsulation, inheritance and polymorphism. Operator Overriding. Function Isinstance. Examples.
  • Python for data analysis. Overview.
Assessment Elements

Assessment Elements

  • non-blocking Ongoing Assessment 0.6
    The ongoing assessment grade is accumulated throughout all the classes and is related to a participant’s activity. An ongoing control structure is individual for every class. During the classes, there are some activities available for students to be involved in. They include (but are not limited by) writing code and developing project, evaluating practical problems, solving tests, answering questions and so on. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
  • non-blocking Control work, tests, quizzes
    Students’ skills in programming are tested using automated testing. This way, a student is assigned an individual task, prepares it by using a personal computer and, then, submits it by using a special service, such as Yandex.Contest or a repository-based tool. A professor decides whether to request students to defend their work (home, control, exam). The specific solution can be subject to further clarification. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
  • non-blocking Exam 0.4
    Exam, which takes place at the end of the first quartile. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
  • non-blocking Homework (Contests)
    Students’ skills in programming are tested using automated testing. This way, a student is assigned an individual task, prepares it by using a personal computer and, then, submits it by using a special service, such as Yandex.Contest or a repository-based tool. A professor decides whether to request students to defend their work (home, control, exam). The specific solution can be subject to further clarification. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
Interim Assessment

Interim Assessment

  • 2023/2024 2nd module
    Final grade = 0.4*E1 + 0.6*OA Where: E1 – Exam mark, OA – Ongoing Assessment 𝑂𝐴=10∗(𝑅𝑃+𝐵𝑃)/𝑅𝑃_𝑚𝑎𝑥 RP – Regular Points: Home work (Contests) – 1 per task Control work, tests, quizzes 𝑅𝑃_𝑚𝑎𝑥= ∑_𝑎𝑐𝑡𝑖𝑣𝑖𝑡𝑖𝑒𝑠 (max⁡𝑝𝑜𝑠𝑠𝑖𝑏𝑙𝑒 𝑅𝑃) BP - Bonus Points: Extra task (with *) at contests (for main groups) Working during the workshop Activity at almost all workshops Other achievements at the teacher discretion
Bibliography

Bibliography

Recommended Core Bibliography

  • Pilgrim, M. (2009). Dive Into Python 3. New York: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=326208

Recommended Additional Bibliography

  • Schneider, D. I. (2016). An Introduction to Programming Using Python, Global Edition: Vol. Global edition. Pearson.