Course: Fundamentals of Programming for Electrical Engineering

« Back
Course title Fundamentals of Programming for Electrical Engineering
Course code KEP/ZPEL
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Winter
Number of ECTS credits 4
Language of instruction Czech, English
Status of course Compulsory
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester