PředmětyPředměty(verze: 970)
Předmět, akademický rok 2024/2025
   Přihlásit přes CAS
Algoritmizace a programování - OPBI4I023A
Anglický název: Algorithms and Programming
Zajišťuje: Katedra informačních technologií a technické výchovy (41-KITTV)
Fakulta: Pedagogická fakulta
Platnost: od 2022
Semestr: letní
E-Kredity: 5
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:1/2, Zk [HT]
Rozsah za akademický rok: 0 [hodiny]
Počet míst: 14 / neurčen (neurčen)
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
při zápisu přednost, je-li ve stud. plánu
Garant: PhDr. Jiří Štípek, Ph.D.
Vyučující: PhDr. Jiří Štípek, Ph.D.
Prerekvizity : OPBI4I011A
Je prerekvizitou pro: OPBI4I033A
Anotace -
Cílem předmětu v oblasti algoritmizace je seznámit studenty se základy algoritmizace, algoritmickými konstrukcemi, vybranými způsoby a prostředky zápisu algoritmů a vybranými algoritmy. V oblasti programování je cílem předmětu seznámit studenty s jazykem C, s jeho syntaxí, základními programovými konstrukcemi, filozofií datových typů a příslušných operací, problematikou ukazatelů a dále rozvinutí praktických dovedností s důrazem na adekvátní využívání prostředků, resp. konstrukcí jazyka. Obsahově je předmět orientován na základní prostředky jazyka C, proměnné, konstanty, příkazy, operátory, podmíněné příkazy, cykly, ukazatele, práci s polem a funkce (včetně vybraných knihovních funkcí). Vedle využití základních prostředků jazyka se předmět dále věnuje vstupně výstupním operacím (zejm. práci se souborem) a implementaci vybraných algoritmů a datových struktur. Výuka bude vedena tak, aby zohleňovala různou úroveň studujících na vstupu. Výklad a základní cvičení budou vycházet z předpokladu, že studující má minimální zkušenosti z programováním. Pro pokročilejší studující budou připraveny komplexnější či náročnější úlohy, které většinově budou spadat do aktuálně probíraných temat, ale budou klást vyšší nároky při návrhu algoritmu řešení.
Poslední úprava: Štípek Jiří, PhDr., Ph.D. (15.12.2024)
Deskriptory

Příprava na výuku

Doba očekávané přípravy na 1 hodinu přednášky – 30 minut

Doba očekávané přípravy na 1 cvičení – 20 minut

Doba očekávané přípravy na 1 hodinu praxe – 0 minut

Samostudium literatury (za semestr) – 30 hodin

Práce se studijními materiály (za semestr) –  10 hodin

Plnění průběžných úkolů (za semestr) – 10 hodin

Plnění předmětu

Seminární práce – 0 hodin

Příprava na zápočet – 0 hodin

Příprava na zkoušku a zkouška – 25 hodin

Poslední úprava: Battistová Eva, PaedDr. (02.02.2022)
Podmínky zakončení předmětu

Podmínky pro úspěšné zakončení předmětu

První podmínkou pro úspěšné zakončení předmětu je odevzdání úkolů, které budou zadávány a odevzdávány průběžně prostřednictvím VLE Moodle, přičemž je nutné dosáhnout celkového průměrného hodnocení úkolů alespoň 80 %. Neodevzdané úkoly se započítávají do průměru s hodnocením 0 %. Všechny úkoly bude možné na základě hodnocení přepracovat a odevzdat znovu (termín pro přepracovanou verzi bude adekvátně posunut).

Druhou podmínkou je úspěšné složení zkoušky. Zkouška má praktickou a ústní část. Ústní část je podmíněna úspěšným složením praktické části (tj. hodnocení praktické části nejméně 50 %).

  • praktická část zkoušky: vypracování úloh dle zadání, které bude realizováno prezenční formou v předem vypsaných termínech v SIS ve zkouškovém období. Závěrečném zadání, které studující obdrží bude obsahovat 4 - 6 jednodušších úloh a jeho úkolem bude naprogramovat funkční řešení ve stanoveném časovém limitu. 
  • ústní část zkoušky: V ústní části zkoušky se požadují znalosti programovacího jazyka v rozsahu dle sylabu předmětu a algoritmů, které byly probírány v hodinách. Součástí zkoušky může být i rozprava nad řešením úloh z praktické části.
