CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2018/2019

# Programming for Engineers

Code Completion Credits Range Language
BE5B33PGE Z,ZK 6 2p+2c
Corequisite:
Safety in Electrical Engineering for a bachelor´s degree (BEEZB)
Basic health and occupational safety regulations (BEEZZ)
Lecturer:
Marko Genyk-Berezovskyj (guarantor)
Tutor:
Marko Genyk-Berezovskyj (guarantor)
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.

https://doc.lagout.org/programmation/python/Introduction%20to%20Computation%20and%20Programming%20using%20Python%20%28rev.%20ed.%29%20%5BGuttag%202013-08-09%5D.pdf

John M. Zelle: Python Programming: An Introduction to Computer Science (Third Edition), Franklin, Beedle &amp; Associates, 2016

http://mcsp.wartburg.edu/zelle/python/

Various authors: SciPy cookbook, 2015

David Cournapeau: scikit-learn library 2007-2018

https://scikit-learn.org/stable/

Note:
Further information:
http://cw.fel.cvut.cz/wiki/courses/be5b33pge
Time-table for winter semester 2018/2019:
Time-table is not available yet
Time-table for summer semester 2018/2019:
 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 roomT2:C4-78Genyk-Berezovskyj M.12:45–14:15(lecture parallel1)DejvicePosluchárnaroomT2:H1-131Genyk-Berezovskyj M.14:30–16:00(lecture parallel1parallel nr.101)Dejvice halyAlgDejviceroomT2:H1-131Genyk-Berezovskyj M.16:15–17:45(lecture parallel1parallel nr.102)Dejvice halyAlgDejvice
The course is a part of the following study plans:
Data valid to 2019-03-19
For updated information see http://bilakniha.cvut.cz/en/predmet5720406.html