Bi3011 Algoritmizace a programování

Přírodovědecká fakulta
jaro 2021
Rozsah
2/2/0. 4 kr. (plus ukončení). Ukončení: k.
Vyučující
RNDr. Miroslav Kubásek, Ph.D. (přednášející)
doc. Ing. Daniel Schwarz, Ph.D. (přednášející)
Mgr. Vojtěch Žák (pomocník)
Garance
doc. Ing. Daniel Schwarz, Ph.D.
RECETOX – Přírodovědecká fakulta
Kontaktní osoba: RNDr. Miroslav Kubásek, Ph.D.
Dodavatelské pracoviště: RECETOX – Přírodovědecká fakulta
Rozvrh
Po 1. 3. až Pá 14. 5. Po 14:00–17:50 F01B1/709
Předpoklady
Orientace v základech logiky a formálních jazyků.
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
Cíle předmětu
Cílem předmětu je seznámit studenty se základními koncepty programování a návrhu algoritmů s pomocí vývojových diagramů a příkladů ve zvoleném programovacím jazyce (JavaScript).
Výstupy z učení
Student bude po absolvování předmětu schopen:
- definovat základní datové typy i složitější datové struktury;
- definovat vhodný typ proměnné pro uložení konkrétní hodnoty;
- navrhnout algoritmus řešící zadaný problém a zapsat ho pomocí vývojových diagramů;
- využít dekompozici složitějšího algoritmu na podprogramy;
- zapsat algoritmus ve vybraném programovacím jazyce a provést odladění takto vzniklého programu.
Osnova
  • 1. Úvod, historie, definice základních pojmů - algoritmus, program, složitost.
  • 2. Vývojové diagramy: definice, sekvence, větvení, cykly.
  • 3. Sčítání, výpočet objemu, výpočet dojezdu, trojúhelník, hledání minima, kvadratická rovnice, jednoduchá kalkulačka.
  • 4. Průměr známek, všechna prvočísla, faktoriál, součet číselné řady.
  • 5. Cykly a příklady, počet výskytu znaku v souboru.
  • 6. Podprogramy: definice, parametry, návratová hodnota, dekompozice algoritmu, základní třídící algoritmy: selection sort, bubble sort.
  • 7. Datové typy: ordinální, neordinální, pole, příklady: reverzní výpis, sportka.
  • 8. Rekurze: definice, Fibonacciho posloupnost - rekurzivní vs. nerekurzivní řešení, binární vyhledávání - rekurzivní vs. iterační přístup. 9. Základní syntaxe JavaScriptu, typy proměnných, podmínky, cykly, funkce, vyjímky, objekty, funkcionální programování, regulární výrazy, asynchronní programování
Literatura
  • Buchalcevová, A.: Algoritmizace a programování. Praha: VŠE, 1994.
  • Topfer, P.: Algoritmy a programovací techniky. Praha: Prometheus, 1995.
  • Virius, M.: Základy algoritmizace. Praha: ČVUT, 1997.
Výukové metody
teoretická přednáška, řešení problémů a jejich programování, domácí úkoly
Metody hodnocení
povinné úkoly v průběhu semestru.
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích jaro 2008 - akreditace, jaro 2011 - akreditace, jaro 2008, jaro 2009, jaro 2010, jaro 2011, jaro 2012, jaro 2012 - akreditace, jaro 2013, jaro 2014, jaro 2015, jaro 2016, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2022.