Differences between revisions 13 and 61 (spanning 48 versions)
Revision 13 as of 2008-04-25 09:05:25
Size: 3767
Editor: localhost
Comment: converted to 1.6 markup
Revision 61 as of 2009-05-16 17:17:14
Size: 4945
Editor: dial-95-105-158-139-orange
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]]

== Uploady ==

[[/Uploady]]
Line 7: Line 17:
## Doplň vyučujúcich  * Gejza Jenča gejza.jenca@stuba.sk
Line 9: Line 19:
 * 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 32:
 * Textový editor vim
Line 23: Line 33:
 * Základy internetových protokolov
Line 25: Line 34:
== Témy na skúšku == == Skúška ==
Line 27: Line 36:
 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.
Z Vychodila treba vedieť:
Line 34: Line 38:
== Komentáre ku skúške ==  * 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 36: Line 53:
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.
Z Pythonu treba vedieť základy:
Line 40: Line 55:
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.
 * zabudované dátové typy
 * základy programovania ({{{for,while,if}}})
 * funkcie a parametre ({{{def}}})
 * triedy ({{{class}}})
Line 43: Line 60:
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:
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 46: Line 67:
{{{
'^\(.\).*\1$'
}}}
== Výsledky ==
Line 50: Line 69:
Toto vám výrazne komplikovalo život pri robení shellovského scriptu, ale poradili ste si.
V skripte bolo najjednoduchšie použiť
[[/Výsledky]]
Line 53: Line 71:
{{{
sed 's/.*BODY=\([0-9]*\).*/\1/
}}}
== Domáce zadania, cvičenia ==
Line 57: Line 73:
na vystrihnutie bodov z každého riadku. [[/Zadanie1 | Domáce zadanie na prvé cvičenie]]
Line 59: Line 75:
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čí.
[[attachment:python_zadania.pdf | Zadania z Pythonu]] <- Verzia 6.5.2009
Line 67: Line 77:
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 68: Line 80:
Pre zaujímavosť prikladám mimoriadne expertné riešenie, využívajúce Python nadoraz: == Vzorove riesenia cviceni ==
Line 70: Line 82:
{{{
[list(x) for x in zip(*A)]
}}}



== Výsledky skúšky ==

|| Hrabovský || A ||
|| Hlavatý || B ||
|| Zachar || A ||
|| Mucha || A ||
|| Uherčík || B ||
|| Zacharovská || B ||
|| Pinteš || C ||
|| Macák || A ||


== Domáce zadania ==

[[/Zadanie1| prvé]]
[[/Riesenie 1| Riešenie prvého skúšobného cvičenia (shell)]]
Line 95: Line 87:
 * [[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 96: Line 91:
=== Pythonovské programy === ##=== Pythonovské programy ===
Line 98: Line 93:
 * [[/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 109: Line 105:
 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 116: Line 113:
 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 120: Line 119:
 1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu
Line 123: Line 124:
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

Uploady

/Uploady

Vyučujúci

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

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

/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

  1. 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)

  2. Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003

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

  4. The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/

  5. Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)

  6. How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html

  7. Dive into Python, Mark Pilgrim, http://www.diveintopython.org/

  8. Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html

  9. GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html

  10. A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python

  11. How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/

Webové stránky

  1. http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu

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

Výsledky

KMaDGWiki: OperacneSystemy (last edited 2024-09-17 13:58:44 by jenca)