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

Продвинутое программирование и анализ данных

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

Course Syllabus

Abstract

Курс нацелен на разбор задач по алгоритмам и структурам данных, а также решению кейсов по анализу данных, относящихся к задачам средней и повышенной сложности. Решение подобных задач позволит углубить знания студентов по программированию и машинному обучению.
Learning Objectives

Learning Objectives

  • Изучить базовые возможности языка программирования Python и разобраться с основными понятиями алгоритмической сложности для оценки эффективности алгоритмов.
  • Освоить принципы выбора подходящих структур данных для реализации различных алгоритмов, обеспечивая оптимальную производительность и эффективность
  • Изучить алгоритмы бинарного поиска и сортировки, а также научиться применять их на практике для решения задач различных уровней сложности
  • Развить навыки оптимального использования системных и программных ресурсов при разработке на Python, включая управление памятью и обработку данных.
  • Понять и реализовать основные алгоритмы обработки массивов данных, включая вычисление префиксных сумм для повышения эффективности решения комплексных задач.
  • Ознакомиться с методом двух указателей и жадными алгоритмами, научиться применять их для оптимального решения задач оптимизации и поиска.
  • Изучить основные методики и техники оптимизации алгоритмов для повышения их производительности и снижения временных и пространственных затрат.
  • Понять основные структуры данных деревьев и графов, освоить методы динамического программирования для решения сложных задач, связанных с этими структурами.
  • Изучить возможности языка программирования Python для решения задач анализа данных, освоить ключевые библиотеки и инструменты для обработки и очистки данных, а также развить практические навыки применения Python в аналитических проектах.
  • Освоить основные методы и техники визуализации данных, научиться эффективно представлять информацию с помощью графических инструментов, а также применять современные технологии и библиотеки для создания информативных и наглядных визуальных представлений данных.
  • Изучить фундаментальные математические концепции и методы, необходимые для анализа данных и машинного обучения
  • Получить глубокие знания о задачах Supervised Machine Learning, ознакомиться с разнообразными алгоритмами и моделями, освоить методы оценки и улучшения их производительности, а также развить практические навыки реализации и применения моделей Supervised Machine Learning в реальных задачах.
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
  • Manipulate and Analyze Data Using Python Libraries
  • Implement Data Preprocessing and Integration Techniques
  • Create Diverse Data Visualizations Using Python Libraries
  • Apply Principles of Effective Data Storytelling and Design
  • Apply Mathematical Concepts to Data Analysis and Machine Learning
  • Optimize Machine Learning Algorithms Using Mathematical Techniques
  • Design and Implement Supervised Learning Models
  • Evaluate and Optimize Model Performance
Course Contents

Course Contents

  • Python & Algorithmic Complexity Basics
  • Data Structure Selection for Common Algorithms
  • Effective Resource Management in Python
  • Binary Search & Sorting
  • Data Arrays Algorithms & Prefix Sum
  • Two Pointers Method & Greedy Algorithms
  • Common Algorithmic Optimization Approaches
  • Trees, Graphs & Dynamic Programming
  • Python for Data Analysis Tasks
  • Visualisations in Data Analysis
  • Mathematics for Data Analysis and Machine Learning
  • Tasks of Supervised Machine Learning
Assessment Elements

Assessment Elements

  • non-blocking HA
    Average grade for all practical homework assignments provided in the course
  • non-blocking Activity
  • non-blocking Exam
    The exam is a practical work performed by students based on the results of mastering the course.
  • non-blocking Control Work
Interim Assessment

Interim Assessment

  • 2024/2025 4th module
    Grade = 0.3 * Activity + 0.3 * Control Work + 0.1 * Home Assignments + 0.3 * Exam Final Grade = min(Grade, 8)
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
  • Christopher M. Bishop. (n.d.). Australian National University Pattern Recognition and Machine Learning. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.EBA0C705
  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.
  • Grus, J. (2019). Data Science From Scratch : First Principles with Python (Vol. Second edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2102311
  • 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
  • Knaflic C.N. Storytelling with data: a data visualization guide for business professionals. New Jersey: Wiley, 2015.
  • McKinney, W. (2018). Python for Data Analysis : Data Wrangling with Pandas, NumPy, and IPython (Vol. Second edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1605925
  • 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
  • Rogers, S., & Girolami, M. (2016). A First Course in Machine Learning (Vol. 2nd ed). Milton: Chapman and Hall/CRC. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1399490

Recommended Additional Bibliography

  • A Tutorial on Machine Learning and Data Science Tools with Python. (2017). Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.E5F82B62
  • Aurélien Géron. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow : Concepts, Tools, and Techniques to Build Intelligent Systems: Vol. Second edition. O’Reilly Media.
  • 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
  • McKinney, W. (2012). Python for Data Analysis : Data Wrangling with Pandas, NumPy, and IPython. Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=495822
  • Robert Sedgewick, & Kevin Wayne. (2014). Algorithms, Part II. Addison-Wesley Professional.
  • Vanderplas, J.T. (2016). Python data science handbook: Essential tools for working with data. Sebastopol, CA: O’Reilly Media, Inc. https://proxylibrary.hse.ru:2119/login.aspx?direct=true&db=nlebk&AN=1425081.

Authors

  • Sanochkin Yuriy Ilich
  • KOSAREV ILYA MAKSIMOVICH