### Repository

Repository is empty

### Data Structures and Algorithms

 Code: 40707 ECTS: 4.0 Lecturers in charge: doc. dr. sc. Andrej Novak - Lectures Lecturers: Predrag Brođanac - Laboratory exercises Luka Gulin - Laboratory exercises Take exam: Studomat

### 1. komponenta

Lecture typeTotal
Lectures 30
Laboratory exercises 30
Description:
COURSE GOALS: Acquire knowledge in data structures and algorithms in generic programming languages, with applications to C; acquire operational knowledge related to solving problems in informatics.

LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
1. KNOWLEDGE AND UNDERSTANDING
1.3. demonstrate knowledge and understanding of basic experimental methods, instruments and methods of experimental data processing in physics;
2. APPLYING KNOWLEDGE AND UNDERSTANDING
2.2. recognize and follow the logic of arguments, evaluate the adequacy of arguments and construct well supported arguments;
2.5. use information and communication technology efficiently (to foster active enquiry, collaboration and interaction in the classroom);
2.6. create motivating environment for active learning, which encourages the development of skills and knowledge of all students;
3. MAKING JUDGMENTS
3.3. reflect on and evaluate their own practice of teaching;
3.4. take responsibility for the successful implementation and execution of teaching tasks;
4. COMMUNICATION SKILLS
4.1. communicate effectively with pupils and colleagues;
4.2. present complex ideas clearly and concisely;

LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
* write recursive algorithms and understand how they work
* demonstrate knowledge of various data structures and implement them
* determine the complexity of an algorithm and compare efficiencies of alternative algorithmic solutions
* apply various approaches to programming in practice
* determine what type of algorithm fits best to a particular problem and implement that algorithm

COURSE DESCRIPTION:
Lectures per week (15 weeks in total):
1.) Introduction and basics of data structures
2.) C syntax
3.) Abstract data types, fields, pointers
4.) Structures and procedures
5.) Recursions
6.) Analysis of algorithm complexity
7.) Lists and stacks
8.) Stacks and rows
9.) Trees and walk-arounds
10.-11.) Binary trees
12.) Sets and dictionaries
13.) Tables and relations
14.-15.) Algorithm shaping
The exercises follow lectures by content.

REQUIREMENTS FOR STUDENTS:
The students need to take 2 midterm exams, each of which needs to be solved at least 50% with one complete assignment and attend at least 70% of classes.

GRADING AND ASSESSING THE WORK OF STUDENTS:
During the semester, the grade is continuously composed of:
* Two mid-terms, each of which can be taken twice, which carry 50% of the grade
* Oral exam, which carries 50% of the grade
Literature:
1. Introduction to Algorithms, The MIT Press, Cambridge, Massachusetts, (Thomas H. Cormen, Charles E.Leiserson, Ronald L. Rivest, Clifford Stein)
Prerequisit for:
Enrollment :
Passed : Computing Lab 2
Passed : Fundamentals of Programming
Passed : Mathematical Analysis 2
 5. semester Izborni predmeti - Regular study - Physics Education
Consultations schedule: