Курс Структури от данни - юни 2015

Курс Структури от данни - юни 2015

25 юни 2015 13 септември 2015 12 седмици 12 кредита

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

  • Работа със структури от данни в програмирането
  • Оценяване на сложност на алгоритъм
  • Имплементация на линейни структури от данни: списъци, стекове и опашки
  • Дървовидни структури от данни: използване и имплементация
  • Обхождане на дървовидни структури данни в дълбочина (DFS) и в ширина (BFS)
  • Речници и хеш таблици: използване и имплементация
  • Познаване на сложни структури данни: балансирани дървета, суфиксни дървета, rope, heap и други
  • Ефективност на структурите данни: кога коя структура да използваме?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Продължение: курс по алгоритми

След курса "Структури от данни" следва курс "Алгоритми", който е негово естествено продължение. В курса по компютърни алгоритми ще изучаваме основите на алгоритмите и алгоритмичното програмиране с много практика. Курсът ще обхваща програмни техники за дизайн на алгоритми и класически алгоритми от компютърните науки: рекурсия и комбинаторни алгоритми, алгоритми за сортиране и търсене, техниката динамично оптимиране и нейното приложение при решаването на оптимизационни комбинаторни задачи, теория на графите и алгоритми върху графи, алгоритми за паралелна обработка на данни и map-reduce, методология за решаване на алгоритмични задачи и други.

Езици за програмиране и среди за разработка

По време на учебните занятия ще използваме езика C# и средата за разработка Visual Studio. За домашните и изпитите може да се използват още езиците C++ и Java.

Тема

Course Overview
Дата: 25 юни 2015, 18:00-19:00 ч.

Материали

Тема

Data Structures, Algorithms and Complexity
  • Abstract data structures (ATD) and implementations
  • Algorithm complexity
  • The "big o" notation – O(g(x))
  • The "big theta" notation – Θ(g(x))
  • Analyzing algorithms complexity
  • Lab: calculating complexity of existing code
Дата: 25 юни 2015, 19:00-22:00 ч.

Материали

Тема

Linear Data Structures – Lists
  • Linear data structures – lists, stacks, queues
  • Lists: linked list and array-based implementations
  • Lab: implement a linked list
Дата: 2 юли 2015, 18:00-22:00 ч.

Материали

Тема

Linear Data Structures – Stacks and Queues
  • Queues: linked and circular array-based implementations
  • Lab: implement a circular queue
  • Stacks: linked and array-based implementations
  • Lab: implement an array-based stack
Дата: 9 юли 2015, 18:00-22:00 ч.

Материали

Тема

Trees and Tree-Like Structures
  • Trees and implementations
  • Binary tree traversals: preorder, in-order, post order
  • Lab: implement a tree + in-order traversal
Дата: 16 юли 2015, 18:00-22:00 ч.

Материали

Тема

Tree Traversal Algorithms – BFS and DFS
  • Depth-first-search (DFS)
  • Lab: find connected areas in a graph (using DFS)
  • Breadth-first search (BFS)
  • Lab: exit from labyrinth (using BFS)
Дата: 23 юли 2015, 18:00-22:00 ч.

Материали

Тема

Dictionaries and Hash Tables
  • Dictionary / map / associative array ADT
  • Lab: counting words in a text file
  • Hashing and hash functions
  • Hash-tables and collision resolutions
  • Lab: implement a hash table
Дата: 30 юли 2015, 18:00-22:00 ч.

Материали

Тема

Collection Data Structures and Libraries
  • Collection data structures: lists, dictionaries, ordered dictionaries, multi-dictionaries, ordered multi-dictionaries, sets, ordered sets, bags, ordered bags
  • Wintellect Power Collections and C5 Collections data structure libraries
  • Lab: using ordered multi-dictionary for extracting keys in given range
  • Lab: using rope for efficient string editing
Дата: 13 август 2015, 18:00-22:00 ч.

Материали

Тема

Advanced Tree Structures
  • Priority queue, heap, rope, trie, suffix tree, interval tree, index tree
  • Lab: implementing a binary heap + heap-sort
  • BSP-trees (binary space partitioning)
  • K-d trees (k-dimensional trees)
Дата: 20 август 2015, 18:00-22:00 ч.

Материали

Тема

Data Structure Efficiency
  • Comparison of data structures and their computational complexity
  • Compare efficiency of arrays, lists, trees, hash-tables, sets, bags, etc.
  • Lab: compare execution time
Дата: 27 август 2015, 18:00-22:00 ч.

Материали

Тема

Exam Preparation
  • Solving a sample exam live in class
  • Problem 1: implement a command execution system with suitable data structures
  • Problem 2: implement a data structure like hash-table or set
Дата: 3 септември 2015, 18:00-22:00 ч.

Материали

Тема

Practical Exam
  • 2 problems for 6 hours: command execution system + implement a data structure
  • Automated judge system with real-time feedback: http://judge.softuni.bg
Дата: 13 септември 2015

Материали

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