PB162 Programování v jazyce Java

Fakulta informatiky
jaro 2023
Rozsah
2/2/0. 3 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
Vyučující
prof. RNDr. Tomáš Pitner, Ph.D. (přednášející)
doc. RNDr. Radek Ošlejšek, Ph.D. (přednášející)
Mgr. Luděk Bártek, Ph.D. (cvičící)
Mgr. Jakub Čecháček (cvičící)
Bc. Marek Dlouhý (cvičící)
RNDr. Karolina Dočkalová Burská, Ph.D. (cvičící)
Mgr. et Mgr. Michaela Doležalová (cvičící)
Bc. Vít Falta (cvičící)
Mgr. Lukáš Gryga (cvičící)
Mgr. Tomáš Janoušek (cvičící)
Bc. Jakub Judiny (cvičící)
Mgr. Hai Yen Le (cvičící)
Mgr. Ľuboslav Pivarč (cvičící)
RNDr. Jaromír Plhák, Ph.D. (cvičící)
Mgr. Alžbeta Strompová (cvičící)
Bc. Jakub Suchánek (cvičící)
Bc. Kryštof Suchánek (cvičící)
RNDr. Vladimír Ulman, Ph.D. (cvičící)
Bc. Stanislav Zeman (cvičící)
RNDr. Aleš Zlámal (cvičící)
Bc. Josef Augustín (pomocník)
Bc. Lukáš Bátora (pomocník)
Ing. Pavel Hrdina (pomocník)
Bc. Petr Kabourek (pomocník)
doc. Mgr. Karel Slavíček, Ph.D. (pomocník)
Garance
prof. RNDr. Tomáš Pitner, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Út 14. 2. až Út 9. 5. Út 10:00–11:50 D2, St 15. 2. až St 10. 5. St 8:00–9:50 D2
  • Rozvrh seminárních/paralelních skupin:
