• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2025/2026

Продвинутое программирование на языке Python

Статус: Курс обязательный (Управление цифровым продуктом)
Когда читается: 3-й курс, 2, 3 модуль
Охват аудитории: для своего кампуса
Язык: английский
Кредиты: 6
Контактные часы: 60

Course Syllabus

Abstract

This course develops advanced Python skills for writing fast, reliable, and scalable software. Emphasizing algorithmic thinking and performance, students learn to reason about complexity, profile and optimize code, and manage resources effectively while applying Pythonic designs and best practices. Through hands‑on work with real datasets and external services, they practice robust data acquisition and processing, including pattern matching, web data extraction, and API integration. By the end, participants can craft clean solutions to challenging computational problems and build production‑ready Python applications.
Learning Objectives

Learning Objectives

  • Understand the basic concepts of algorithmic complexity to evaluate the efficiency of algorithms.
  • Master the principles of selecting appropriate data structures for implementing various algorithms, ensuring optimal performance and efficiency.
  • Study binary search and sorting algorithms, and learn to apply them in practice to solve problems of varying levels of complexity.
  • Develop skills for optimal use of system and software resources in Python development, including memory management and data processing.
  • Understand and implement fundamental algorithms for processing data arrays, including computing prefix sums to enhance the efficiency of solving complex tasks.
  • Familiarize yourself with the two-pointer technique and greedy algorithms, and learn to apply them for optimal solutions to optimization and search problems.
  • Study the key methods and techniques for algorithm optimization to improve performance and reduce time and space costs.
  • Understand the fundamental tree and graph data structures, and master dynamic programming methods for solving complex problems related to these structures.
  • Familiarize with the principles of extracting data from external sources and processing the retrieved data.
Expected Learning Outcomes

Expected Learning Outcomes

  • Develop and Debug Python Programs
  • Evaluate and Compare Algorithmic Complexity
  • Identify and Select Appropriate Data Structures
  • Implement and Optimize Algorithms Using Selected Data Structures
  • Implement Search and Sort Algorithms
  • Analyze and Compare Algorithmic Efficiency
  • Optimize Memory and Resource Usage
  • Identify and Resolve Performance Bottlenecks
  • Implement Array-Based Algorithms and Prefix Sum Techniques
  • Analyze and Optimize Algorithm Performance
  • Apply the Two Pointers Technique to Solve Complex Problems
  • Design and Implement Greedy Algorithms for Optimization Tasks
  • Implement Advanced Optimization Techniques
  • Evaluate and Select Appropriate Optimization Strategies
  • Design and Implement Tree and Graph Algorithms
  • Apply Dynamic Programming Techniques to Optimize Solutions
  • Work with external resource APIs
  • Parse data from external resources
Course Contents

Course Contents

  • Python & Algorithmic Complexity Basics
  • Data Structure Selection for Common Algorithms
  • Binary Search & Sorting
  • Effective Resource Management in Python
  • Data Arrays Algorithms & Prefix Sum
  • Two Pointers Method & Greedy Algorithms
  • Common Algorithmic Optimization Approaches
  • Trees, Graphs & Dynamic Programming
  • Data extraction
Assessment Elements

Assessment Elements

  • non-blocking ACT
    Assessment of student attendance and participation in seminars, as well as engagement during lectures.
  • non-blocking GP
    The average grade for all practical group initiative projects included in the course.
  • non-blocking HA
    The average grade for all practical homework assignments included in the course.
  • non-blocking CW
    A test (in-class) assignment is an assessment component completed by students based on the learning outcomes of the part of the course devoted to data extraction.
  • non-blocking EX
    The exam is a practical assignment completed by students upon completion of the course.
Interim Assessment

Interim Assessment

  • 2025/2026 3rd module
    0.22 * ACT + 0.24 * CW + 0.24 * EX + 0.2 * GP + 0.1 * HA
Bibliography

Bibliography

Recommended Core Bibliography

  • Algorithms and complexity, Wilf, H. S., 2002
  • Álvaro Scrivano. (2019). Coding with Python. Minneapolis: Lerner Publications ™. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1947372
  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.
  • Grune, D., & Jacobs, C. J. H. (2008). Parsing Techniques : A Practical Guide (Vol. 2nd ed). New York: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=254768
  • Kleinberg, J., & Tardos, E. (2014). Algorithm Design: Pearson New International Edition. Harlow, Essex: Pearson. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1418332
  • Robert Sedgewick, & Kevin Wayne. (2014). Algorithms : Part I. [N.p.]: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1600534

Recommended Additional Bibliography

  • “API-Based Research” or How can Digital Sociology and Journalism Studies Learn from the Facebook and Cambridge Analytica Data Breach. (2019). Digital Journalism, 7(4), 532–540. https://doi.org/10.1080/21670811.2019.1591927
  • Hetland, M. L. (2017). Beginning Python : From Novice to Professional (Vol. Third edition). New York: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1174463
  • Introduction to the design and analysis of algorithms, Levitin, A., 2012
  • Robert Sedgewick, & Kevin Wayne. (2014). Algorithms, Part II. Addison-Wesley Professional.
  • Shin, R., Allamanis, M., Brockschmidt, M., & Polozov, O. (2019). Program Synthesis and Semantic Parsing with Learned Code Idioms.

Authors

  • Sanochkin Yuriy Ilich