Size: 3594
Comment:
|
Size: 5388
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
2007/08 -- ZS | 2008/09 -- LS == Downloady pre cvičenia == [[attachment:gallery.tar.gz]] [[attachment:passwd.txt]] [[attachment:zadanie2.pdf]] [[attachment:zadanie_opr.pdf]] == Uploady == [[/Uploady]] |
Line 7: | Line 19: |
## Doplň vyučujúcich | * Gejza Jenča gejza.jenca@stuba.sk |
Line 9: | Line 21: |
* Gejza Jenča gejza.jenca@stuba.sk * Jozef Martin Kollar jmkollar@penguin.sk |
== Konzultačné hodiny == V stredu 12:00-13:50. Radšej ale konzultuje priamo na cvičení. |
Line 21: | Line 34: |
* Textový editor vim | |
Line 23: | Line 35: |
* Základy internetových protokolov | |
Line 25: | Line 36: |
== Témy na skúšku == | == Skúška == |
Line 27: | Line 38: |
1. Súborový systém, užívatelia a skupiny, prístupové práva 2. Procesy, signály, rúry. 3. Regulárne výrazy. 4. Náčrt riešenia jednoduchého problému v shelli. 5. Náčrt jednoduchého programu v Pythone. 6. Základy internetových protokolov IP, TCP, UDP, HTTP. |
<<Pozor>> Termíny skúšky sú (vždy o 9:00 v zasadačke KMaDG) |
Line 34: | Line 41: |
== Komentáre ku skúške == | * 29.5.2009 * 15.6.2009 * 19.6.2009 |
Line 36: | Line 45: |
V prvom zadaní ste nevedeli zabezpečiť, aby nikto okrem vlastníka nevedel zmazať súbor. Treba dať súbor do osobitného adresára a revokovať zápisové práva pre skupinu a ostatných. Nevedeli ste (až na výnimku) význam setgid na adresár. umask malo byť 007. |
Dostavte sa podľa možnosti všetci na termín 29.5. |
Line 40: | Line 47: |
Druhé zadanie dopadlo pomerne dobre, máte o tom správnu predstavu. Ale niektorí si myslíte, že sa forkuje ls, prípadne nepíšete čo sa forkuje. Forkuje sa shell. |
Skúška bude prebiehať písomne. Obsah viď nižšie. Ihneď po napísaní vaše písomky opravím, potom budem prípadne ešte konzultovať s tými ľuďmi, ktorí budú na hranici alebo nebudú spokojní s hodnotením. <<Pohov>> |
Line 43: | Line 51: |
V treťom zadaní bol problém s tým, že väčsinou neviete spätné referencie -- to je nutné, ak chceme vybrať riadky s rovnakým prvým aj posledným znakom. Takto: |
Z Vychodila treba vedieť: |
Line 46: | Line 53: |
{{{ '^\(.\).*\1$' }}} |
* Kapitola 3: od začiatku až po 3.6 včítane * Kapitola 4: od začiatku až po 4.3 včítane * Kapitola 5: v tej miere ako bolo odprednášané, najmä * štruktúra príkazového riadku, úvodzovky, apostrofy, medzery, opačné lomítka atď * presmerovanie vstupu a výstupu, {{{>,<,>>,<<,|}}} * skripty, mechanizmus fungovania konštrukcie {{{!#}}} * premenné, špeciálne premenné, argumenty skriptov * kontrola toku programu : {{{if,while,for}}} * princíp fungovania {{{if}}} a {{{while}}} cez exit status * príkaz {{{test}}} * Kapitola 6: * základné programy pre prácu s textom {{{sort,cut,paste}}} * regulárne výrazy, program {{{grep}}} * program {{{sed}}} (iba príkaz) |
Line 50: | Line 68: |
Toto vám výrazne komplikovalo život pri robení shellovského scriptu, ale poradili ste si. V skripte bolo najjednoduchšie použiť |
Z Pythonu treba vedieť základy: |
Line 53: | Line 70: |
{{{ sed 's/.*BODY=\([0-9]*\).*/\1/ }}} |
* zabudované dátové typy * základy programovania ({{{for,while,if}}}) * funkcie a parametre ({{{def}}}) * triedy ({{{class}}}) |
Line 57: | Line 75: |
na vystrihnutie bodov z každého riadku. | Na skúške sa vás: * Spýtam na pár vecí z kapitoly 3 a 4. * Napíšete mi jeden-dva jednoduché príkazové riadky vykonávajúce zadanú činnosť. Nemusíte sa učiť všetky options všetkých príkazov, ak bude niečo treba vedieť, prezradím to. Ide mi o overenie znalosti princípu fungovania. * Bude zadanie o regulárnych výrazoch. * Napíšete krátky program v Pythone. Pravdepodobne to bude nejaká trieda. |
Line 59: | Line 82: |
Python nemal dobre snáď nikto, väčšinou ste sa vôbec netrápili s tým, že ak robíte novú maticu, musíte si ju najprv vytvoriť. Za skutočnú chybu som ale považoval, ak ste proste prebehli maticu a urobili {{{ A[i,j]=A[j,i] }}} toto predsa celú maticu zničí. |
== Výsledky == |
Line 67: | Line 84: |
[[/Výsledky]] | |
Line 68: | Line 86: |
Pre zaujímavosť prikladám mimoriadne expertné riešenie, využívajúce Python nadoraz: | == Domáce zadania, cvičenia == |
Line 70: | Line 88: |
{{{ [list(x) for x in zip(*A)] }}} |
[[/Zadanie1 | Domáce zadanie na prvé cvičenie]] |
Line 74: | Line 90: |
[[attachment:python_zadania.pdf | Zadania z Pythonu]] <- Verzia 6.5.2009 | |
Line 75: | Line 92: |
Domáce zadanie na testovacie cvičenie z Pythonu: vyriešte zo zadaní časť o reláciách. Domáce zadanie na opravné/náhradné cvičenie z shell scriptov: rovnaké ako na normálne cvičenie. |
|
Line 76: | Line 95: |
== Výsledky skúšky == | == Vzorove riesenia cviceni == |
Line 78: | Line 97: |
== Domáce zadania == [:/Zadanie1: prvé] |
[[/Riesenie 1| Riešenie prvého skúšobného cvičenia (shell)]] |
Line 86: | Line 101: |
* [attachment:prva.pdf pdf k prvej prednáške] | * [[attachment:prva.pdf|pdf k prvej prednáške]] * [[attachment:tahak_unix.pdf|Ťahák - príkazy v UNIXe]] * [[attachment:tahak_python.pdf|Ťahák - Python (komplexný)]] * [[http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html|Ťahák - Python (jednoduchší)]] |
Line 88: | Line 106: |
=== Pythonovské programy === | ##=== Pythonovské programy === |
Line 90: | Line 108: |
* [:/Fork:fork(), wait(), SIGCHLD] * [:/Pipe:pipe()] * [:/Socket: UNIXové sockety] === Skripty === |
## * [[PocitacoveSiete/Fork|fork(), wait(), SIGCHLD]] ## * [[PocitacoveSiete/Pipe|pipe()]] ## * [[PocitacoveSiete/Socket| UNIXové sockety]] ## * [[PocitacoveSiete/TCPSocket | Klient a server TCP]] ## * [[PocitacoveSiete/Sumator | TCP server pre scitanie cisel]] ## * [[PocitacoveSiete/ChatServer | Chatovací server - multithreading]] ## * [[PocitacoveSiete/Webserver | "Webovsky server" implementovaný na úrovni socketov]] ## * [[attachment:cgi-server.tar.gz | CGI server a skripty]] |
Line 101: | Line 120: |
1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 (nie je nutné, stačí dokumentácia v systéme) | 1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 1. ''Learning Python",, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar |
Line 108: | Line 128: |
1. ''A Byte of Python'', Swaroop C H, http://www.swaroopch.com/notes/Python 1. ''How to Think Like a Computer Scientist'', Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/ |
|
Line 112: | Line 134: |
1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu |
|
Line 115: | Line 139: |
20 bodov zo 40. Body sa budú udeľovať v rámci cvičení. | 15 bodov z 30. Body sa budú udeľovať v rámci cvičení. |
Operačné systémy
2008/09 -- LS
Downloady pre cvičenia
gallery.tar.gz passwd.txt zadanie2.pdf zadanie_opr.pdf
Uploady
Vyučujúci
Gejza Jenča gejza.jenca@stuba.sk
Konzultačné hodiny
V stredu 12:00-13:50. Radšej ale konzultuje priamo na cvičení.
Stručná osnova predmetu
- Princípy OS Unix/Linux
- Základy práce so systémom
- Súborový systém
- Užívatelia a skupiny
- Procesy, rúry
- Prehľad základných utilít
- Programovanie v shelli, skripty
- Programovací jazyk Python
Skúška
![]() |
Termíny skúšky sú (vždy o 9:00 v zasadačke KMaDG)
Dostavte sa podľa možnosti všetci na termín 29.5. Skúška bude prebiehať písomne. Obsah viď nižšie. Ihneď po napísaní vaše písomky opravím, potom budem prípadne ešte konzultovať s tými ľuďmi, ktorí budú na hranici alebo nebudú spokojní s hodnotením. |
Z Vychodila treba vedieť:
- Kapitola 3: od začiatku až po 3.6 včítane
- Kapitola 4: od začiatku až po 4.3 včítane
- Kapitola 5: v tej miere ako bolo odprednášané, najmä
- štruktúra príkazového riadku, úvodzovky, apostrofy, medzery, opačné lomítka atď
presmerovanie vstupu a výstupu, >,<,>>,<<,|
skripty, mechanizmus fungovania konštrukcie !#
- premenné, špeciálne premenné, argumenty skriptov
kontrola toku programu : if,while,for
princíp fungovania if a while cez exit status
príkaz test
- Kapitola 6:
základné programy pre prácu s textom sort,cut,paste
regulárne výrazy, program grep
program sed (iba príkaz)
Z Pythonu treba vedieť základy:
- zabudované dátové typy
základy programovania (for,while,if)
funkcie a parametre (def)
triedy (class)
Na skúške sa vás:
- Spýtam na pár vecí z kapitoly 3 a 4.
- Napíšete mi jeden-dva jednoduché príkazové riadky vykonávajúce zadanú činnosť. Nemusíte sa učiť všetky options všetkých príkazov, ak bude niečo treba vedieť, prezradím to. Ide mi o overenie znalosti princípu fungovania.
- Bude zadanie o regulárnych výrazoch.
- Napíšete krátky program v Pythone. Pravdepodobne to bude nejaká trieda.
Výsledky
Domáce zadania, cvičenia
Domáce zadanie na prvé cvičenie
Zadania z Pythonu <- Verzia 6.5.2009
Domáce zadanie na testovacie cvičenie z Pythonu: vyriešte zo zadaní časť o reláciách. Domáce zadanie na opravné/náhradné cvičenie z shell scriptov: rovnaké ako na normálne cvičenie.
Vzorove riesenia cviceni
Riešenie prvého skúšobného cvičenia (shell)
Materiály
Literatúra
Linux: Příručka českého uživatele, Vilém Vychodil; Computer Press 2003, Brno (je žiadúce, aby každý mal svoju kópiu)
Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003
Learning Python",, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar
The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/
Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)
How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html
Dive into Python, Mark Pilgrim, http://www.diveintopython.org/
Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html
GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html
A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python
How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/
Webové stránky
http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu
http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu
Podmienky na zápočet
15 bodov z 30. Body sa budú udeľovať v rámci cvičení.
Príklady a cvičenia