• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Programming in Python

2022/2023
Учебный год
ENG
Обучение ведется на английском языке
4
Кредиты
Статус:
Курс обязательный
Когда читается:
2-й курс, 1 модуль

Преподаватели


Бугаевский Владимир Михайлович


Страхов Александр Михайлович

Course Syllabus

Abstract

From the course one can learn programming skills in python. The course aims on beginners (people who have never written code) and covers a variety of different topics: from basic (syntax, data types, operators) to more complex and specific ones (OOP, async).
Learning Objectives

Learning Objectives

  • The course is aimed to provide students with necessary knowledge and tools to write programs in python and understand code written by others.
  • During the learning process, students will gain the ability to develop and deploy real python projects in teams of 3-4 people.
Expected Learning Outcomes

Expected Learning Outcomes

  • Be able to set up python environment under any operating system;
  • Understand key concepts of programming (procedural, functional paradigms, OOP, data types, algorithm complexity, TDD, etc.) and apply them;
  • Be able to write scripts in python for the variety of different tasks;
  • Be able to cover and support code with unit tests, linters, and formatters;
  • Be able to find and read documentation on python libraries not covered by the course.
Course Contents

Course Contents

  • 1. Introduction to programming and the Python language
  • 2. Python script mode. Conditional execution
  • 3. Loops
  • 4. Bitwise operations. Error handling techniques
  • 5. Functions and modules. Name scopes. Recursive algorithms
  • 6. Python data model. Lists, sets, tuples
  • 7. Introduction to algorithmic complexity. Sorting algorithms
  • 8. Strings. Advances techniques of text processing, regular expressions
  • 9. Special Python syntactic features for linear collections
  • 10. Associative containers
  • 11. File input-output
  • 12. Elements of functional programming. Lambda functions, iterables, generators
  • 13. Introduction to object-oriented programming
  • 14. Object-oriented programming in depth
  • 15. Decorators
  • 16. Threads and processes in Python
  • 17. Development & Deployment
  • 18. Unittesting in Python
  • 19. Advanced techniques
Assessment Elements

Assessment Elements

  • non-blocking Workshop activity
    Students activity during workshop sessions.
  • non-blocking Team project
    Students divide into teams of 3-4 people. The teams develop a Telegram bot using Python. Then, students conduct cross code review finding ways to improve code of their classmates.
  • non-blocking Homework assignments
    Home assignments for the relevant topics discussed in the class in a form of small problems in the web IDE.
  • non-blocking Quiz
    The written quiz is conducted in a workshop at the end of the module. Each correct answer gives a certain number of points. The final grade is calculated as the sum of the points received for the correctanswers, then normalized (1-10) and rounded to the nearest integer.
  • non-blocking Final exam
    The final written examination is held during the scoring week. Each correct answer gives a certain number of points. The final grade is calculated as the sum of the points received for the correctanswers, then normalized (1-10) and rounded to the nearest integer.
Interim Assessment

Interim Assessment

  • 2022/2023 1st module
    0.3 * Final exam + 0.1 * Workshop activity + 0.1 * Team project + 0.3 * Quiz + 0.2 * Homework assignments
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
  • Eric Matthes. (2019). Python Crash Course, 2nd Edition : A Hands-On, Project-Based Introduction to Programming: Vol. 2nd edition. No Starch Press.
  • Learning Python : [covers Python 2.5], Lutz, M., 2008
  • Lutz, M. (2011). Programming Python : Powerful Object-Oriented Programming (Vol. 4th ed). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415412
  • Sweigart, Al. Automate the boring stuff with Python: practical programming for total beginners. – No Starch Press, 2015. – 505 pp.
  • Программируем на Python, Доусон, М., 2015

Recommended Additional Bibliography

  • Baka, B. (2017). Python Data Structures and Algorithms. Birmingham, U.K.: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1528144