1. Refreshing skills in C-programming.
2. Data structures and their building principles: arrays and linked structures. Operations on data structures.
3. Some specific data structures: sparse matrixes, circular buffers, etc.
4. Abstract data structures. List, stack, queue, dictionary.
5. Algorithm complexity analyses.
6. Recursion and recursive algorithms.
7. Sequental search and binary search.
8. Trees. Tree balancing problem. AVL-trees.
9. Self-organizing trees.
10. B-trees and red-black trees. B*-trees.
11. Structures for data stored in external memory. B+ trees.
12. Digital search trees and tries. Existence tables. Trinary trees.
13. Priority queue and heap. Leftist heaps. Binomial queues.
14. Hashing. Hash functions. Separate chaining and open addressing. Extendible hashing.
15. Simple sorting algorithms. Shell sort. Quick sort. Merge sort. Radix sort. Heap sort.
16. Pattern matching problem. Boyer-Moore method. Rabin-Karp method.
17. Data compression. Huffman coding. Lempel-Zivi method principles.
18. Types of algorithms. Divide and conquer algorithms. Greedy algorithms. Dynamic programming principles. Randomized algorithms.
Politecnico di Torino
Please use this identifier to cite or link to this item:
MORE INFOLESS INFO
Lab exercises, followed by oral exam.
Level::ISCE::Bachelor’s or equivalent level
ACM Computing Classification System->Software and its engineering->Software organization and properties , ACM Computing Classification System->Theory of computation->Design and analysis of algorithms
Be able to select data structures best suited for solution of a concrete data processing problem. , Be able to select algorithms best suited for solution of a concrete data processing problem.