Lecturer(s)
|
-
Juřík Martin, Ing. Ph.D.
-
Matoušek Radek, Ing.
-
Kropík Petr, Ing. Ph.D.
-
Podestát Jaroslav, Ing.
-
Lapuník Vojtěch, Ing.
-
Klesa Radek, Ing.
-
Kuthan Jiří, Ing. Ph.D.
-
Pánek David, doc. Ing. Ph.D.
-
Slobodník Karel, Ing. Ph.D.
-
Šroubová Lenka, Ing. Ph.D.
-
Vítek Martin, Ing.
-
Tureček Jakub, Ing.
|
Course content
|
What is programming, algorithm, flowcharts (as a thinking tool). Thinking like a programmer. Why Python (advantages, areas of use for electrical engineers). Introduction to development environments. The basic building blocks of Python and Git - variables, data types (numbers, strings, booleans). Basic operators. Input and output. Introduction to the Git version control system: What is Git, and why use it? Basic workflow (repository, clone, add, commit, push, pull). Setting up and using it for sharing materials. Program control structures and an introduction to objects - conditional statements (if-elif-else, match-case). Logical operators. Loops (for, while), break, continue. What is an object and a class? Examples on built-in types (lists, strings) and their methods (.append(), .upper()). Motivation for later OOP. Data structures - lists, tuples. Methods, iteration, and slicing. Dictionaries (dict), sets. Basic operations. Functions - the building blocks of a program. Defining and calling functions, parameters, and return values. Scope. Lambda functions. The DRY and KISS principles. Decomposing a problem into functions. Algorithmization of more complex tasks. Working with files and error handling. Reading and writing text files (CSV, JSON). Basic work with the file system. Error states and exception handling. AI in programming: How to use AI effectively and responsibly as a tool. Limits, ethics. A detailed look at OOP. Classes, objects (instances), constructor. Attributes and methods. self. The basic pillars of OOP: Encapsulation (properties). Inheritance. Polymorphism. Principles of good design: KISS, DRY, SOLID. Modules and packages: Code organization, imports. Creating your own modules. Software testing. Why test? Unit testing. Assertions. Writing test code. Effective use of the debugger in an IDE. Documentation and code cleanliness - docstrings, comments. PEP 8, code formatters. Working with selected libraries and practical applications, the basics of GUI.
|
Learning activities and teaching methods
|
- Undergraduate study programme term essay (20-40)
- 8 hours per semester
- Contact hours
- 52 hours per semester
- unspecified
- 36 hours per semester
- Contact hours
- 16 hours per semester
- Preparation for formative assessments (2-20)
- 6 hours per semester
- Preparation for comprehensive test (10-40)
- 10 hours per semester
- Preparation for an examination (30-60)
- 30 hours per semester
|
prerequisite |
---|
Knowledge |
---|
to have basic knowledges in mathematics for grammar schools |
Skills |
---|
to have basic skills in mathematics for grammar schools |
to control commonly available computers |
Competences |
---|
N/A |
N/A |
N/A |
learning outcomes |
---|
Knowledge |
---|
define the list of basic data types, control structures |
explain basic algorithms (loops, work with arrays and strings, searching and sorting, input / output operations, using methods, classes and objects) |
Skills |
---|
use basic algorithms, data and control structures (loops, work with arrays and strings, searching and sorting, input / output operations, using methods, classes and objects) |
apply acquired knowledge to create programs with focus to application in branch of electrical engineering |
design, develop and debug a simple program based on verbal description |
Competences |
---|
N/A |
N/A |
teaching methods |
---|
Knowledge |
---|
Lecture supplemented with a discussion |
Practicum |
Multimedia supported teaching |
Skills |
---|
Lecture supplemented with a discussion |
Practicum |
Individual study |
Multimedia supported teaching |
Competences |
---|
Lecture supplemented with a discussion |
Practicum |
Multimedia supported teaching |
assessment methods |
---|
Knowledge |
---|
Combined exam |
Project |
Test |
Skills |
---|
Combined exam |
Project |
Test |
Competences |
---|
Combined exam |
Project |
Test |
Recommended literature
|
-
Bartz, Eva; Bartz-Beielstein, Thomas. Online machine learning : a practical guide with examples in Python. 2024. ISBN 978-981-99-7006-3.
-
Corke, Peter I. Robotics, vision and control : fundamental algorithms in Python. 3rd edition. 2023. ISBN 978-3-031-06468-5.
-
Gupta, Pramod; Bagchi, Anupam. Essentials of Python for artificial intelligence and machine learning. 2024. ISBN 978-3-031-43724-3.
-
Herlihy, Maurice; Shavit, Nir. The art of multiprocessor programming. Boston : Elsevier, 2012. ISBN 978-0-12-397337-5.
-
Liu, Yuxi. Python machine learning by example : unlock machine learning best practices with real-world use cases. Fourth edition. 2024. ISBN 978-1-83508-562-2.
-
Lutz, Mark. Learning Python : powerful object-oriented programming. 6th edition. 2025. ISBN 978-1-098-17130-8.
-
Robbins, Philip. Python programming for beginners : the complete guide to mastering Python in 7 days with hands-on exercises?top secret coding tips to get an unfair advantage and land your dream job!. 2023. ISBN 9798376161821.
-
Rumpe Bernhard. Software Engineering and Formal Methods. Springer Berlin Heidelberg, 2016. ISBN 9783662492239.
|