Charles Explorer logo
🇬🇧

Programming

Class at Faculty of Science |
MC260P148

Syllabus

- What are algorithms, data structures and programs?

- First programs in safe environment

- Describing and analyzing algorithms (programming languages, procedural and functional programming, invariants)

- Program flow (if, loop, functions, operators, expressions, variables, assignment)

- Programming paradigms (recursion, divide and conquer, dynamic programming, backtracking, greedy algorithms)

- Data structures

- Arrays

- Stacks, queues, lists

- Trees (representations, traversals, game trees, expression trees)

- Searching (arrays, searching trees, hashing tables)

- Sorting (n2 methods, nlog n methods)

- Graphs (representations, traversals, shortest path, topological sort, A* search)

- Numbers and their representations (integer, fixed point, floating point)

- What can be computed? (decidability, complexity)

Annotation

The course Programming provides an introduction to computer programming starting from basic concepts (computability, algorithms, data structures, programming languages, implementations, computer hardware), developing on fundamental algorithms (searching, sorting, graph algorithms, …) and data structures (lists, arrays, trees, …), describing different algorithmic (divide and conquer, dynamic, branch and bound, …) and programming (procedural, functional, parallel, …) paradigms. The examples will be given in a restricted programming environment before going to the wild and practiced in small groups of students allowing an individual approach.

Within the course students may access high-performance computer center Troja.