PB162/01: Čt 16. 2. až Čt 11. 5. Čt 12:00–13:50 A219, L. Bártek
PB162/02: St 15. 2. až St 10. 5. St 12:00–13:50 A215, L. Bártek
PB162/03: Pá 17. 2. až Pá 12. 5. Pá 12:00–13:50 B011, L. Bártek
PB162/04: Čt 16. 2. až Čt 11. 5. Čt 12:00–13:50 A215
PB162/05: Út 14. 2. až Út 9. 5. Út 8:00–9:50 A215, V. Ulman
PB162/06: St 15. 2. až St 10. 5. St 16:00–17:50 B116, J. Augustín, L. Gryga
PB162/07: St 15. 2. až St 10. 5. St 14:00–15:50 B116, J. Augustín, L. Gryga
PB162/08: Pá 17. 2. až Pá 12. 5. Pá 10:00–11:50 B116
PB162/09: Čt 16. 2. až Čt 11. 5. Čt 18:00–19:50 A215, J. Suchánek
PB162/10: St 15. 2. až St 10. 5. St 18:00–19:50 A215, L. Bátora, K. Suchánek
PB162/11: Po 13. 2. až Po 15. 5. Po 8:00–9:50 A215, R. Ošlejšek
PB162/12: Po 13. 2. až Po 15. 5. Po 10:00–11:50 A215, R. Ošlejšek
PB162/13: Pá 17. 2. až Pá 12. 5. Pá 8:00–9:50 B116
PB162/14: Pá 17. 2. až Pá 12. 5. Pá 10:00–11:50 A219, J. Čecháček, M. Doležalová
PB162/15: Pá 17. 2. až Pá 12. 5. Pá 12:00–13:50 A219, J. Čecháček, M. Doležalová
PB162/16: Út 14. 2. až Út 9. 5. Út 14:00–15:50 A215, T. Janoušek
PB162/17: Čt 16. 2. až Čt 11. 5. Čt 14:00–15:50 A215, P. Kabourek, A. Strompová
PB162/18: St 15. 2. až St 10. 5. St 10:00–11:50 B116, J. Plhák
PB162/19: St 15. 2. až St 10. 5. St 12:00–13:50 B116, V. Falta
PB162/20: Út 14. 2. až Út 9. 5. Út 10:00–11:50 A215, S. Zeman
PB162/21: Po 13. 2. až Po 15. 5. Po 18:00–19:50 A215, P. Kabourek, A. Strompová
PB162/22: Po 13. 2. až Po 15. 5. Po 12:00–13:50 B116, J. Plhák
PB162/23: Pá 17. 2. až Pá 12. 5. Pá 8:00–9:50 A215, Ľ. Pivarč
PB162/24: St 15. 2. až St 10. 5. St 18:00–19:50 B116, H. Le
PB162/25: St 15. 2. až St 10. 5. St 12:00–13:50 B311, M. Dlouhý, R. Ošlejšek
PB162/26: Čt 16. 2. až Čt 11. 5. Čt 8:00–9:50 B116, J. Judiny
Předpoklady
Znalost procedurálního programovacího jazyka (typicky Python, C) zhruba v rozsahu předmětů IB001 Úvod do programování skrze C, IB111 Základy programování nebo IB113 Úvod do programování a algoritmizace.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 64 mateřských oborů, zobrazit
Cíle předmětu
V průběhu kurzu student:
získá základní znalosti moderního objektového programování v jazyce Java;
zvládne základy objektového návrhu a implementace v jazyce Java;
porozumí nezbytným pojmům, syntaxi jazyka, seznámí se s vývojovými nástroji;
Výstupy z učení
Student bude po absolvování předmětu schopen:
vysvětlit a použít principy objektového paradigmatu;
použít základní principy objektového návrhu při programování;
vytvářet programy na platformě Java SE;
efektivně používat vývojové nástroje (IDE, jednotkové testování, git, ...);
Osnova
  • Úvod do jazyka Java, životní cyklus javového programu, základní vývojové nástroje
  • Základní pojmy objektového programování - třída, objekt; proměnná a metoda objektu a třídy, zapouzdření
  • Spolupráce a komunikace mezi objekty
  • Rozhraní a jeho implementace třídou
  • Základní programátorské konvence - styl psaní zdrojového textu, dokumentační komentáře
  • Testování jednotek javových programů, nástroj junit
  • Dědičnost, polymorfizmus, hierarchie tříd, architektura programu
  • Řízení toku výpočtu
  • Primitivní datové typy, objektové typy, pole
  • Abstraktní třídy
  • Výjimky, princip jejich použití a návrhu
  • Dynamické datové struktury
  • Vstupy/výstupy
  • Základní návrhové vzory
Literatura
  • PITNER, Tomáš. Java - začínáme programovat : podrobný průvodce začínajícího uživatele. Praha: Grada, 2002, 222 s. ISBN 8024702959. info
  • ECKEL, Bruce. Myslíme v jazyku Java : knihovna programátora. Praha: Grada, 2001, 431 s. ISBN 8024790106. info
  • Učebnice jazyka JAVA. Edited by Pavel Herout. 1. vyd. České Budějovice: KOPP, 2001, 349 s. ISBN 80-7232-115-3. info
  • ECKEL, Bruce. Myslíme v jazyku Java : knihovna zkušeného programátora. Praha: Grada, 2000, 470 s. ISBN 8024700271. info
Výukové metody
Přednášky s mnoha příklady, praktická projektová cvičení, domácí úlohy.
Metody hodnocení
V průběhu semestru studenti na cvičeních postupně řeší bodovaný projekt. Hodnotí se nejen splnění zadání a korektnost algoritmu, ale i jeho efektivita, stejně jako elegance řešení a kvalita dokumentace. Další body jsou udělovány na cvičeních v podobě krátkých online testů. Dále jsou v průběhu semestru dvě zkoušky, které jsou založeny na programování přímo u počítače. Praktickou formou u počítače je vedena i závěrečná zkouška, která je komplexnější než předchozí dvě.
Navazující předměty
Informace učitele
http://www.fi.muni.cz/~tomp/pb162/slides/index.html
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2005, podzim 2006, podzim 2007, podzim 2008, podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2024, jaro 2025.