# Data Structures and Algorithms

### Data Structures and Algorithms

 Code: 40717 ECTS: 5.0 Lecturers in charge: doc. dr. sc. Andrej Novak - Lectures Lecturers: 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;
1.6. list and describe the methods for manipulating data, basic principles of databases and fundamental algorithms in programming;
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. describe the basic concepts of digital technology;
2.6. apply fundamental algorithms in programming;
2.7. use computing technology to solve scientific and technological problems;
2.9. create a learning environment that encourages active engagement in learning and promotes continuing development of pupils' skills and knowledge;
3. MAKING JUDGMENTS
3.1. develop a critical scientific attitude towards research in general, and in particular by learning to critically evaluate arguments, assumptions, abstract concepts and data;
3.4. accept responsibilities in planning and managing teaching duties;
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 : Fundamentals of Programming
Passed : Mathematical Analysis 2
 3. semester Mandatory course - Mandatory studij - Physics and Computer Science Education
Consultations schedule:

### Repository

Repository is empty