Курс по Алгоритми в СофтУни
Курсът по алгоритми развива умения за алгоритмично мислене и решаване на алгоритмични проблеми. Разглеждат се основните класове алгоритми, използвани в практиката: рекурсия и рекурсивни алгоритми, търсене с връщане назад (backtracking), комбинаторни алгоритми, алгоритми засортиране и търсене, динамично оптимиране, графи и алгоритми върху графи, разпределени изчисления с map-reduce.
До кога мога да се запиша и кога стартира курсът?
Обучението стартира на 17 септември 2015 и завършва в края на ноември с провеждане на практически изпит.
Кога и къде ще се провеждат занятията?
Занятията се провеждат всеки четвъртък от 18:00 до 22:00 ч. в сградата на СофтУни. Програмата на курса можете да видите в таблицата по-долу.
Какви са формите на обучение?
Имате възможност да изберете дали да се обучавате в присъствена или онлайн форма на обучение:
- Ако се запишете в присъствена форма на обучение, имате възможност да посещавате занятията на място в университета, да участвате в лабораторни упражнения в учебната зала, имате достъп до всички видео лекции и материали от курса, както и да предавате своите домашни за проверка.
- Ако се запишете в онлайн форма на обучение, имате достъп до всички видео лекции и материали от курса, както и да предавате своите домашни за проверка.
Ще получа ли сертификат след края на курса?
Обучението завършва с практически изпит алгоритмично програмиране (по желание), който представлява решаване на 5 задачи от изучавания материал за 6 часа, с автоматизирана проверка в реално време (judge система). На изпита може да се използват езиците C#, Java и C++. Желаещите да се явят на изпита могат да получат официален сертификат от СофтУни, ако получат оценка над Много добър (5).
Колко струва обучението в курса?
Обучението в курса е безплатно. Единствено желаещите да се явят на изпит и да получат сертификат на Софтуерния университет, заплащат еднократна такса:
- Записване за курса (присъствена или онлайн форма на обучение) - БЕЗПЛАТНО
- Записване за изпит до 01.10.2015 г. (включва се и издаване на сертификат) - 100 лв.
- Записване за изпит след 01.10.2015 г. (включва се и издаване на сертификат) - 200 лв.
Как мога да се запиша?
За да се запишете, отидете на страницата на курса по Алгоритми и кликнете на оранжевия бутон "ЗАПИШИ СЕ" и следвайте стъпките.
След изчерпване на свободните места в присъствена форма на обучение ще остане отворено записването само за онлайн обучение.
Структури от данни и алгоритми
Курсът по Алгоритми допълва курса по Структури от данни в СофтУни, но материалът е така структуриран, че двата курса са независими един от друг и не се очаква да сте преминали единия, за да вземете другия.
КОГА: 21.08.2015
МЯСТО: СофтУни, ул. Тинтява 15-17, ет. 2
Course Overview
Дата: 17 септември 2015, 18:00-19:00 ч.
Recursion and Recursive Algorithms
- Recursion: direct, indirect, infinite, exit criteria
- Backtracking: the 8 queens problem, all paths in labyrinth
- Lab: solve the 8 queens problem
Дата: 17 септември 2015, 19:00-22:00 ч.
Combinatorial Algorithms
- Generating combinations (with and without repetitions)
- Lab: generate combinations
- Generating variations (with and without repetitions)
- Lab: generate variations
- Generating permutations (with and without repetitions)
- Lab: generate permutations
Дата: 24 септември 2015, 18:00-22:00 ч.
Sorting and Searching Algorithms
- Sorting, stable and unstable sorting
- Comparison-based sorting
- Selection sort, bubble sort, insertion sort, quicksort, merge sort, heap sort
- Lab: implement quicksort
- Counting-based sorting: counting sort, bucket sort
- Lab: implement bucket sort
- Search algorithms: linear search, binary search, interpolation search
- Lab: implement binary search and interpolation search
- Shuffle algorithms
Дата: 1 октомври 2015, 18:00-22:00 ч.
Dynamic Programming
- Divide-and-conquer
- Dynamic programming concepts, memoization
- Classical dynamic programming problems and solutions
- Longest increasing subsequence
- Longest common subsequence (LCS)
- Subset sum problem
- Knapsack problem
- Lab: solve the longest common subsequence problem
- Lab: solve the knapsack problem
Дата: 8 октомври 2015, 18:00-22:00 ч.
Graphs and Graph Algorithms
- Graphs: definition, terminology, representations
- Basic graph algorithms: traversals, finding connected components
- Shortest paths: Dijkstra's algorithm, Floyd–Warshall algorithm
- Lab: implement the Dijkstra's algorithm
- Topological sorting algorithms
- Lab: implement topological sorting with DFS
Дата: 15 октомври 2015, 18:00-22:00 ч.
Advanced Graph Algorithms
- Minimal spanning tree (MST): Prim and Kruskal algorithms
- Lab: implement Kruskal's algorithm
- Bi-connected components
- Strongly-connected components
- Maximum flow: problem, algorithms, applications
- Lab: implement max-flow with BFS algorithm
Дата: 22 октомври 2015, 18:00-22:00 ч.
Greedy Algorithms
- Greedy algorithms: picking locally best solution
- Lab: implement a greedy algorithm for sum of coins
- Greedy algorithms and failure cases
- Optimal substructure and greedy choice
- The set cover problem: greedy algorithms for NP-complete problems
- Lab: implement a greedy algorithm for the set cover problem
- Notable greedy algorithms: Dijkstra, Prim, Kruskal, Huffman coding
Дата: 29 октомври 2015, 18:00-22:00 ч.
Parallel Processing and Map-Reduce
- Parallelism and concurrency
- Data parallelism / task parallelism
- Concurrent containers
- Map-Reduce computational model
- Apache Hadoop: Hadoop File System (HDFS) and Hadoop MapReduce
- Lab: implement map-reduce with Apache Hadoop
Дата: 5 ноември 2015, 18:00-22:00 ч.
Problem Solving Methodology
- Proven techniques for problem solving
- Read and Analyze the Problems
- Use a sheet of paper and a pen for sketching
- Think up, invent and try ideas
- Break the problem into sub-problems
- Check up your ideas
- Choose appropriate data structures
- Think about the efficiency
- Implement your algorithm step-by-step
- Thoroughly test your solution
- Lab: counting words in a text file
Дата: 12 ноември 2015, 18:00-22:00 ч.
Algorithms Exam Preparation
- Solving a sample exam live in class
- 5 problems for 6 hours with automated judge system
Дата: 19 ноември 2015, 18:00-22:00 ч.
Algorithms Practical Exam
- 5 problems for 6 hours
- Automated judge system with real-time feedback: http://judge.softuni.bg