Lecturer(s)
|
|
Course content
|
1) Time and memory complexity (big O notation), algorithm examples 2-3) Matrix and array algorithms - OOP representation, polynomials representation and evaluations (Horner?s scheme), matrix multiplication 4-5) Working with bitmaps ? images denoising, simple filters implementation, thumbnails and mosaic generation 6) List, Queue, Stack ? implementation in OOP, examples of usage 7) Sorting algorithms ? examples of O(n*log(n)), O(n^2) 8) Searching algorithms ? binary search, interpolation search, string matching algorithms 9) Binary tree ? methods of traversal, implementation and usage 10-11) Backtracking algorithms ? N-Queen problem, Sudoku solving 12-13) Dynamic programming principles - source allocation problem, shortest path in graph
|
Learning activities and teaching methods
|
unspecified
|
Learning outcomes
|
This course is focused on the practice of algorithmization and programming in C# language. The real world problems are solved via object oriented paradigm. The course is focused on the problem introduction and we emphasize practical problem solution. The time and memory complexity of the algorithms is taken into account.
|
Prerequisites
|
unspecified
|
Assessment methods and criteria
|
unspecified
An individual seminar work focused on implementation and visualization of algorithm in C#. The seminar work must be approved by teacher.
|
Recommended literature
|
-
Donald E. Knuth. Umění programování, 1. díl, Základní algoritmy. Brno, 2008.
-
Nash T. C# 2010 : rychlý průvodce novinkami a nejlepšími postupy. Computer Press, Brno, 2010. ISBN 978-80-251-3034-6.
-
Pecinovský R. OOP: naučte se myslet a programovat objektově. Computer Press, Brno, 2010. ISBN 978-80-251-2126-9.
|