Předmět: Základy programování pro elektrotechniku

» Seznam fakult » FEL » KEP
Název předmětu Základy programování pro elektrotechniku
Kód předmětu KEP/ZPEL
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 4
Vyučovací jazyk Čeština, Angličtina
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Bílek Václav, Ing. Ph.D.
  • Macek Vladimír, Ing.
  • Krůs Zdeněk, Ing. Ph.D.
  • Šilhánek Jan, Ing.
  • Mašek René, Ing.
  • Holeček Miloš, Ing.
  • Polášek Pavel, Ing. Ph.D.
  • Hajduch Vladimír, doc. Ing. Ph.D.
  • Van Woensel Libor, Ing. Ph.D.
  • Šlechtová Dana, Ing. Ph.D.
  • Yildiz Vlastimil, Ing.
  • Voříšek Ondřej, Ing.
Obsah předmětu
Co je programování, algoritmus, vývojové diagramy (jako nástroj myšlení). Myšlení jako programátor. Proč Python (výhody, oblasti použití pro elektrotechniky). Představení vývojových prostředí. Základní stavební kameny Pythonu a Git - proměnné, datové typy (čísla, stringy, booleany). Základní operátory. Vstup a výstup. Úvod do verzovacího systému Git: Co je Git, proč ho používat. Základní workflow (repozitář, clone, add, commit, push, pull). Nastavení a používání pro sdílení materiálů. Řídicí struktury programu a úvod do objektů - podmíněné příkazy (if-elif-else, match-case). Logické operátory. Cykly (for, while), break, continue. Co je objekt a třída? Ukázky na vestavěných typech (listy, stringy) a jejich metodách (.append(), .upper()). Motivace pro pozdější OOP. Datové struktury - seznamy (list), n-tice (tuple). Metody, iterace, slicing. Slovníky (dict), množiny (set). Základní operace. Funkce - stavební bloky programu. Definice a volání funkcí, parametry, návratové hodnoty. Rozsah platnosti. Lambda funkce. Princip DRY a KISS. Rozklad problému na funkce. Algoritmizace komplexnějších úloh. Práce se soubory a ošetřování chyb. Čtení a zápis textových souborů (CSV, JSON). Základní práce se souborovým systémem. Chybové stavy a ošetřování výjimek. AI v programování: Jak AI používat efektivně a zodpovědně jako nástroj. Limity, etika. Detailní pohled na OOP. Třídy, objekty (instance), konstruktor. Atributy a metody. self. Základní pilíře OOP: Zapouzdření (vlastnosti). Dědičnost. Polymorfismus. Principy dobrého návrhu: KISS, DRY, SOLID. Moduly a balíčky: Organizace kódu, importy. Tvorba vlastních modulů. Testování softwaru. Proč testovat? Unit testování. Assertions. Psaní testovacího kódu. Efektivní používání debuggeru v IDE. Dokumentace a čistota kódu - docstringy, komentáře. PEP 8, formátovače kódu. Práce s vybranými knihovnami a praktické aplikace, základy tvorby GUI.

Studijní aktivity a metody výuky
  • Vypracování seminární práce v bakalářském studijním programu [5-40] - 8 hodin za semestr
  • Kontaktní výuka - 52 hodin za semestr
  • E-learning [dáno e-learningovým kurzem] - 36 hodin za semestr
  • Kontaktní výuka - 16 hodin za semestr
  • Příprava na dílčí test [2-10] - 6 hodin za semestr
  • Příprava na souhrnný test [6-30] - 10 hodin za semestr
  • Příprava na zkoušku [10-60] - 30 hodin za semestr
Předpoklady
Odborné znalosti
ovládat základní středoškolské znalosti z matematiky
Odborné dovednosti
ovládat základní středoškolské dovednosti z matematiky
ovládat běžně dostupnou výpočetní techniku
Obecné způsobilosti
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje,
bc. studium: kriticky přistupuje ke zdrojům informací, informace tvořivě zpracovává a využívá při svém studiu a praxi,
bc. studium: efektivně využívá moderní informační technologie,
Výsledky učení
Odborné znalosti
vymezit přehled základních datových typů, řídících struktur
vysvětlit základní algoritmy, datové struktury (cykly, práce s poli a řetězci, vyhledávání a třídění, operace vstupu a výstupu, použití metod, práce s třídami a objekty)
Odborné dovednosti
implementovat základní algoritmy, datové a řídící struktury (cykly, práce s poli a řetězci, vyhledávání a třídění, operace vstupu a výstupu, použití metod, práce s třídami a objekty)
aplikovat získané znalosti při tvorbě jednodušších aplikací zaměřených na elektrotechniku
navrhnout, vytvořit a odladit aplikaci na základě slovního zadání
Obecné způsobilosti
bc. studium: samostatně a odpovědně se na základě rámcového zadání rozhodují v souvislostech jen částečně známých,
bc. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru,
Vyučovací metody
Odborné znalosti
Přednáška s diskusí,
Cvičení (praktické činnosti),
Výuka podporovaná multimédii,
Odborné dovednosti
Přednáška s diskusí,
Cvičení (praktické činnosti),
Samostatná práce studentů,
Výuka podporovaná multimédii,
Obecné způsobilosti
Přednáška s diskusí,
Cvičení (praktické činnosti),
Výuka podporovaná multimédii,
Hodnotící metody
Odborné znalosti
Kombinovaná zkouška,
Výstupní projekt,
Test,
Odborné dovednosti
Kombinovaná zkouška,
Výstupní projekt,
Test,
Obecné způsobilosti
Kombinovaná zkouška,
Výstupní projekt,
Test,
Doporučená literatura
  • 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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr