Ú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