PB162 Programování v jazyce Java

Fakulta informatiky
podzim 2002
Rozsah
2/1. 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í)
Mgr. Luděk Bártek, Ph.D. (cvičící)
Mgr. Robert Batůšek (cvičící)
doc. RNDr. Jan Bouda, Ph.D. (cvičící)
RNDr. Vladimír Kadlec, Ph.D. (cvičící)
Mgr. Lubomír Krejčí (cvičící)
Mgr. Petr Lohnický (cvičící)
Mgr. Lukáš Svoboda (cvičící)
RNDr. Aleš Zlámal (cvičící)
Garance
doc. Ing. Jan Staudek, CSc.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 18:00–19:50 D1, Út 10:00–11:50 D1
  • Rozvrh seminárních/paralelních skupin:
PB162/01: Po 9:00–9:50 B311, V. Kadlec
PB162/02: Po 10:00–10:50 B311, V. Kadlec
PB162/03: St 12:00–12:50 B311, V. Kadlec
PB162/04: Po 13:00–13:50 B116, L. Bártek
PB162/05: Čt 14:00–14:50 B116, L. Bártek
PB162/06: Čt 15:00–15:50 B116, L. Bártek
PB162/07: Čt 17:00–17:50 B311, L. Bártek
PB162/08: Po 13:00–13:50 B117, L. Krejčí
PB162/09: Čt 14:00–14:50 B117, L. Krejčí
PB162/10: Čt 15:00–15:50 B117, L. Krejčí
PB162/11: Po 16:00–16:50 B117, A. Zlámal
PB162/12: Po 17:00–17:50 B117, A. Zlámal
PB162/13: St 10:00–10:50 B116, A. Zlámal
PB162/14: St 11:00–11:50 B116, A. Zlámal
PB162/15: Čt 7:00–7:50 B116, J. Bouda
PB162/16: Čt 8:00–8:50 B116, J. Bouda
PB162/17: Čt 9:00–9:50 B116, J. Bouda
PB162/18: Čt 17:00–17:50 B116, P. Lohnický
PB162/19: Čt 18:00–18:50 B116, P. Lohnický
PB162/20: Čt 19:00–19:50 B116, P. Lohnický
PB162/21: Pá 11:00–11:50 B116, R. Batůšek
PB162/22: Pá 12:00–12:50 B116, R. Batůšek
PB162/23: Pá 13:00–13:50 B116, R. Batůšek
PB162/24: Pá 11:00–11:50 B117, L. Svoboda
PB162/25: Pá 12:00–12:50 B117, L. Svoboda
PB162/26: Pá 13:00–13:50 B117, L. Svoboda
PB162/27: Po 9:00–9:50 B116, T. Pitner
PB162/28: Po 10:00–10:50 B116, T. Pitner
PB162/29: Po 9:00–9:50 B117, L. Bártek
PB162/30: Po 10:00–10:50 B117, L. Bártek
Předpoklady
Základní znalosti procedurálního programovacího jazyka (typicky Pascal, C).
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 560 stud.
Momentální stav registrace a zápisu: zapsáno: 0/560, pouze zareg.: 0/560, pouze zareg. s předností (mateřské obory): 0/560
Mateřské obory/plány
Cíle předmětu
Cílem je seznámit studenty se základy moderního objektového a událostmi řízeného programování v jazyce Java. Student zvládne absolvováním kurzu kromě nezbytných pojmů a syntaxe daného jazyka také analýzu, návrh a implementaci základních datových struktur a algoritmů. Pozná a prakticky zvládne základní principy událostmi řízeného programování (interaktivních programů) jak na příkladu uživatelských rozhraní, tak na příkladu komunikace jednoduchých komponent (objektů).
Osnova
  • Úvod do jazyka Java: principy, historie, srovnání, životní cyklus javového programu, základní nástroje. Jednoduché konzolové aplikace.
  • Základní pojmy objektového programování: abstraktní datové typy, specifikace požadavků vs. implementace, zapouzdření. Ladění programů, jednoduché programy s objekty.
  • Podrobněji k objektovému programování: dědičnost, polymorfizmus. Hierarchie tříd. Spolupráce a komunikace mezi objekty, výměna zpráv.
  • Podrobněji ke specifickým rysům Javy: programové konstrukce (větvení, cykly, operátory, pole, primitivní datové typy, vestavěné třídy a objekty), činnost Java Virtual Machine. Implementace vybraných algoritmů pro vyhledávání a řazení.
  • Struktura programu v Javě: metody, třídy, balíky, programy, soubory .jar. Kontejnery v moderní Javě.
  • Událostmi řízené programování. Základní principy uživatelských rozhraní.
  • Vstupy/výstupy v Javě. Práce s vestavěnými a uživatelsky definovanými výjimkami. Reprezentace grafů a základní grafové algoritmy v prostředí appletu.
  • Základní programátorské konvence v Javě: styl psaní zdrojového textu, pojmenovávání, struktura balíků (packages), komentáře, konvence JavaBeans. Algoritmy na grafech.
  • Mírně pokročilé programování v Javě: základní návrhové vzory. Dědičnost vs. skládání, delegování, statické prvky, modifikátory přístupových práv. Ukázkové heuristické algoritmy.
  • Nástroje a rozšíření Javy: přehled, užití, licencování. Backtracking.
Literatura
  • ECKEL, Bruce. Myslíme v jazyku Java : knihovna programátora. Praha: Grada, 2001, 431 s. ISBN 8024790106. info
  • ECKEL, Bruce. Myslíme v jazyku Java : knihovna zkušeného programátora. Praha: Grada, 2000, 470 s. ISBN 8024700271. info
Metody hodnocení
V průběhu semestru jsou na cvičeních zadávány úlohy, jejichž bodování je 40procentní částí celkového hodnocení předmětu. Vlastní zkouška sestává z úvodního písemného testu a následné praktické realizace programu řešícího zadaný problém. Hodnotí se nejen splnění zadání a korektnost algoritmu, ale i jeho efektivita, stejně jako elegance řešení a kvalita dokumentace.
Informace učitele
http://www.fi.muni.cz/~tomp/java
Další komentáře
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 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 2023, jaro 2024, jaro 2025.