• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Bachelor 2023/2024

Algorithms and Data Structures

Type: Compulsory course
Area of studies: Business Informatics
When: 2 year, 1, 2 module
Mode of studies: offline
Open to: students of one campus
Language: English
ECTS credits: 3
Contact hours: 36

Course Syllabus

Abstract

The course is dedicated to the basics of design and analysis of algorithms. It also involves learning advanced algorithms, data structures and basics of the automata theory. The lectures and practical classes are closely inter-related. The lectures are primarily intended to introduce new topics, whereas the practical classes are intended for solving specific problems by coding programs in C++ or Python. Successful completion of “Introduction to Programming” course is the sole prerequisite for being enrolled in this course.
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.
Expected Learning Outcomes

Expected Learning Outcomes

  • Be able to find and read documentation on python libraries not covered by the course.
  • Be able to set up python environment
  • Understand key concepts of programming and apply them
  • Be able to write scripts in python
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. File input-output
Assessment Elements

Assessment Elements

  • 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 Final exam
    The set of small programming auto-tested tasks.
Interim Assessment

Interim Assessment

  • 2023/2024 2nd module
    0.3 * Final exam + 0.7 * 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