Title:  Algorithms 

Code:  IALe 

Ac.Year:  2017/2018 

Term:  Winter 

Curriculums:  

Language of Instruction:  English 

News:  * This course is prepared for incoming Erasmus+ students only, and it is instructed in English. * This course will be open if a certain/sure minimum of enrolled students is at least five students.


Credits:  5 

Completion:  credit+exam (written) 

Type of instruction:  Hour/sem  Lectures  Sem. Exercises  Lab. exercises  Comp. exercises  Other 

Hours:  39  0  0  0  13 

 Examination  Tests  Exercises  Laboratories  Other 

Points:  51  14  0  0  35 



Guarantor:  Honzík Jan M., prof. Ing., CSc., DIFS 

Lecturer:  Burgetová Ivana, Ing., Ph.D., DIFS Honzík Jan M., prof. Ing., CSc., DIFS Masařík Karel, Ing., Ph.D., DIFS 
Instructor:  Burgetová Ivana, Ing., Ph.D., DIFS Křena Bohuslav, Ing., Ph.D., DITS Masařík Karel, Ing., Ph.D., DIFS 

Faculty:  Faculty of Information Technology BUT 

Department:  Department of Information Systems FIT BUT 

Followups:  

 Learning objectives: 

  To acquaint with the principles of methods of proving of correctness of programs and with basic concepts of construction of proved programms. To learn the fundamentals of algorithm coplexity. To learn the principles of dynamic memory allocation. To acquaint with basic abstract data types and to command its implementation and exploitation. To learn and command recursive and non recursive notation of basic algorithms. To overrule the implementation and analysis of most used algorithms for searching and sorting.  Description: 

  Overview of fundamental data structures and their exploitation. Principles of dynamic memory allocation. Specification of abstract data types (ADT). Specification and implementation of ADT's: lists, stack and its exploitation, queue, set, array, searching table, graph, binary tree. Algorithms upon the binary trees. Searching: sequential, in the ordered and in not ordered array, searching with the guard (sentinel), binary search, search tree, balanced trees (AVL). Searching in hashtables. Ordering (sorting), principles, sorting without the moving of items, sorting with multiple keys. Most common methods of sorting: Selectsort, Bubblesort, Heapsort, Insertsort a jeho varianty, Shellsort, recursive and nonrecursive notation of the Quick sort, Mergesort, Listmergesort, Radixsort. Recursion and backtrack algorithms. Searching the patterns in the text. Proving of correctness of programs, construction of proved programs.  Knowledge and skills required for the course: 

 
 Basic knowledge of the programming in procedural programming language. BASIC COMPETENCES AND KNOWLEDGE FROM PROGRAMMING (Clanguage, Pascal or others) WILL BE EXAMINED AT THE BEGINNING OF THE COURSE. FAILING WILL LEAD TO CANCELING THE ENROLED COURSE IAL !!!
 Knowledge of secondary school level mathematics.
 Subject specific learning outcomes and competences: 

 
 Student will acquaint with the methods of proving of correctness of programs and with construction of proved programms and learn their significance.
 Student will learn the fundamentals of algorithm coplexity and their intention.
 He/she acquaints with basic abstract data types and to commands its implementation and exploitation.
 Student will learn the principles of dynamic memory allocation.
 He/she learns and commands recursive and non recursive notation of basic algorithms.
 Student overrules the implementation and analysis of most used algorithms for searching and sorting.
 Generic learning outcomes and competences: 

 

Student learns terminology in Czech ane English language

Student learns to participate on the small project as a member of small team

Student learns to present and defend the results of the small project  Syllabus of lectures: 


 Overview of data structures. Abstract data type and its specification.
 Specification, implementation and exploitation of ADT list.
 Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of stack.
 ADT array, set, graph, binary tree.
 Algorithms upon the binary tree.
 Searching, sequential, in the array, binary search.
 Binary search trees, AVL tree.
 Hashingtables.
 Ordering (sorting), principles, without movement, multiple key.
 Most common methods of sorting of arrays, sorting of files.
 Recursion, backtracking algorithms.
 Proving the programs, costruction of proved programmes.
 Syllabus  others, projects and individual work of students: 


 Two home assignments
 Project with a minidefence for a team of students.
 NOte: Change for the year 2009, project cancelled!
 Fundamental literature: 


 Honzík, J., Hruška, T., Máčel, M.: Vybrané kapitoly z programovacích technik, Ed.stř.VUT Brno,1991.
 Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
 Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
 Horovitz, Sahni: Fundamentals of Data Structures.
 Amsbury, W: Data Structures: From Arrays to Priority Cormen, T. H., Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms.
 Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms.
 Kruse, R.L.: Data Structures and Program Design. Prentice Hall,Inc. 1984
 Baase, S.: Computer Algorithms  Introduction to Design and Analysis. Addison Wesley, 1998
 Study literature: 


 Honzík, J., Hruška, T., Máčel, M.: Vybrané kapitoly z programovacích technik, Ed.stř.VUT Brno,1991.
 Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
 Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
 Horovitz, Sahni: Fundamentals of Data Structures.
 Amsbury, W: Data Structures: From Arrays to Priority Queues.
 Cormen, T. H., Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms.
 Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms.
 Kruse, R.L.: Data Structures and Program Design. Prentice Hall,Inc. 1984
 Baase, S.: Computer Algorithms  Introduction to Design and Analysis. Addison Wesley, 1998
 Progress assessment: 

 
 Evaluated ints home assignments  20 points
 Midterm written examination  15 points
 Evaluated project with the defense  15 points 
 Final written examination  50 points
 Change for the year 2017
 Two evaluated home assignments  25 points
 Midterm written examination  14 point
 Final written examination  51 points
 Attendance at lectures  10 points
 Exam prerequisites: 

   