Poslední úprava: Štípek Jiří, PhDr., Ph.D. (28.01.2023)
Literatura

Základní literatura:

  • GONZALEZ-MORRIS, G., HORTON, I. Beginning C: From Beginner to Pro. B.m.: Apress. 2020.
  • HANÁK, J. Programování v jazyce C. Praha: Computer Media, 2011.
  • HEROUT, P. Učebnice jazyka C. Praha: Kopp, 2009.
  • PROKOP, J. Algoritmy v jazyku C a C++. Praha: Grada, 2012.
  • VIRIUS, M. Jazyky C a C++. Praha: Grada, 2011.
  • VIRIUS, M. Základy algoritmizace. Praha: ČVUT, 2008.
Poslední úprava: Štípek Jiří, PhDr., Ph.D. (18.01.2024)
Sylabus

Algoritmizace

  • Algoritmy a algoritmizace
  • Algoritmické konstrukce a struktury

Programování v jazyce C

  • Základy jazyka
  • Řídící struktury
  • Datové typy
  • Funkce
  • Ukazatele
  • Jednorozměrné pole
  • Textové řetězce
  • Práce se souborem
  • Vícerozměrná pole
Poslední úprava: Štípek Jiří, PhDr., Ph.D. (26.01.2023)
Studijní opory

Pro podporu výuky bude využito VLE Moodle (virtuální vzdělávací prostředí). Odkaz na kurz a klíč k zápisu budou sděleny na první výuce a následně zaslány účastníkům kurzu e-mailem prostřednictvím SIS.

Poslední úprava: Štípek Jiří, PhDr., Ph.D. (26.01.2023)
Výsledky učení

1. Porozumět základům programování v jazyce C
o Vysvětlit principy procedurálního programování a roli jazyka C.
o Používat vývojové prostředí pro psaní, kompilaci a ladění programů.


2. Pracovat s proměnnými a datovými typy
o Deklarovat a používat základní datové typy (int, float, char, double).
o Aplikovat aritmetické, relační a logické operátory.
o Aplikovat přetypování.


3. Používat podmíněné výrazy a větvení programu
o Implementovat podmínky pomocí příkazů if, if-else a switch-case.
o Rozhodovat o průběhu programu na základě uživatelského vstupu nebo jiných podmínek.


4. Ovládat cykly pro opakování operací
o Používat základní cykly for, while a do-while.
o Rozumět rozdílům mezi jednotlivými typy cyklů a jejich vhodnému použití.
o Implementovat vnořené cykly pro složitější iterace.


5. Definovat a používat funkce
o Vytvářet vlastní funkce se vstupními parametry a návratovou hodnotou.
o Rozumět rozdílu mezi lokálními a globálními proměnnými.
o Používat rekurzivní funkce pro řešení specifických problémů.


6. Pracovat s poli
o Deklarovat a používat jednorozměrná a vícerozměrná pole.
o Iterovat pole pomocí cyklů a upravovat jejich hodnoty.


7. Manipulovat se znaky a řetězci
o Používat pole znaků k reprezentaci textových řetězců.
o Aplikovat standardní funkce pro práci s řetězci (strlen, strcpy, strcmp atd.).


8. Pracovat se soubory
o Otevřít, číst, zapisovat a uzavírat soubory v jazyce C.
o Používat textové i binární soubory pro ukládání dat.


9. Ladit programy a identifikovat chyby
o Rozpoznat a opravit běhové, syntaktické a logické chyby.
o Používat ladicí nástroje pro diagnostiku problémů v kódu.


10. Vytvářet jednoduché programy řešící reálné problémy
o Kombinovat naučené koncepty pro vytvoření ucelených aplikací.
o Uplatňovat principy dobré struktury kódu a dokumentace.

Poslední úprava: Štípek Jiří, PhDr., Ph.D. (07.02.2025)
 
Univerzita Karlova | Informační systém UK