Title:

Algorithms

Code:IAL
Ac.Year:2017/2018
Term:Winter
Curriculums:
ProgrammeBranchYearDuty
IT-BC-1HBCH-Recommended
IT-BC-3BIT2ndCompulsory
Language:Czech
Credits:5
Completion:accreditation+exam (written)
Type of
instruction:
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Hours:3900013
 ExaminationTestsExercisesLaboratoriesOther
Points:51140035
Guarantee:Honzík Jan M., prof. Ing., CSc., DIFS
Lecturer:Burgetová Ivana, Ing., Ph.D., DIFS
Honzík Jan M., prof. Ing., CSc., DIFS
Křena Bohuslav, Ing., Ph.D., DITS
Instructor:Burgetová Ivana, Ing., Ph.D., DIFS
Honzík Jan M., prof. Ing., CSc., DIFS
Hranický Radek, Ing., DIFS
Jeřábek Kamil, Ing., DIFS
Křena Bohuslav, Ing., Ph.D., DITS
Křivka Zbyněk, Ing., Ph.D., DIFS
Faculty:Faculty of Information Technology BUT
Department:Department of Information Systems FIT BUT
Prerequisites: 
Introduction to Programming Systems (IZP), DIFS
Follow-ups:
Java Programming Language (IJA), DITS
Principles of Programming Languages (IPP), DIFS
The C++ Programming Language (ICP), DITS
VHDL Seminar (IVH), DCSY
Substitute for:
Algorithms and Data Structures (ADS), DIFS
Schedule:
DayLessonWeekRoomStartEndLect.Gr.St.G.EndG.
Monexam - 1. oprava2018-01-22D10509:0011:502BIA
Monexam - 1. oprava2018-01-22D10509:0011:502BIB
Monexam - 1. oprava2018-01-22D10509:0011:503BIT
Monexam - 1. oprava2018-01-22D020609:0011:502BIA
Monexam - 1. oprava2018-01-22D020609:0011:502BIB
Monexam - 1. oprava2018-01-22D020709:0011:502BIA
Monexam - 1. oprava2018-01-22D020709:0011:502BIB
Monobhajoby projektů IAL a IFJ2017-12-11C20909:0018:50
Tueobhajoby projektů IAL a IFJ2017-12-12C22808:0015:50
Wedobhajoby projektů IAL a IFJ2017-12-13C20909:0018:50
Thuexam - 1. oprava2018-02-01D10511:0012:502BIA
Thuexam - 1. oprava2018-02-01D10511:0012:502BIB
Thuexam - 1. oprava2018-02-01D10511:0012:503BIT
Thuobhajoby projektů IAL a IFJ2017-12-07A21813:0017:50
Friobhajoby projektů IAL a IFJ2017-12-15C22808:0016:50
Friexam - řádná2018-01-12D10511:0013:502BIA
Friexam - řádná2018-01-12D10511:0013:502BIB
Friexam - řádná2018-01-12D10511:0013:503BIT
Friexam - řádná2018-01-12D020611:0013:502BIA
Friexam - řádná2018-01-12D020611:0013:502BIB
Friexam - řádná2018-01-12D020711:0013:502BIA
Friexam - řádná2018-01-12D020711:0013:502BIB
Friexam - řádná2018-01-12D020711:0013:503BIT
Friexam - řádná2018-01-12E11211:0013:502BIA
Friexam - řádná2018-01-12E11211:0013:502BIB
Friexam - řádná2018-01-12E10411:0013:502BIA
Friexam - řádná2018-01-12E10511:0013:502BIB
Friexam - řádná2018-01-12A11211:0013:502BIA
Friexam - řádná2018-01-12A11211:0013:502BIB
Friexam - řádná2018-01-12D020611:0013:503BIT
Friobhajoby projektů IAL a IFJ2017-12-08C22812:0015:50
 
Learning objectives:
  Student will learn the principles of methods of proving of correctness of programs (Wirth) and with basic concepts of construction of proved programs (Dijkstra) and will be able to use gained knowledge in design of programmes.. Student will learn the fundamentals of algorithm complexity and will be able to use gained knowledge in design of programmes. Student  learns the principles of dynamic memory allocation and he will exercise them on the model system. Student  acquaints with basic abstract data types and to command its implementation and exploitation.  Student  learns and commands recursive and non recursive notation of basic algorithms and will be able to use gained knowledge in design of programmes.. Student overrules the implementation and analysis of most of 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 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 and variants, 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.

5 ECTS credits represent approximately 125-150 hours of study workload:

  • 39 hours of lectures
  • 26 hours for two home assignments
  • 35 hours of project work
  • 20 hours of continual study
  • 30 hours of study for midterm and final examination

 

Knowledge and skills required for the course:
  
  • Basic knowledge of the programming in procedural programming language
  • 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 programs and learn their significance. 
  • Student will learn the fundamentals of algorithm complexity 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 and will be use them on the model system. 
  • 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 and 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:
 
  1. Overview of data structures. Abstract data type and its specification.
  2. Specification, implementation and exploitation of ADT list.
  3. Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of stack.
  4. ADT array, set, graph, binary tree.
  5. Algorithms upon the binary tree.
  6. Searching, sequential, in the array, binary search.
  7. Binary search trees, AVL tree.
  8. Hashing-tables.
  9. Ordering (sorting), principles, without movement, multiple key.
  10. Most common methods of sorting of arrays - beginning.
  11. Most common methods of sorting of arrays - continuation, sorting of files.
  12. Recursion, backtracking algorithms.
  13. Proving the programs, construction of proved programs.
Syllabus - others, projects and individual work of students:
 
  • Two home assignments
  • Project with a mini-defense for a team of students.
Fundamental literature:
 
  • 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.
Controlled instruction:
  In case of illness or other serious obstacle, student should inform the faculty about that and subsequently provide the evidence of such obstacle. Then, it can be taken into account within evaluation:
  • The student can ask responsible teacher to extend the time for home assignment.
  • If student cannot attend the mid-term exam, (s)he can ask to derive points from the evaluation of his/her first attempt of final exam. To enter the final exam in this case, at least 14 points from home assignments and project are required.
  • If student cannot attend the defense of the project and the other team members agree with that (s)he can earn the same points from the project defense as present members.
Progress assessment:
  
  • Evaluated home assignments - 20 points
  • Mid-term written examination - 14 point
  • Evaluated project with the defense - 15 points
  • Final written examination - 51 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.