Data Structures and Algorithms
1st Cycle Studies
Algorithmics and resolution of problems, procedural programming, object oriented programming (very important), discrete structures and complexity analysis (very important).
The learning process is supported on the following instruments: theoretical classes, theoretical-practical classes, lab, demonstrators of data structures and sorting, platform Mooshak.
After conclusion of this unit, the student should exhibit knowledge and understanding on the following topics: complexity analysis; general techniques for algorithm design; data structures and sorting.
Application of knowledge and understanding: complexity analysis; understanding on the recursive nature of the various data structures and algorithms; comparative analysis.
Judgement and decision making: decision on data structures, sorting algorithms and algorithm design.
Communication skills: reinforcement on the competencies on written communication for elaboration of technical reports; oral communication of decisions in context.
Self-learning skills: self-learning and identification of credible sources.
- Complexity analysis.
- Advanced techniques of algorithm design.
- Trees. AVL, VP, heaps, skip lists, B trees.
- Graph theory.
- Sorting algorithms: shell sort, merge sort, quick sort, radix sort, MSD, LSD.
- Hash tables.
- Selected topics (e.g. string matching).
Carlos Manuel Robalo Lisboa Bento
Practical works : 40.0%
Written exam : 60.0%
** WEISS, Mark Allen. Data Structures and Problem Solving Using Java, 3nd Edition. Pearson, Addison Wesley, 2006.
** DROZDEK, Adam. Data Structures and Algorithms in C++. Thomson Learning Inc., 2005.
** SEDGEWICK, Robert. Algorithms in C: Parts 1-4, Fundamentals, Data Structures, Sorting, Searching. Addison Wesley, 1998.
** SEDGEWICK, Robert. Algorithms in C: Part 5, Graph Algorithms. Addison Wesley, 2002.
** CORMEN, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford. Introduction to Algorithms, 2nd Edition. The MIT Press, 2001.