Programming Essentials

B232 - Summer 23/24
This course is not present in Moodle. You can visit its homepage by clicking the "Course page (outside Moodle)" button on the right (if available).

Programming Essentials - BE5B33PRG

Credits 6
Semesters Winter
Completion Assessment + Examination
Language of teaching English
Extent of teaching 2P+2C
Annotation
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.
Study targets
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.
Course outlines
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.
Exercises outlines
Computer Lab 01, first steps
Computer Lab 02, variables, conditionals
Computer Lab 03, Functions
Computer Lab 04, Iterables
Computer Lab 05, Non-trivial loops
Computer Lab 06, Modules and testing
Computer Lab 07, Files
Computer Lab 08, Automated testing
Computer Lab 09, Spam Filter I
Computer Lab 10, Spam Filter II
Computer Lab 11, Spam Filter III
Computer Lab 12, Spam Filter IV
Computer Lab 13, Spam Filter V
Literature
Allen Downey. Think Python, How to Think Like a Computer Scientist. Green Tea Press, 2009
http://cw.fel.cvut.cz/wiki/courses/be5b33prg/literature
Requirements
None. Only basic computer skills like editing ascii files.