Algorithms and Data Structures
Students will be able to design and program algorithms over advanced data structures, using the basics of the object-oriented program paradigm in C.
- describe the usage of various data structures
- recognize the complexity of operations and algorithms
- apply appropriate data structures and algorithms in solving real-life problems
- develop computer programs to implement appropriate data structures and algorithms
- assess the complexity of algorithms and computer programs
- identify appropriate data structures and algorithms in solving real-life problems
Forms of Teaching
Semester is organized in two cycles in totally 15 weeks, which accounts for two weeks for intermediate exams. There are four hours of lectures per week, divided in two terms of two hours (2+2).Exams
There are two exams: midterm exam and final exam.Laboratory Work
Two to three cycles of laboratory exercises.
|Type||Threshold||Percent of Grade||Comment:||Percent of Grade|
|Laboratory Exercises||0 %||30 %||0 %||30 %|
|Mid Term Exam: Written||40 %||30 %||0 %|
|Final Exam: Written||50 %||40 %|
|Exam: Written||50 %||70 %|
On midterm and final exams students are required to gather the sum of at least 35 points.
Week by Week Schedule
- Introduction. Review of basic programming and data structures. Memory allocation.
- Function call mechanisms. Definition of algorithm. Complexity of algorithms.
- Searching: sequential, jump-search, binary search.
- Recursion examples, exercises.
- Sorting algorithms: selection sort, bubble sort, insertion sort, Shell sort, mergesort, quicksort.
- Linear list. Multiple linear lists.
- Mid-term exam.
- Mid-term exam.
- Stack. Queue.
- Hashing examples.
- Introduction to graphs. Trees.
- Heap sort.