Programming for Engineers
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BE5B33PGE | Z,ZK | 6 | 2P+2C | English |
- Relations:
- In order to register for the course BE5B33PGE, the student must have registered for the required number of courses in the group BEZBM no later than in the same semester.
- Course guarantor:
- Marko Genyk-Berezovskyj
- Lecturer:
- Marko Genyk-Berezovskyj
- Tutor:
- Marko Genyk-Berezovskyj, Pavel Šindler
- Supervisor:
- Department of Cybernetics
- Synopsis:
- Requirements:
-
Basic programming skills on the level of an introductory course. The course uses Python and assumes students can code simple programes in it. The course is not intended for students beginners with no knowledge of programming.
- Syllabus of lectures:
-
1. Asymptotic complexity, estimation of execution time of a code
2 .1D arrays and lists, prefix sum, binary search
3. 2D arrays and matrices
4. Strings and text files
5. Recursion I, principles, simple examples
6. Library data structures and functions for searching and sorting, their complexity
7. Python application libraries Numpy, Scipy, with examples of use
8. Python application libraries Matplotlib, SageMath, NetworkX, with examples of use
9. Abstract data structures -- stack, queue, tree, graph -- and their implementation
10. Recursion 2, tree processing
11. Graph processing and searching 1, graph representation, local search
12. Graph processing and searching 2, BFS DFS
13. Rezerva
14. Rezerva
- Syllabus of tutorials:
-
1. Asymptotic complexity of Python code and code fragments
2. 1D array and list processing,Python built-in functions
3. Operations on matrices, 2D array as image or function domain
4. Text files processing, text search
5. Recursive functions and procedures. Recursive generation of data/objects
6. Effectivity of search and sort methods on various datasets
7. Scientific and math computations with Numpy and Scipy,
8. Data visualisation with Python libraries
9. Homework problems comments and consultations
10. Tree traversal, In-, Pre and Post-order, recursion tree of a function call
11. Comparing effectivity of graph representations.
12. BFS and DFS implementations
13. Rezerva
14. Rezerva
- Study Objective:
- Study materials:
-
John V. Guttag: Introduction to Computation and Programming Using Python
Revised and Expanded Edition, The MIT Press, 2013.
John M. Zelle: Python Programming: An Introduction to Computer Science (Third Edition), Franklin, Beedle & Associates, 2016
http://mcsp.wartburg.edu/zelle/python/
Various authors: SciPy cookbook, 2015
https://scipy-cookbook.readthedocs.io/index.html
David Cournapeau: scikit-learn library 2007-2018
- Note:
- Further information:
- http://cw.fel.cvut.cz/wiki/courses/be5b33pge
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer 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 - The course is a part of the following study plans:
-
- Electrical Engineering and Computer Science (EECS) (compulsory course in the program)