Algorithms and Data Structures

Algorithms and Data Structures

Algorithms and Data Structures

Обект на курса:

Целта на курса е да запознае аудиторията с основите на алгоритмите и структурите от данни в информатиката. Ще се акцентира върху оптимизиране на съществуващи проблеми и програми. Ще се види как бързодействието на много софтуерни проблеми може да бъде подобрено десетки пъти, използвайки правилните методи за решаване. Детайлно ще се обяснят и имплементират най-известните алгоритми и структури в информатиката.

Алгоритмите са независими от език за програмиране и придобитите концептуални знания са приложими във всяка технологична среда. С цел демонстрация, лектора ще използва C# за примерите по време на лекции.

За кого е предназначен

Курсът цели да надгради експертизата и професионалния подход към решаването на софтуерни проблеми и да помогне на участниците да се приспособят към стандартите на индустрията и подходите в комплексни софтуерни решения. Задължителни са стабилни базови познания по обектно-ориентирано програмиране, без значение на кой език. Работен опит с истински проекти е препоръчителен, но не задължителен. Занятията ще се водят на български, но лекциите и материалите ще са на английски език. Задължително e курсистите да имат базово ниво на английски език.

Продължителност на курса

Курсът е вместен в 13 лекции, всяка с продължителност 3 часа. Занятията се провеждат два пъти седмично, като общата продължителност на курса е 7 седмици.

Практическа част по време на занятия

За упражненията и практическата част по време на занятията всеки курсист трябва да носи личен лаптоп.

Практическата част ще се състои от групови и индивидуални задачи, част от които ще се извършват по време на курса, а други ще се подготвят, като домашна работа.

Цена на курса

Цената за цялата продължителност на курса е 700 лева. Като предоставяме възможност за разсрочено плащане – първа вноска 450 лева и втора вноска 250 лева в началото на всеки от месеците от курса.

В кои дни се провежда курса, кога ще започнат нови групи и как може да се запиша?

Разписанието се публикува в График, а за записване, моля използвайте Записване за курс.

Lessons

  1. Prerequisites and revision

    Arrays
    Matrices
    OOP
    C# overview:
             LINQ
             Lambda
             Generics
  2. Recursion

    Backtracking:
          8 (N) queens problem
          Subset sum
          The knight’s tour problem
  3. Sets, Hash tables, Dictionaries

    Hash functions (good and bad hash functions)
    Separate chaining
    Linear probing
    Sorted dictionaries
  4. Trees

    Basic representations
    Traversal of trees:
            DFS
            BFS
    Binary trees
  5. Heaps

    Min/Max heap
    Heapsort
    Priority queue (with min/max heap)
  6. Search trees

    Balanced binary trees
    Self balanced binary search trees:
            Red-black tree
            AVL tree
    B-tree:
            Usage in databases (indexes in SQL)
    Trie
  7. Graphs

    Basic representations
    Directed graphs
    Undirected graphs
    Weighted graphs
    Traversal of graphs:
            DFS
            BFS
    Topological sorting:
            Directed acyclic graphs
    Minimum spanning trees:
            Prim’s algorithm
            Kruskal’s algorithm
    Shortest paths:
            Dijkstra’s algorithm
            Bellman-ford algorithm
            A* algorithm (optional)
  8. Dynamic programming

    Fibonacci numbers
    Subset sum problem
    Knapsack problem
    Other optional problems if there is interest
  9. Cryptography

    Symmetric key
    Public/private key
    SHA 1 implementation
  10. Combinatorics

    Combinations
    Variations
    Permutations

Попълнете формата за препоръки и впечатления

Oстави своята препоръка или впечатление!

avatar