Faculty of Information Technology, BUT

Course details

Algorithms

IAL Acad. year 2010/2011 Winter semester 5 credits

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 hash-tables. Ordering (sorting), principles, sorting without the moving of items, sorting with multiple keys. Most common methods of sorting:Select-sort, Bubble-sort, Heap-sort, Insert-sort a jeho varianty, Shell-sort, recursive and non-recursive notation of the Quick sort, Merge-sort,List-merge-sort, Radix-sort. Recursion and backtrack algorithms. Searching the patterns in the text. Proving of correctness of programs, construction of proved programs.

Guarantor

Language of instruction

Czech, English

Completion

Credit+Examination (written)

Time span

39 hrs lectures, 13 hrs projects

Assessment points

51 exam, 14 half-term test, 35 projects

Department

Lecturer

Instructor

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

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.

Prerequisite kwnowledge and skills

  • Basic knowledge of the programming in procedural programming language
  • Knowledge of secondary school level matematics

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

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

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.
  • Hashing-tables.
  • 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 mini-defence for a team of students.

Progress assessment

  • Evaluated home assignments - 20 points
  • Mid-term written examination - 14 point
  • Evaluated project with the defense - 15 points
  • Final written examination - 50 points; The minimal number of points which can be obtained from the final written examination is 20. Otherwise, no points will be assigned to a student.

Exam prerequisites

  • to earn min. 20 points within the semester
  • Plagiarism and not allowed cooperation will cause that involved students are not classified and disciplinary action can be initiated.

Back to top