Programming Essentials
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BE5B33PRG | Z,ZK | 6 | 2P+2C | English |
- Relations:
- In order to register for the course BE5B33PRG, the student must have registered for the required number of courses in the group BEZBM no later than in the same semester.
- Course guarantor:
- Tomáš Svoboda
- Lecturer:
- Milan Němý, Petr Pošík, Pavel Šindler
- Tutor:
- Milan Němý, Pavel Šindler
- Supervisor:
- Department of Cybernetics
- Synopsis:
-
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.
- Requirements:
-
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:
-
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
- Study Objective:
-
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 materials:
-
Allen Downey. Think Python, How to Think Like a Computer Scientist. Green Tea Press, 2009
- Note:
- Further information:
- https://cw.fel.cvut.cz/wiki/courses/BE5B33PRG
- Time-table for winter semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Electrical Engineering and Computer Science (EECS) (compulsory course in the program)
- Electrical Engineering and Computer Science (EECS) (compulsory course in the program)