NETB290 Състезателно програмиране - I част
Анотация:
The course is more practical. It aims to prepare students to solve tasks, requiring the creation of more complex algorithms. During the course we will study the entire path from problem creation to solutions analysis - data analysis, review of existing algorithms to solve specific problems, selection of a suitable algorithm, modification of an existing or design of a new algorithm, selection of data structures, programming, testing of the program, algorithm and program performance analysis. The programming language is C/C++.
Преподавател(и):
доц. Николай Киров д-р
доц. Методи Трайков д-р
Описание на курса:
Компетенции:
Students who have successfully completed the course:
1) know:
• Analysis of the effectiveness of an algorithm;
• Algorithm design;
• Data analysis;
• Analysis and modifications of existing algorithms for sorting and searching;
• STL in C++;
2) can:
• To design and implement complex algorithms for solving applied and scientific problems;
• Modify existing or build new algorithms;
• To analyze the effectiveness of an algorithm and a program.
Предварителни изисквания:
Students to have knowledge and/or skills:
- Basic operators in the programming language C and/or C++;
- Knowledge and programming skills in C and/or C++.
- Functional programming in C++;
- Working with a text editor;
- Access to resources on the Internet;
- General computer literacy.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Technology for efficient programming of algorithms. Data structures.
- Evaluation and complexity of algorithms. Numerical systems.
- Fibonacci Numbers. Greatest common divisor, least common multiple. Recursion.
- Programming Contest 1
- Programming Contest 1
- Programming Contest 1 - Tasks discussion
- Combinatorial algorithms and decomposition of numbers.
- Sorting by comparison and transformation.
- Programming Contest 2
- Programming Contest 2
- Programming Contest 2 - Tasks discussion
- Search. Sequential and binary search. Backtracking
- Divide and Conquer
- Programming Contest 3
- Programming Contest 3
Литература по темите:
Books:
1. Preslav Nakov, Panayot Dobrikov, Programming =++ Algorithms; TopTeam Co., 2003, 696 pages
2. Antti Laaksonen, Competitive Programmer's Handbook, 2017, https://cses.fi/book.html
Additional materials
1. Leen Ammeraal, Algorithms and Data Structures in C++, 1 eds, John Wiley & Sons, 1996
2. Robert Sedgewick, Algorithms in C. Volume 1 and 2, Addison-Wesley Professional, 2002
3. Саймън Харис, Джeймс Рoс, Оснoви нa aлгoритмитe, Алекс Софт, 2006 (681.325.3 / Х 277)
4. Красимир Манев, Алгоритми в графи. Основни алгоритми, КЛМН, 2013.
5. MIT 6.006 Introduction to Algorithms, Fall 2011
6. Data Structure Visualizations
Средства за оценяване:
The practical exam is conducted according to the rules of the final exam competition: the students have tasks and a computer on which to write the solutions to the tasks - working C++ programs.