Detail předmětu

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

FEKT-BPC1AAk. rok: 2016/2017

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í.

Jazyk výuky

čeština

Počet kreditů

5

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.

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 pět úloh.

Způsob a kritéria hodnocení

Studenti získají 10 bodů na základě naprogramování zadaných úloh ve cvičeních, 60 bodů za testy během cvičení a 30 bodů za závěrečný zápočtový test.

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.


Učební cíle

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

Počítačová cvičení jsou povinná, řádně omluvené zmeškané počítačové cvičení lze po domluvě s vyučujícím nahradit.

Základní literatura

Petrlík, L.: Jemný úvod do systému UNIX. Koop. České Budějovice 2000. ISBN 80-85828-24-6. (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)

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

  • Program EEKR-B bakalářský

    obor B-AMT , 1. ročník, zimní semestr, povinný

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

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

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Architektura počítačů - zobrazení číselné a znakové informace, kódování informace.
2. Operační systémy - proces, vykonávání procesu, typy operačních systémů, multitasking, virtuální počítač.
3. Operační systém UNIX, základní charakteristiky, výhody/nevýhody, možnosti.
4. Algoritmizace - základy vytváření algoritmu a zápis programu v symbolickém jazyku.
5. Programování v prostředku MATLAB.
6. Úvod do programovacího jazyka Java.
7. Přenos informací, počítačové sítě - LAN, WAN, Intranet, Internet, Ethernet.
Topologie lokálních sítí, technika přenosu, paket, datagram.
8. Komunikační protokoly, přenos informací v Internetu.
9. Vrstvy protokolů, protokol IP, protokol TCP, služby Internetu - ping, telnet, ftp, E-mail, web.
10. e-Learningový kurs Informační výchova (samostudium).

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1. Seznámení s počítačovou učebnou, pravidly provozu počítačové sítě VUT, způsoby přihlašování do sítě. Elektronická pošta - fakultní systém doručování elektronické pošty.
2. e-Learningový kurs Informační výchova (samostudium).
3. UNIX - použití základních příkazů v OS UNIX, práce se soubory.
4. Algoritmizace - základy vytváření algoritmu a zápis programu v symbolickém jazyku, spuštění demonstračního programu v MATLABu.
5. Programování v MATLABu - návrh a realizace vlastního jednoduchého programu v MATLABu, návrh a realizace vlastního složitějšího programu v MATLABu.
6. Programování v jazyce Java - návrh a realizace vlastního jednoduchého programu v jazyce Java v Eclipse, návrh a realizace vlastního složitějšího programu v jazyce Java v Eclipse.
7. Služby Internetu.
8. Samostatný projekt - tvorba dokumentu v MS Office, OpenOffice nebo Latex.