Úvod do programování
1.
Úvod
1.1.
Cíle kurzu
1.2.
Vstupní předpoklady kurzu
1.3.
Obsah a forma učebního textu
1.4.
Jak pracovat v kurzu "Úvod do programování"
1.4.1.
Postup při práci v kurzu
1.4.2.
Způsob práce s textem
1.5.
Hodnocení kurzu
1.5.1.
Motivace
1.5.2.
Schéma hodnocení
1.5.3.
Způsob odevzdávání průběžně řešených úloh
2.
Úvod do algoritmizace a programování
2.1.
Řešení úlohy na počítači
2.1.1.
Ne vše musíme programovat
2.1.2.
Používáme hotový nástroj
2.1.3.
A když musíme programovat...
2.2.
Algoritmus
2.2.1.
Co je algoritmus?
2.2.2.
Úloha a její algoritmické řešení
2.2.3.
Algoritmus a jeho vlastnosti
2.3.
Jak algoritmus zapisovat?
2.3.1.
Slovní (textový) zápis algoritmu
2.3.2.
Grafický zápis algoritmu
2.4.
Co s algoritmem, aby ho počítač dokázal provést?
2.4.1.
Zápis algoritmu do podoby kódu
2.4.2.
Programovací jazyky
2.4.3.
Jazyk Pascal
3.
Začínáme prakticky programovat
3.1.
Instalace Turbo Pascalu 5.5
3.1.1.
Stažení
3.1.2.
Instalace
3.1.3.
Úvod do použití TP
3.1.4.
Tvorba vlastních programů v prostředí TP
3.2.
Nejjednodušší programy
3.2.1.
Nejjednodušší program v Pascalu
3.2.2.
Programy s proměnnými
3.2.3.
Každá proměnná se musí nějak jmenovat
3.2.4.
Typ proměnné
3.2.5.
Deklarace proměnné
3.2.6.
Proměnné nejsou jen jednoduché...
3.3.
Jednoduché výpočty s čísly
3.4.
Jaké číslo vlastně potřebujeme?
3.4.1.
Celá čísla jsou často užitečná
3.4.2.
Čísla "necelá"
3.5.
Jak tedy používat číselné proměnné v Pascalu?
3.5.1.
Metodika práce s čísly
3.5.2.
Úlohy na práci s čísly
3.6.
Lepší výstup (výpis) číselné informace
3.6.1.
Formátování výpisu čísel
3.6.2.
Zaokrouhlování
4.
Programy, co se umějí rozhodovat
4.1.
Prověření vstupu
4.1.1.
Sestavujeme to nejjednodušší větvení
4.1.2.
Abychom se v programu vyznali
4.2.
Sestavení složitější podmínky
4.3.
Vnořené větvení
5.
Podprogramy
5.1.
Vyčlenění vícekrát se vyskytujících částí programu do podprogramu
5.1.1.
Když je kód moc složitý, je třeba jej členit
5.1.2.
Procedury a funkce v Pascalu
5.1.3.
Parametry procedur
5.1.4.
Jak se parametry používají při volání procedur
5.1.5.
Jak je fyzicky předávání hodnotou realizováno?
5.1.6.
Parametry podruhé - předávání parametrů odkazem
5.1.7.
Proměnné v hlavním programu a procedurách?
5.2.
Jak psát procedury a funkce
5.2.1.
Kdy použít proceduru a kdy funkci?
5.2.2.
Volba parametrů procedur a způsob jejich předávání
5.2.3.
Tzv. vedlejší efekt procedur a funkcí
6.
Opakované provádění úseku výpočtu
6.1.
Sestavení jednoduchého cyklu
6.1.1.
Cyklus s podmínkou na začátku
6.1.2.
Logické (booleovské) proměnné
6.2.
Co s nefunkčním programem?
6.2.1.
Program nefunguje?
6.2.2.
Ladíme program
6.3.
Složené datové typy, jejich načítání a výpis
6.3.1.
Kdy už nestačí jednoduché proměnné
6.3.2.
Práce s polem
6.3.3.
Práce s polem v proceduře
6.4.
Jak něco vyhledat
6.4.1.
Vyhledávání, kde musíme prohledat vše...
6.4.2.
Vyhledávání, kde můžeme přestat, jakmile něco najdeme
6.4.3.
Vylepšení: vyhledávání se zarážkou
6.4.4.
Vyhledávání v uspořádané posloupnosti
6.5.
Ale který cyklus použít a jak?
6.5.1.
Výběr vhodného typu cyklu (while?, repeat?, for?)
6.5.2.
Zásady při sestavování cyklů
6.6.
Na co ještě stačí jednoduchý cyklus?
6.6.1.
Programy na test prvočíselnosti
6.6.2.
Sledování, zda posloupnost je rostoucí
6.6.3.
Vyhledávání tří největších čísel v posloupnosti
6.6.4.
Něco málo z ekonomiky...
6.6.5.
Datový typ řetězec (string)
6.6.6.
Současné vyhledání maxima i minima
6.6.7.
Něco z bankovnictví...
6.6.8.
Různé
6.7.
Další složené datové typy
6.7.1.
Pole záznamů
6.7.2.
"Slovíčkaření"
7.
Jeden cyklus nestačí
7.1.
Vícerozměrná pole - matice, jejich načítání a výpis
7.1.1.
Praktické použití vícerozměrných polí
7.1.2.
Deklarace a přístup k prvkům vícerozměrných polí
7.1.3.
Vícerozměrná pole jako parametry procedur
7.1.4.
Problémy s "objemnějšími" strukturami
7.1.5.
Co rozhodně s velkými strukturami nedělat?
7.2.
Jednoduché algoritmy řazení
7.2.1.
V čem je problém?
7.2.2.
Řazení intuitivně: "opakovaným výběrem minima" (Select Sort)
7.2.3.
Řazení "probubláváním" (Bubble Sort)
7.2.4.
Řazení "vkládáním" (Insert Sort)
7.3.
Lze "naše" tři algoritmy řazení ještě vylepšit?
7.3.1.
Složitost algoritmů
7.3.2.
Složitost algoritmů řazení
8.
"Výběrovky"
9.
Přehled metodik analýzy problémů, návrhu a implementace programů
9.1.
Jak se programování za poslední léta změnilo?
9.1.1.
Změna úloh
9.1.2.
Změna metodiky
9.1.3.
Změna nástrojů
9.2.
Moderní programování
9.2.1.
Moderní programovací nástroje
9.2.2.
Moderní programovací jazyky
10.
Výuka programování na základní a střední škole
10.1.
Historie výuky počítačů a programování
10.1.1.
Generace 0
10.1.2.
Generace 1
10.1.3.
Generace 2
10.1.4.
Generace 3
10.1.5.
Generace 4
10.1.6.
Shrnutí
10.2.
Co je cílem výuky algoritmizace a programování?
10.3.
Jakou zvolit metodiku?
10.3.1.
Strukturovaný přístup
10.3.2.
Objektově orientovaný přístup
10.4.
Jaké použít nástroje?
10.4.1.
Spor: "výukové" vs. "profesionální" nástroje
10.4.2.
Profesionální nástroje
10.4.3.
Speciální prostředky pro výuku
10.4.4.
Úskalí některých přístupů a nástrojů
10.5.
Obvykle chyby výuky algoritmizace a programování
10.6.
Desatero zásad výuky algoritmizace a programování
11.
Stručná referenční příručka vybraných prvků Turbo Pascalu
11.1.
Struktura programu v Pascalu
11.1.1.
Struktura a zápis kódu programu
11.1.2.
Komentáře
11.1.3.
Konstanty
11.1.4.
Výrazy
11.1.5.
Proměnné
11.1.6.
Speciální symboly
11.1.7.
Klíčová (vyhrazená) slova
11.2.
Typy dat
11.2.1.
Přehled
11.2.2.
Ordinální typy
11.2.3.
Číselné typy
11.2.4.
Typ logických hodnot: boolean
11.2.5.
Typ znakových hodnot: char
11.2.6.
Uživatelem definované typy
11.2.7.
Uživatelem definované typy: výčtový typ
11.2.8.
Uživatelem definované typy: typ interval
11.3.
Příkazy Pascalu
11.3.1.
Složený příkaz
11.3.2.
Podmíněný příkaz/Větvení: if then else
11.3.3.
Příkaz rozšířeného větvení: case
11.3.4.
Příkaz (cyklus) while
11.3.5.
Příkaz (cyklus) repeat
11.3.6.
Příkaz (cyklus) for
11.4.
Strukturované/složené typy dat
11.4.1.
Úvod
11.4.2.
Pole: array
11.4.3.
Vícerozměrná pole
11.4.4.
Záznam: record
11.4.5.
Množina: set
11.4.6.
Soubor: file
11.4.7.
Typový soubor
11.4.8.
Direktiva I-$ a $I+$$
11.4.9.
Textový soubor
12.
Literatura, odkazy na Internet
12.1.
Doporučené publikace o programování
12.2.
Odkazy na internetové zdroje
Copyright (C) 2002 by Tomas Pitner