Курс по Алгоритми в СофтУни
Курсът по алгоритми развива умения за алгоритмично мислене и решаване на алгоритмични проблеми. Разглеждат се основните класове алгоритми, използвани в практиката: рекурсия и рекурсивни алгоритми, търсене с връщане назад (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