Poll

No polls currently selected on this page!

Repository

Repository is empty

Data structures and algorithms

Code: 61587
ECTS: 5.0
Lecturers in charge: prof. dr. sc. Robert Manger - Lectures
Lecturers: Luka Cigler, mag. math. - Exercises
Sebastijan Horvat, mag. inf. et math. - Exercises
dr. sc. Ivana Šain Glibić - Exercises
Borna Vukorepa, mag. math. - Exercises
English level:

1,0,0

All teaching activities will be held in Croatian. However, foreign students in mixed groups will have the opportunity to attend additional office hours with the lecturer and teaching assistants in English to help master the course materials. Additionally, the lecturer will refer foreign students to the corresponding literature in English, as well as give them the possibility of taking the associated exams in English.
Load:

1. komponenta

Lecture typeTotal
Lectures 30
Exercises 30
* Load is given in academic hour (1 academic hour = 45 minutes)
Description:
COURSE AIMS AND OBJECTIVES: Acquiring basic knowledge about abstract data types, and data structures that are used for their implementation. Getting familiar with basic techniques for design and analysis of algorithms.

COURSE DESCRIPTION AND SYLLABUS:
1. Introduction. The notion of type, abstract data type, and data structure. Building blocks of a data structure: arrays, records, pointers, cursors. The notion of algorithm. Specification and analysis of algorithms.
2. Abstract data types. Lists, stacks, queues, ordered trees, binary trees, sets, dictionaries, priority queues, mappings.
3. Data structures (serving for implementation of the considered abstract data types). Linked lists and other linked structures, hash tables, binary search trees, heaps.
4. Basic algorithms (performing basic operations over structures). Insertion and deletion of data, traversal, searching, retrieval of contents, etc.
5. More complex algorithms (that apply the considered structures). Sorting and merging of lists, evaluation of arithmetic expressions, various recursive procedures.
6. General algorithm design techniques. Divide and conquer, dynamic programming, greedy approach, backtracking, local search.
Literature:
  1. R. Manger, M. Marušić: Strukture podataka i algoritmi, 2. izdanje
  2. A. V. Aho, J. E. Hopcroft, J. D. Ullman: Data Structures and Algorithms
  3. E. Horowitz, S. Sahni, S. Anderson-Freed: Fundamentals of Data Structures in C
  4. E. Horowitz, S. Sahni, S. Rajasekaran: Computer Algorithms / C++
  5. R. L. Kruse, B. P. Leung, C. L.Tondo: Data Structures and Program Design in C, 2nd edition
  6. B. R. Preiss: Data Structures and Algorithms with Object-Oriented Design Patterns in C++
  7. M. T. Goodrich, R. Tamassia: Algorithm Design - Foundations, Analysis, and Internet Examples
  8. K. Loudon: Mastering Algorithms with C
Prerequisit for:
Enrollment :
Passed : Computer programming 2
3. semester
Računarstvo - Regular study - Mathematics Education

4. semester
Računarstvo - Regular study - Mathematics Education
Consultations schedule:

Content

Link to the course web page: https://web.math.pmf.unizg.hr/nastava/spa/