PředmětyPředměty(verze: 861)
Předmět, akademický rok 2019/2020
  
Programování 3 - NMIN201
Anglický název: Programming 3
Zajišťuje: Katedra softwaru a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2019
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/2 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Garant: RNDr. Martin Pergel, Ph.D.
Třída: M Bc. MMIB
M Bc. MMIB > Povinné
M Bc. MMIB > 2. ročník
M Bc. MMIT
M Bc. MMIT > Povinné
M Bc. OM
M Bc. OM > Doporučené volitelné
M Bc. OM > 2. ročník
Kategorizace předmětu: Informatika > Programování
Korekvizity : NMIN102
Neslučitelnost : NPRG031
N//Je neslučitelnost pro: NPRG031
Anotace -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (18.01.2018)
Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů. Předpokládá znalosti základního kurzu programování NMIN101 a NMIN102, na které navazuje.
Podmínky zakončení předmětu -
Poslední úprava: RNDr. Tomáš Holan, Ph.D. (13.10.2017)

Předmět je zakončen zápočtem a zkouškou. Zápočet není nutný k účasti na zkoušce.

K získání zápočtu se požaduje:

aktivní účast na cvičení spočívající obvykle v řešení úkolů (programů) v termínech stanovených cvičícím (ať už na cvičení nebo doma),

vypracování zápočtového programu a jeho odevzdání do termínu stanoveného cvičícím,

úspěšné absolvování zápočtového testu.

Povaha prvních dvou požadavků neumožňuje vypsat opravné termíny. Vyučující může stanovit podmínky, za nichž student může nahradit chybějící domácí úkoly nebo opakovaně odevzdat zápočtový program po odstranění nalezených závad.

Na složení zápočtového testu má student tři pokusy do konce zkouškového období zimního semestru (jeden řádný a dva opravné termíny). Vyučující může studentům povolit vykonat opravný termín i dodatečně během letního semestru.

Literatura -
Poslední úprava: G_M (24.04.2012)

M. Virius: C# pro zelenáče, Neocortex Praha, 2002

E. Gunnerson: Začínáme programovat v C#, Computer Press Praha 2001

J. Kent: Visual C# 2005 bez předchozích znalostí, Computer Press Brno 2007

Jesse Liberty, Donald Xie: Programming C# 3.0, Fifth Edition, O'Reilly Media, Inc., 2007.

Požadavky ke zkoušce -
Poslední úprava: RNDr. Tomáš Holan, Ph.D. (13.10.2017)

Zkouška má pouze ústní část, která obsahuje typicky dvě otázky odpovídající sylabu přednášky a tomu, co byo procvičováno na cvičení.

Požadavky ke zkoušce odpovídají sylabu předmětu v rozsahu předneseném na přednáčce.

Sylabus -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (18.01.2018)

Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů. Předpokládá znalosti základního kurzu programování NMIN101 a NMIN102, na které navazuje.

C: Základy
  • Hello, world!
  • deklarace proměnných (zatím jenom int) a přiřazování
  • podmínky, cykly, break a continue
  • deklarace a volání funkcí

C: Aritmetika

  • celočíselné typy
  • floating-point typy
  • aritmetické a bitové operátory
  • relační a booleovské operátory
  • přiřazovací operátory
  • explicitní a automatické typové konverze
  • literály (včetně typovaných)
  • komplexní čísla

C: Složené typy

  • struct, union
  • pole
  • ukazatele
  • kvalifikátory (const, volatile)
  • jak číst složité deklarace

Principy počítačů

  • procesor, paměť, periferie
  • organizace paměti: kód, statická data, dynamická data, zásobník
  • uložení dat v paměti:
  • celá čísla, dvojkový doplněk
  • fixed-point reprezentace
  • IEEE floaty
  • znaky a různá jejich kódování
  • překladač, linker, knihovny

C: Práce s ukazateli

  • dynamická alokace paměti
  • spojové seznamy, stromy
  • reprezentace polí pomocí pointerové aritmetiky
  • práce s řetězci

C: Preprocesor

  • #include
  • #define
  • #if, #ifdef

C: Ostatní

  • switch, case, goto
  • vedlejší efekty a synchronizační body
  • knihovní typy
  • různé knihovní funkce
  • programy složené z více modulů, viditelnost identifikátorů

C++: Objekty

  • třídy, objekty, public/private, class/struct
  • dědičnost a statické/virtuální metody
  • konstruktory, destruktory
  • konvece: gettery a settery
  • přetěžování funkcí a operátorů
  • objektový návrh

C++: Standardní knihovna

  • namespace
  • stream
  • pair
  • vector
  • string
  • set, map
  • iterátory a automatické typování deklarací

C++: Ukazatele

  • unique_ptr, shared_ptr
  • reference
  • copy/move semantika
  • copy/move konstruktory
  • konverzní konstruktory
  • const_cast, static_cast, reinterpret_cast, dynamic_cast

C++: Ostatní

  • základní použití šablon
  • výjimky
  • knihovní algoritmy
  • co za nás udělá překladač

 
Univerzita Karlova | Informační systém UK