- Department of Cybernetics
The course focuses on understanding and mastering basic design principles of algorithms. It develops data abstraction coupled with the essential programming patterns. The emphasis is on creating readable and reusable programs.
None, only basic computer skills like editing ascii files.
- Syllabus of lectures:
Introduction and course organization, evolution of programming languages.
Algorithm design, the way of writing, flowcharts. Structure of a computer program. Problem decomposition.
Variables, expressions, basic data types and their representation. Type conversions.
Functions, pure and modifiers.
Branching and loops, if-then-else, case, for, while.
Data structures, arrays, strings. Pointers.
I/O operations, reading and writing text and binary files.
Programming styles, coding conventions, estimating complexity of the implementation, asymptotic notation.
Advanced data structures - structs, hash arrays.
Debugging and testing.
Making code human readable and programs reusable.
Overview of programming languages variety.
- Syllabus of tutorials:
- Study Objective:
- Study materials:
Allen Downey. Think Python, How to Think Like a Computer Scientist. Green Tea Press
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans: