BETA

Обучения
Курс по Алгоритми в СофтУни




Курс по Алгоритми в СофтУни


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

Светлин Наков

Светлин Наков

Светлин Наков има 10-годишен опит като състезател по програмиране с десетки награди от състезания, конкурси и олимпиади по информатика и състезателно програмиране, включително 4 медала от международни олимпиади по информатика. Бил е треньор на ученически и студентски отбори по алгоритмично програмиране. Наков има над 15-годишен опит като софтуерен инженер, мениджър на софтуерни проекти, консултант, лектор и предприемач с богат опит в .NET and Java EE platforms, информационни системи, бази данни, уеб разработка и софтуерно инженерство. Той е автор на 7 книги за компютърно програмиране и софтуерни технологии, C# и Java, както и на десетки технически и научни публикации. Светлин Наков има докторска степен в областта на компютърните науки, носител е на Наградата на Президента на Република България “Джон Атанасов”. Още информация: http://www.nakov.com.