Programování

Cílem tohoto seznamu je poskytnout studentům na jednom místě formou rozcestníku seznam předmětů, ve kterých mají alespoň z části možnost prakticky programovat. Seznam obsahuje základní info o předmětu a v něm použitých technologiích. Na konci stránky jsou uvedeny též náměty na relevantní MOOC (massive open online courses).

Tento seznam je (a vždy bude) ve fází úprav, jak se jednotlivé předměty vyvíjejí. Pokud víte další, zde neuvedené předměty nebo víte doplnění/modifikaci informací k již existujícím, moc nám pomůžete zasláním těchto na email svenda@fi.muni.cz

Přednášky na MU

Jarní semestr

  • Předmět: PB069, Vývoj desktopových aplikací v C#/.NET
    • Náplň: Vývoj desktopových aplikací v C#/.NET na platformě Windows, Windows Forms a Windows Presentation Foundation
    • Forma: přednášky + praktické cvičení
    • Používaný programovací jazyk: C#
  • Předmět: PV112, Programování grafických aplikací
    • Náplň: grafické API, animace, OpenGL
    • Forma: přednášky + praktické cvičení
    • Používaný programovací jazyk: OpenGL, C/C++ nebo Java
    • Poznámky: Studenti si dle svých znalostí mohou zvolit programovací jazyk, ve kterém předmět absolvují, tedy Javu nebo C/C++
  • Předmět: PV192, Paralelní technické systémy
    • Náplň: Vícevláknové programování
    • Forma: přednáška + řešení praktických úloh
    • Používaný programovací jazyk: C, Java, Ada, OpenMP
  • Předmět: PB071, Úvod do C
    • Náplň: Jazyk C (standard C99), Posix, využití vývojových nástrojů (IDE, debugger, SVN...)
    • Forma: přednášky, praktické cvičení, 5 domácích úkolů
    • Používaný programovací jazyk: C
    • Poznámky: předmět se vyučuje každý semestr
  • Předmět: PV168, Seminář z programování v jazyce Java
    • Náplň: Pokročilejší znalosti jazyka Java nad rámec PB162, objektová dekompozice, perzistence, uživatelská rozhraní, úvod do webových aplikací
    • Forma: přednáška, praktické cvičení, párová práce na projektu
    • Používaný programovací jazyk: Java
    • Poznámky: V kurzu se v páru pracuje na budování jednoduché, ale kompletní aplikace s grafickým rozhraním, webovým rozhraním a daty v relační databázi
  • Předmět: PV204, Security Technologies
    • Náplň: Bezpečnostní témata pokrývající implementační útoky, čipové karty, trusted boot, reverse engineering a analýzu malware a diskové šifrování.
    • Forma: přednáška kombinovaná se cvičením, většina domácích úloh vyžaduje programování
    • Používaný programovací jazyk: C, C++, Java, Assembler
    • Poznámky:
  • Předmět: IV122 Matematika a programování
    • Náplň: pochopení vybraných matematických pojmů, ujasnění jejich vztahů k algoritmickým problémům a jejich implementace
    • Forma: přednáška + cvičení
    • Používaný programovací jazyk: Libovolný dle výběru studenta
  • Předmět: PV178 Úvod do vývoje v C#/.NET
    • Náplň: jazyk C# a vývoj na platform2 .net, asynchronní a vícevláknové programy
    • Forma: přednáška + cvičení
    • Používaný programovací jazyk: C#
  • Předmět: PV243, Pokročilé Java technologie: JBoss
    • Náplň: pokročilými vlastnosti Java EE, novinky v Java EE 6, projekty JBoss.org zaštítěnými společností Red Hat
    • Forma: přednáška + cvičení
    • Používaný programovací jazyk: Java
  • Předmět: PA081, Programování numerických výpočtů
    • Náplň: Řešení nejběžnějších numerických problémů, s důrazem na implementaci a použití na konkrétních příkladech
    • Forma: přednáška + dobrovolné domácí úkoly
    • Používaný programovací jazyk: C, C++, Java, Python
  • Předmět: PV239, Vývoj aplikací pro mobilní platformy
    • Náplň: Vývoj aplikací pro Apple iOS (iPhone/iPad), Microsoft Windows Phone 7 a Google Android
    • Forma: cvičení + týmový projekt
    • Používaný programovací jazyk: C, C++, C#, Obj-C, Java
    • Poznámky: Výuka zkušenými externími lektory (Microsoft, Inmite).
  • Předmět: PB138, Moderní značkovací jazyky a jejich aplikace
    • Náplň: Značkovací jazyky pro webové a podnikové prostředí, standardy a technologie XML, technologie moderního webu
    • Forma: přednáška, praktické cvičení s řešením čtyř úloh na počítači, týmová práce na projektu
    • Používaný programovací jazyk: Java a XML technologie
  • Předmět: PV242, Inovace a podnikání v IT
    • Náplň: Cílem kurzu je vychovat budoucí podnikatele nejen v oblasti informačních technologií a vést je k realizaci jejich vlastních nápadů.
    • Forma: Přednáška, seminář, týmový projekt, veřejná prezentace
    • Používaný programovací jazyk: dle potřeby
    • Poznámky: Info na stránkách JIC
  • Předmět: IB053, Metody efektivního programování
    • Náplň: Tvorba software z hlediska optimality práce i optimality programu, které se nemusí navzájem vylučovat. Osvojení návyků a postupů vedoucí k obojímu.
    • Forma: Přednáška + cvičení + týmový projekt
    • Používaný programovací jazyk: příklady v C++/Javě, projekt možno v libovolném jazyce
  • Předmět: IB002, Algoritmy a datové struktury I
    • Náplň: Techniky analýzy algoritmů, datové struktury a operace nad nimi. Praktická implementace těchto na cvičeních
    • Forma: Přednáška + praktická cvičení
    • Používaný programovací jazyk: C, Java, Python (dle domluvy s cvičícím)
  • Předmět: PV003 Architektura relačních databázových systémů
    • Náplň: SQL a PL/SQL v DB systému Oracle
    • Forma: přednášky, cvičení, malý týmový projekt
    • Používaný programovací jazyk: PL/SQL Oracle
  • Předmět: PA036 Projekt z databázových systémů
    • Náplň: Vytvořit funkční aplikaci nad relační databází, technickou dokumentaci, prezentační dovednosti
    • Forma: seminář, projekt nad rel. databází včetně webového UI
    • Používaný programovací jazyk: PL/SQL Oracle

