Курс Алгоритми - септември 2015

Курс Алгоритми - септември 2015

17 септември 2015 06 декември 2015 11 седмици 12 кредита

Какви умения ще придобия?

  • Дизайн и анализ на компютърни алгоритми
  • Познаване на базовите алгоритми в програмирането
  • Конструиране на рекурсивни, комбинаторни и изчерпващи алгоритми
  • Ползване и имплементация на алгоритми за сортиране и търсене
  • Използване на техниката "динамично оптимиране"
  • Използване на графи за моделиране и решаване на задачи от реалния свят
  • Използване на алчни алгоритмични техники
  • Дизайн на паралелни изчисления с map-reduce в разпределена среда Apache Hadoop

До кога мога да се запиша и кога стартира курсът?

Обучението стартира на 17 септември 2015 и завършва на декември с провеждане на практически изпит.

За кого е подходящ курса?

Курсът по алгоритми е подходящ за хора, които имат поне основни знания по програмиране.

Кога и къде ще се провеждат занятията?

Занятията се провеждат веднъж седмично като има две възможни групи: всеки четвъртък от 18:00 до 22:00 ч. и всеки петък от 14:00 до 18:00 ч. в сградата на СофтУни. Преди началото на курса можете да изберете кога да посещавате учебнвите занятия - в четвъртък или в петък. Програмата на курса можете да видите в таблицата по-долу.

Какви са формите на обучение?

Имате възможност да изберете дали да се обучавате в присъствена или онлайн форма на обучение:

  • Ако се запишете в присъствена форма на обучение, имате възможност да посещавате занятията на място в университета, да участвате в лабораторни упражнения в учебната зала, имате достъп до всички видео лекции и материали от курса, както и да предавате своите домашни за проверка.
  • Ако се запишете в онлайн форма на обучение, имате достъп до всички видео лекции и материали от курса, както и да предавате своите домашни за проверка.

Ще получа ли сертификат след края на курса?

Обучението завършва с практически изпит алгоритмично програмиране (по желание), който представлява решаване на 4 задачи от изучавания материал за 6 часа, с автоматизирана проверка в реално време (judge система). На изпита може да се използват езиците C#, Java и C++. Желаещите да се явят на изпита могат да получат официален сертификат от СофтУни, ако получат оценка над Много добър (5).

Колко струва обучението в курса?

Обучението в курса е безплатно. Единствено желаещите да се явят на изпит и да получат сертификат на Софтуерния университет, заплащат еднократна такса:

УслугаЦена
Записване за курса (присъствена или онлайн форма на обучение)БЕЗПЛАТНО
Записване за изпит до 01.10.2015 г. (включва се и издаване на сертификат)100 лв.
Записване за изпит след 01.10.2015 г. (включва се и издаване на сертификат)200 лв.

Как мога да се запиша?

За да се запишете за курса, кликнете на оранжевия бутон "ЗАПИШИ СЕ" и следвайте стъпките.

След изчерпване на свободните места в присъствена форма на обучение ще остане отворено записването само за онлайн обучение.

Структури от данни и алгоритми

Курсът по Алгоритми допълва курса по Структури от данни в СофтУни, но материалът е така структуриран, че двата курса са независими един от друг и не се очаква да сте преминали единия, за да вземете другия.

Фирми, подкрепящи курса по Алгоритми

Chaos Group logo

Chaos Group е компанията създала един от най-успешните продукти за 3D визуализация – V-Ray. През 1997 г. компанията стартира като студио в сферата на 3D и анимационните услуги. По това време двамата съоснователи на компанията Петър Митев и Владимир Койлазов са студенти във ФМИ и започват да пишат софтуер. През 1999 г. двамата пускат на пазара първия си продукт - Phoenix, софтуер за симулация на флуиди като огън и пушек. Три години по-късно официално е пусната първата версия на V-Ray за платформата 3ds Max и компанията се превръща в световен лидер в предоставянето на иновативни софтуерни решения за архитектурната, мебелната и развлекателната индустрия и сектора за визуализиране.
Днес Chaos Group има офиси в България, САЩ, Япония и Корея, създала е мрежа от 250 дистрибутора по света и в понастоящем е работодател на над 150 души.

Тема

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 ч.

Материали

Тема

Map-Reduce
  • Big Data concepts
  • Map-Reduce computational model
  • Writing mapper and reducer functions
  • Apache Hadoop: Hadoop File System (HDFS) and Hadoop MapReduce
  • Demo: implement map-reduce word count and CSV data analyser 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
  • 4 problems for 6 hours with automated judge system
Дата: 19 ноември 2015, 18:00-22:00 ч.

Материали

Тема

Algorithms Practical Exam
Дата: 6 декември 2015, 9:30 - 15:30 часа

Материали

*Моля, докладвайте само грешки в материалите към лекцията. За всякакъв друг тип грешки, свързани със системата, използвайте формата за обратна връзка."