Title:

Algorithms

Code:IAL
Ac.Year:2004/2005
Sem:Winter
Curriculums:
ProgrammeField/
Specialization
YearDuty
IT-BC-3BIT2ndCompulsory
Language of Instruction:Czech, English
Credits:5
Completion:credit+exam (written)
Type of
instruction:
Hour/semLecturesSeminar
Exercises
Laboratory
Exercises
Computer
Exercises
Other
Hours:3900013
 ExamsTestsExercisesLaboratoriesOther
Points:50150035
Guarantor:Honzík Jan M., prof. Ing., CSc. (DIFS)
Lecturer:Honzík Jan M., prof. Ing., CSc. (DIFS)
Instructor:Cvrček Daniel, doc. Ing., Ph.D. (DITS)
Čech Vladimír, Ing. (DIFS)
Křena Bohuslav, Ing., Ph.D. (DITS)
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
 
Learning objectives:
  Basic attribute of ECTS:

To acquaint with the methods of proving of correctness of programs. To learn the fundamentals of algorithm coplexity. To acquaint with basic abstract data types namely: lists, stack, queue, array, graph, binary tree, search table. To command their implementation and exploitation. To learn the principles of dynamic memory allocation. 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 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.
Subject specific learning outcomes and competencies:
  Subject specific knowledge and abilities:
  • Student acquaints with the methods of proving of correctness of programs and is capable to prove correctness of simple algorithms.
  • He/she learns the fundamentals of algorithm coplexity and is capable to derive the complexity of simple algorithms.
  • He/she acquaints with basic abstract data types and  commands its implementation and exploitation.
  • He/she learns the principles of dynamic memory allocation.
  • He/she learns and command recursive and non recursive notation of basic algorithms .
  • He/She overrules the implementation and analysis of most used algorithms for searching and sorting.
  • Student overrule basic English termilology in the subject.

     

Generic learning outcomes and competencies:
  
  • Student will learn how to solve simple problems by te means of the project team-work.
  • He/she learns to present and defend  the results at the public auditorium.
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:
 
  • Home assignments for individual students.
  • Project with a mini-defence for team of max. 5 students.
Fundamental literature:
 
  • Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 2001
  • Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1997
  • Horovitz, Sahni: Fundamentals of Data Structures. Prentice- Hall,Inc.2001,
  • Amsbury, W: Data Structures: From Arrays to Priority, Prentice Hall, 2001
  • Cormen, T. H. ,Leiserson, Ch.E., Rivest,R.L.: Introduction to Algorithms. 1998
  • Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms. 1999.
  • Kruse, R.L.Data Structures and Program Design. Prentice- Hall,Inc. 1994
  • Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998
Study 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 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 home assignments - 20 points
  • Mid-term written examination - 15 point
  • Evaluated project with the defense - 15 points
  • Final written examination - 50 points
  • To be alowed to sit for written examination student is to earn at least 15 points during the semester.
  • Passing bounary for ECTS assessment - 50 points
 

Your IPv4 address: 18.232.99.123
Switch to https