Podzimní semestr

  • Předmět: PV162 Projekt z digitálního zpracování obrazů
    • Náplň: Řešení praktických úloh z digitálního zpracování obrazů
    • Forma: projekt
    • Používaný programovací jazyk: Volitelný (nejčastěji C++, Matlab, Java)
  • Předmět: PA193 Secure coding principles and practices
    • Náplň: Principy, techniky a nástroje pro bezpečné programování
    • Forma: přednáška, seminář, domácí cvičení, projekt
    • Používaný programovací jazyk: především C/C++
  • Předmět: PV224 Caché: Alternativní databázové technologie
    • Náplň: Vývoj db aplikací na platformě Cache pod OS Windows, OO programování v DB, programování web aplikace
    • Forma: seminář, domácí cvičení
    • Používaný programovací jazyk: ObjectScript, Cache Server Pages, spolupráce s Javou
  • Předmět: IB001/IB111, Úvod do programování skrze C/Python
    • Náplň: Začátečnický předmět seznámení s programováním, úvodní algoritmizace,
    • Forma: přednášky + praktická cvičení
    • Používaný programovací jazyk: C nebo Python
  • Předmět: PV197, GPU Programming
    • Náplň: Programování obecných výpočtů na GPU, optimalizace kódu (primárně na NVIDIA GPU - CUDA a, úvod do OpenCL, optimalizace pro AMD GPU a x86 CPU)
    • Forma: přednášky, projekt
    • Používaný programovací jazyk: C for CUDA
  • Předmět: PB173, Tématické programování v C/C++
    • Náplň: Nezávislé skupiny (Zpracování obrazu, Systémové programování Windows & Linux, Ovladače jádra Linux, C++11, Aplikovaná kryptografie)
    • Forma: jen cvičení s výkladem, domácí úkoly, některé skupiny mají týmové projekty
    • Používaný programovací jazyk: C/C++
  • Předmět: IV112, Projekt z programování paralelních aplikací
    • Náplň: praktická zkušenost s programováním vícevláknových či jinak paralelních aplikací, paralelizace algoritmů
    • Forma: projekt
    • Používaný programovací jazyk: C, C++
  • Předmět: PA165, Vývoj programových systémů v jazyce Java (Enterprise Java)
    • Náplň: návrhu a realizace rozsáhlých systémů, implementace, testování, refaktoring, ladění výkonu, API Java SE a Java EE (EJB, web services)
    • Forma: přednáška + praktická cvičení, domácí úkoly
    • Používaný programovací jazyk: Java
  • Předmět: IB016, Seminář z funkcionálního programování
    • Náplň: Využití jazyku Haskell pro řešení praktických problémů
    • Forma: cvičení
    • Používaný programovací jazyk: Haskell
  • Předmět: PB125, Projekt zpracování řeči
    • Náplň: Praktická implementace řešení vybraného problému řečové komunikace mezi člověkem a počítačem
    • Forma: projekt
    • Používaný programovací jazyk: xxx
    • Poznámky: jednou za dva roky
  • Předmět: PB071, Úvod do C
    • Náplň: Jazyk C (standard C99), Posix, využití vývojových nástrojů (IDE, debugger, SVN…)
    • Forma: přednášky, praktické cvičení, 5 domácích úkolů
    • Používaný programovací jazyk: C
    • Poznámky: předmět se vyučuje každý semestr
  • Předmět: PB161, Programování v C++
    • Náplň: Objektově orientované programování v C++, STL, šablony, C++11
    • Forma: přednášky, praktické cvičení, 5 domácích úkolů
    • Používaný programovací jazyk: C++
  • Předmět: PV065, UNIX -- programování a správa systému I
    • Náplň: Principy fungování UNIXového operačního systému, aplikační rozhraním (služby jádra, některé knihovní funkce)
    • Forma: přednáška, domácí úkoly?
    • Používaný programovací jazyk: C
  • Předmět: PV181, Laboratory of security and applied cryptography I
    • Náplň: Praktické implementace bezpečnostních komponent, využití kryptografických knihoven (OpenSSL, Cryptlib, Microsoft Crypto API, Java JCA), čipové karty
    • Forma: přednáška kombinovaná se cvičením, domácí úkoly
    • Používaný programovací jazyk: C, C++, Java, JavaCard
  • Předmět: IV104 Seminář řešení programátorských úloh
    • Náplň: řešení algoritmicky náročných úloh a rozvoj myšlení a schopnosti řešení problémů
    • Forma: cvičení
    • Používaný programovací jazyk: libovolný dle výběru studenta
  • Předmět: PV247 Agilní webový projekt na platformě .NET
    • Náplň: zpracování webového projektu od marketingových základů přes vývoj po nasazení do produkčního prostředí
    • Forma: týmový projekt
    • Používaný programovací jazyk: C#, HTML, CSS, ASP.NET
  • Předmět: PV249, Vývoj v jazyce Ruby
    • Náplň: Vývoj webových aplikací v jazyce Ruby
    • Forma: přednáška, praktické cvičení
    • Používaný programovací jazyk: Ruby
  • Předmět: PV248, Kurz jazyka Python
    • Náplň: Python a jeho pokročilejší využití
    • Forma: cvičení s výkladem, domácí úkoly
    • Používaný programovací jazyk: Python
    • Poznámky: přednáší lidé z RedHatu, vypisováno jednorázově (není zaručeno, že bude vypsáno znovu)
  • Předmět: PV198 Aplikace jednočipových počítačů
    • Náplň: Implementace aplikací pro jednočipové procesory
    • Forma: přednášky, cvičení s výkladem, domácí úkoly
    • Používaný programovací jazyk: C
    • Poznámky: Předmět se zabývá třemi samostannými oblastmi. V každé části je výuka rozdělena na část teoretickou a praktickou.
  • Předmět: PPV200 Introduction to hardware description language
    • Náplň: Implementace aplikací pro programovatelná hradlová pole FPGA (XILINX a ALTERA)
    • Forma: přednášky, cvičení s výkladem, domácí úkoly
    • Používaný programovací jazyk: VERILOG, VHDL
    • Poznámky: Předmět se zabývá dvěma jazyky. V každé části je výuka rozdělena na část teoretickou a praktickou.
  • Předmět: PB162, Programování v jazyce Java
    • Náplň: Základní zvládnutí jazyka Java, objektového návrhu a použití standardních knihoven
    • Forma: přednáška, praktické interaktivní cvičení, individuální práce
    • Používaný programovací jazyk: Java

