Detail předmětu

Počítače a programování 1

FEKT-KPC1AAk. rok: 2015/2016

První část předmětu je zaměřena na seznámení studentů s informačními systémy fakulty a university, základy informatiky jako číselné soustavy, binární aritmetika, reprezentace desetinných čísel, kódování znaků, Von Neumannovy principy a koncepce počítače, základy operačních systémů (OS), práce v OS UNIX/Linux a základy počítačových sítí. Druhá část předmětu se věnuje algoritmizaci a základům programování v jazyce C. Studenti by se měli naučit používat proměnné jazyka C, přiřazovací příkazy, aritmetické, bitové, logické a relační operátory, příkazy větvení a cyklů a používání funkcí.

Výsledky učení předmětu

Absolvent předmětu by měl být schopen:
- využívat informační systémy a počítačovou síť FEKT/VUT,
- vyjádřit číslo v různých číselných soustavách,
- vyjádřit desetinné číslo dle standardu IEEE 754,
- popsat základní a složené datové typy jazyka C,
- aplikovat příkazy a operátory jazyka C,
- sestavit jednoduchý algoritmus a vytvořit pro něj program v jazyce C,
- popsat použití protokolů IP, TCP, UDP, HTTP, HTTPS, FTP a NTP,
- popsat fungování DNS a DNSSEC.

Prerekvizity

Bez prerekvizit.

Doporučená nebo povinná literatura

Petrlík, L.: Jemný úvod do systému UNIX. Koop. České Budějovice 2000. ISBN 80-85828-24-6. (CS)
Lasser, J. Rozumíme Unixu. Computer Press, 2002. ISBN: 80-7226-706-X (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Computer Press, 2008. (CS)
Herout,P.: Učebnice jazyka C. Kopp. ISBN: 978-80-7232-383-8. (CS)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X. (CS)
Kadlec,V.: Učíme se programovat v jazyce C. Computer Press, Praha, 2002. ISBN 80-7226-715-9 (CS)
Prokop, J.: Algoritmy v jazyku C a C++. Praha. Grada Publishing, 2009. ISBN 978-80-247-2751-6 (CS)

Plánované vzdělávací činnosti a výukové metody

Metody vyučování zahrnují přednášky a cvičení na počítači. Student vypracuje šest úloh.

Způsob a kritéria hodnocení

Studenti získají 10 bodů na základě naprogramování zadaných úloh ve cvičeních, 90 bodů za vypracování domácích úloh.

Jazyk výuky

čeština

Osnovy výuky

1. Informační systémy používané na FEKT/VUT a jim odpovídající uživatelské účty. Pravidla a směrnice počítačové sítě FEKT/VUT. Přístup k fakultní elektronické poště, WWW rozhraní Horde. Filtrování příloh elektronické pošty.
2. Konfigurace klientů elektronické pošty. Přesměrování pošty. WiFi sítě VUT a EDUROAM. VPN. Číselné soustavy, převody mezi číselnými soustavami. Aritmetické operace v binární soustavě.
3. Reprezentace záporných čísel. Reprezentace desetinných čísel, standard IEEE 754. Zlomková reprezentace desetinných čísel, zaokrouhlování.
4. Kódování znaků: ASCII, ISO-8859-2, UNICODE, UTF8. Von Neumannovy principy a koncepce počítače. Strojová instrukce. Operační systém (OS), role OS, abstrakce poskytované OS.
5. OS UNIX/Linux. Příkazové interprety (shell), základní příkazy (pwd, cd, ls, cd, mkdir, rmdir, rm, du, df, ps, tar), přístupová práva k adresářům a souborům, příkaz chmod. Přenos souborů pomocí protokolů SCP a SFTP, program WinSCP. Grafický správce souborů mc, textové editory pico, vi.
6. Algoritmus, vývojové diagramy. Programovací a značkovací jazyky. Rozdělení programovacích jazyků. Strukturované a objektově orientované programování. Historie a standardy jazyka C (K&R C, ANSI C (C89), C90, C99, C1X).
7. Základní struktura programu v jazyce C. Proměnné v jazyce C, identifikátory proměnných. Jednoduché datové typy v jazyce C. Definice a inicializace proměnných. Globální a lokální proměnné, zásobník. Rozsahy platnosti proměnných. Konstanty. Konstantní proměnné, modifikátor const.
8. Přiřazovací příkaz, L-hodnota, R-hodnota. Aritmetické a binární operátory. Operátory inkrementace a dekrementace. Relační a logické operátory. Priorita operátorů. Konverze typů (implicitní, explicitní). Příkazy větvení if, else, switch, case.
9. Jednorozměrná pole. Řetězce, řetězcové literály. Realizace cyklů v jazyce C. Funkce. Standardní knihovní funkce jazyka C. Funkce pro práci se standardním vstupem a výstupem: scanf(), printf().
10. Rekurzivní volání funkce. Proměnné typu struktura, přístup k prvkům struktury pomocí operátoru tečka, vícerozměrná pole. Inicializace struktur a polí. Výčtový typ enum.
11. TCP/IP model, linkové adresy, typy IP adres, IPv4 a IPv6 adresy, identifikátory rozhraní v IPv6 adresách. ARP protokol. Mechanismus objevování sousedů v IPv6 .
12. Protokoly TCP, UDP, porty. DNS, DNSSEC. Protokoly HTTP, HTTPS, certifikáty, certifikační autority. Umístění vlastních HTML stránek na studentský server FEST. Protokol Telnet a jeho využití pro testování TCP síťových služeb. FTP, anonymní FTP. Synchronizace času, protokol NTP.
13. Pokročilejší práce v OS UNIX: zástupné znaky (?, *, []), standardní vstup a výstup, chybový výstup, přesměrování vstupů a výstupů. Skripty příkazového interpretu. Regulární výrazy, programy grep a find.

Cíl

Cílem předmětu je naučit studenty používat informační systémy a počítačovou síť fakulty a university, seznámit je se základy informatiky, algoritmizace a programování v jazyce C.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Zařazení předmětu ve studijních plánech

  • Program EEKR-BK bakalářský

    obor BK-AMT , 1. ročník, zimní semestr, 5 kreditů, povinný

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 1. ročník, zimní semestr, 5 kreditů, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Cvičení na poč.

26 hod., povinná

Vyučující / Lektor