Bachelor
2023/2024![Learning Objectives](/f/src/global/i/edu/objectives.svg)
![Expected Learning Outcomes](/f/src/global/i/edu/results.svg)
![Course Contents](/f/src/global/i/edu/sections.svg)
![Assessment Elements](/f/src/global/i/edu/controls.svg)
![Bibliography](/f/src/global/i/edu/library.svg)
Algorithms and Data Structures
Type:
Compulsory course
Area of studies:
Business Informatics
Delivered by:
Department of Business Informatics
Where:
Graduate School of Business
When:
2 year, 1, 2 module
Mode of studies:
offline
Open to:
students of one campus
Instructors:
Maria Gordenko
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
- 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
- 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
- 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
- Homework assignmentsHome assignments for the relevant topics discussed in the class in a form of small problems in the web IDE.
- Final examThe set of small programming auto-tested tasks.
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