MOOC kurzy: Coursera, EdX, UDACITY...

MOOC kurzy: (Coursera, EdX, UDACITY, ...), DataCamp, ...)

  • Předmět: An Introduction to Interactive Programming in Python
    • Náplň: Úvod do programování v Pythonu, programování jednoduchých her
    • Forma: video přednášky + praktická cvičení v předchystaném virtuálním prostředí
    • Používaný programovací jazyk: Python
  • Předmět: Discrete Optimization
    • Náplň: Návrh, optimalizace a implementace algoritmů pro řešení těžkých (NP-hard) problémů (TSP, VRP, Warehouse location, Graph coloring, N-Queens,...).
    • Forma: Video přednášky + programovací úkoly (jediný způsob jak získat body jsou právě úkoly)
    • Programovací jazyk: Libovolný, jen je potřeba použít dodaný spouštěč v Pythonu.
    • Poznámky absolventů:
    • Kurz je "graduate-level", osnovou se dotýká FI předmětů IA101, PA163 a PA167 (pro další informace můžete kontaktovat Ondřeje Slámečku ondrej@slamecka.cz)
  • Předmět: Coding the Matrix: Linear Algebra through Computer Science Applications
    • Náplň: Aplikace metod lineární algebry, vhodné opakování a mírné rozšíření (bere se to ve větším záběru) kurzu MB101
    • Forma: Video přednášky + programovací úkoly
    • Programovací jazyk: Pythonu
    • Poznámky absolventů:
    • Zabíralo asi 5 hodin / týdně programování, lepší pochopení implementace algoritmů a datových struktur (pro další informace můžete kontaktovat Jana Štourače 113869@mail.muni.cz)
  • Předmět: Functional Programming Principles in Scala
    • Náplň: Základy funkcionálního programování a jejich aplikace ve Scale
    • Forma: video přednášky s drobnými interaktivními úkoly, bodované domácí úkoly
    • Programovací jazyk: Scala
    • Poznámky absolventů:
    • náročnost zhruba 5h týdně na úkoly, nevyžaduje žádné teoretické znalosti, stačí pouze základní schopnost programování, jako IDE využíváno modifikované Eclipse (pro další informace můžete kontaktovat Michael Šimáček 410188@mail.muni.cz)
  • Předmět: Introduction to R
    • Náplň: Kurz v rámci oblasti data science, zpracování a vizualizace dat
    • Používaný programovací jazyk: R a Python