Süsteemprogrammeerimine keeles C (2010): erinevus redaktsioonide vahel
Resümee puudub |
Resümee puudub |
||
| (ei näidata sama kasutaja 76 vahepealset redaktsiooni) | |||
| 1. rida: | 1. rida: | ||
{{itv0020}} | |||
Aine kood: '''itv0020'''<br/> | Aine kood: '''itv0020'''<br/> | ||
Link: [http://lambda.ee/index.php/Süsteemprogrammeerimine_keeles_C http://lambda.ee/index.php/Süsteemprogrammeerimine_keeles_C] [http://www.lambda.ee/index.php/itv0020 http://www.lambda.ee/index.php/itv0020]<br/> | Link: [http://lambda.ee/index.php/Süsteemprogrammeerimine_keeles_C http://lambda.ee/index.php/Süsteemprogrammeerimine_keeles_C] [http://www.lambda.ee/index.php/itv0020 http://www.lambda.ee/index.php/itv0020]<br/> | ||
| 4. rida: | 5. rida: | ||
Kontakt: jaagup.irve@ttu.ee, 56463800, tuba IT-222<br/> | Kontakt: jaagup.irve@ttu.ee, 56463800, tuba IT-222<br/> | ||
== | == Süsteemprogrammeerimisest 2012 == | ||
1. Sissejuhatus, muutujatest [[ | Seoses aine üleminekuga magistriõppesse tuleb tänavu veidi ümberkorraldusi. Seetõttu võib allpool nähtavast oodata teatud hälbimist, mida hetkel on raske ette ennustada. | ||
== Loengud 2010 == | |||
* [[Meedia:itv0020-loengud2010.zip|Kõik loengud .zip failina]] | |||
1. Sissejuhatus, muutujatest [[Meedia:Itv0020-01-sissejuhatus.pdf|PDF]] | |||
:Praktikum: [[Tutvumine keskkonnaga (itv0020)]] | :Praktikum: [[Tutvumine keskkonnaga (itv0020)]] | ||
2. Standardsisend-väljund, tüübiteisendused, massiivid ja pointerid. [[Meedia:Itv0020-02-standardväljund-sisend-teisendused-char-massiiv-pointer.pdf|PDF]] | |||
:Praktikum: [[Makefile, sisend, teisendused, massiivid, pointerid (itv0020)]] | |||
3. Pointerite jätk, streamid, librad, preprotsessorist [[Meedia:Itv0020-03-pointer2-streamid-librad.pdf|PDF]] | |||
:Praktikum: [[Leetspeak-tõlge (itv0020)]] | |||
4. Preprotsessori makrodest. Pointeritest ja massiividest. Dünaamiline mäluhaldus. [[Meedia:Itv0020-04-makrod-pointerid-malloc.pdf|PDF]] | |||
:Praktikum: [[Reeturite nimekiri (itv0020)]] | |||
5. Dünaamilised ja staatilised massiivid, struktuurid, võtmesõnad const ja typedef; skoobid. [[Meedia:Itv0020-05 - massiivid struktuurid IO stringid const typedef skoobid.pdf|PDF]] | |||
:Praktikum: [[5. praktikum - Dünaamiline massiiv, faili kirjutamine (itv0020)]] | |||
6. Stringidest, listinäide, union, bitt-tehted.[[Meedia:Itv0020-06-listid_union_bititöötlus.pdf|PDF]] | |||
:Praktikum. Tutvuge [http://vimeo.com/15558156 Huffmanni videoga], mis seletab Huffmani pakkimisalgoritmi. | |||
7. Bitt-tehted, süsteemikäsud, failideskriptor (jäi pooleli). [[Meedia:Itv0020-07-failikasutus_õliselt.pdf|PDF]] | |||
:Praktikum. [[7. praktikum - Bitt-tehted (itv0020)]] | |||
8. Võrgundus [[Meedia:Itv0020-08-võrgundus.pdf|PDF]] | |||
:Praktikum [[8. praktikum - Faili atribuudid (itv0020)]] | |||
9. Protsessidest [[Meedia:Itv0020-09-mitu argumenti protsessid zombie deemon.pdf|PDF]] | |||
:Praktikum [[9. praktikum - Võrgunduse alused (itv0020)]] | |||
10. Signaalid, longjmp [[Meedia:Itv0020-10-signaalid longjmp make automake.pdf|PDF]] | |||
:Praktikum '''Pakkija esitamine''' | |||
11. Make, ''Thread'' [[Meedia:Itv0020-11-thread.pdf|PDF]] | |||
:Praktikum: [[10. praktikum - fork ja exec (itv0020)|fork ja exec]] | |||
12. Argumentide parsimine, Mälu. [[Meedia:Itv0020-12-argumendid mälu.pdf|PDF ]] | |||
:Praktikum: [[11. praktikum - signaalid ja longjmp(itv0020)|signaalid ja longjmp]] | |||
13. (lükkus edasi) | |||
:Praktikum: [[12. praktikum - thread (itv0020)|Lõimed]] | |||
14. Lõimed ja fork; signaalide strateegiad; debugimisest [[Meedia:itv0020-13-lisainfo lõimed-fork signaalid debugimisest.pdf|PDF]] | |||
:Praktikum: [[13. praktikum - debugger (itv0020)|Silumine (debugger)]] | |||
15. Tehete järjekord [[Meedia:itv0020-14-tehete järjekord.pdf|PDF]] | |||
16. Kordamine [[Meedia:itv0020-15- kordamine.pdf|PDF]]; Eksamist [[Meedia:itv0020-15-eksamist.pdf|PDF]] | |||
== Laborid == | |||
Eksamile pääsemise eelduseks on vähemalt ühe labori edukas kaitsmine. Labor on 10 punkti + lisapunkte varem esitamise eest ja/või eriti toredate lahenduste eest. Programmivead ja lohakus võtab punkte vähemaks. Alla 5 punkti labori eest ei saa, sest siis kannatab hinne ja töö on kah liiga kehvasti tehtud. | |||
=== Tähtajad === | |||
Esimese labori tähtaeg on '''2. november'''. | |||
Teise labori tähtaeg detsembri keskel. Iga nädal hilinemist kahandab hinnet ühe võrra (max 3p). Laboreid saab kaitsta hiljemalt eksamile eelneval reedel (ja sisuliselt kogu deklaratsiooni kehtimise aja). | |||
=== Varasemad laborikirjeldused === | |||
* [[Labor 1: Huffmanni algoritm (itv0020)|Labor 1: Huffmanni algoritm]] | |||
* [http://cs.ttu.ee/tiki-index.php?page=ITV0020%20Labor%202 Labor 2: primitiivne ftp] | |||
=== Plagiaat === | |||
Seoses laborite keskmisest keerulisemaks osutumisega kiputakse töid kopeerima (ja ümber kirjutama). See on kergesti tuvastuv. Plagieeritud tööd ei arvestu. Sõltuvalt jultumusest on traditsiooniline karistus deklaratsiooni tühistamine. Kui tutvute TTÜ eetikakoodeksiga, võite sealt lugeda, et on olemas ka akadeemiline kohus, mis võib ka eksmatrikuleerida. | |||
== Praktikumid == | |||
* [[1. praktikum - Tutvumine keskkonnaga (itv0020)|Tutvumine keskkonnaga]] | |||
* [[2. praktikum - Makefile, sisend, teisendused, massiivid, pointerid (itv0020)|Makefile, sisend, teisendused, massiivid, pointerid]] | |||
* [[3. praktikum - Leetspeak-tõlge (itv0020)|Leetspeak-tõlge]] | |||
* [[4. praktikum - Reeturite nimekiri (itv0020)|Reeturite nimekiri]] | |||
* [[5. praktikum - Dünaamiline massiiv, faili kirjutamine (itv0020)|Dünaamiline massiiv, faili kirjutamine]] | |||
* [[7. praktikum - Bitt-tehted (itv0020)|Bitt-tehted]] | |||
* [[8. praktikum - Faili atribuudid (itv0020)|Faili atribuudid]] | |||
* [[9. praktikum - Võrgunduse alused (itv0020)|Võrgundus]] | |||
* [[10. praktikum - fork ja exec (itv0020)|Fork ja exec]] | |||
* [[11. praktikum - signaalid ja longjmp(itv0020)|signaalid ja longjmp]] | |||
== Vaata ka == | == Vaata ka == | ||
* [http://cslibrary.stanford.edu/101/ Essential C] - hea ülevaatlik õppematerjal | |||
* [http://dontfearthecommandline.blogspot.com/ Introduction to the Command Line] - käsurea kasutamise juhised | |||
* [http://stevelosh.com/blog/2010/09/coming-home-to-vim/ VIM programmeerijatele] - juhised VIMi kasutamiseks | |||
* [http://cs.ttu.ee/tiki-index.php?page=ITV0020 Eelmise aasta leht] | * [http://cs.ttu.ee/tiki-index.php?page=ITV0020 Eelmise aasta leht] | ||
=== Huvitavat === | |||
* [https://www.securecoding.cert.org/confluence/display/seccode/MEM12-C.+Consider+using+a+Goto-Chain+when+leaving+a+function+on+error+when+using+and+releasing+resources CERTi soovitus teatud tingimustes goto(!) kasutamiseks] | |||
* [http://blog.regehr.org/archives/721 Interaktiivne test C keele andmetüüpide kohta] | |||
[[Kategooria:itv0020]] | |||
Viimane redaktsioon: 3. september 2012, kell 16:26
Aine kood: itv0020
Link: http://lambda.ee/index.php/Süsteemprogrammeerimine_keeles_C http://www.lambda.ee/index.php/itv0020
Õppejõud: Jaagup Irve
Kontakt: jaagup.irve@ttu.ee, 56463800, tuba IT-222
Süsteemprogrammeerimisest 2012
Seoses aine üleminekuga magistriõppesse tuleb tänavu veidi ümberkorraldusi. Seetõttu võib allpool nähtavast oodata teatud hälbimist, mida hetkel on raske ette ennustada.
Loengud 2010
1. Sissejuhatus, muutujatest PDF
- Praktikum: Tutvumine keskkonnaga (itv0020)
2. Standardsisend-väljund, tüübiteisendused, massiivid ja pointerid. PDF
3. Pointerite jätk, streamid, librad, preprotsessorist PDF
- Praktikum: Leetspeak-tõlge (itv0020)
4. Preprotsessori makrodest. Pointeritest ja massiividest. Dünaamiline mäluhaldus. PDF
- Praktikum: Reeturite nimekiri (itv0020)
5. Dünaamilised ja staatilised massiivid, struktuurid, võtmesõnad const ja typedef; skoobid. PDF
6. Stringidest, listinäide, union, bitt-tehted.PDF
- Praktikum. Tutvuge Huffmanni videoga, mis seletab Huffmani pakkimisalgoritmi.
7. Bitt-tehted, süsteemikäsud, failideskriptor (jäi pooleli). PDF
- Praktikum. 7. praktikum - Bitt-tehted (itv0020)
8. Võrgundus PDF
9. Protsessidest PDF
10. Signaalid, longjmp PDF
- Praktikum Pakkija esitamine
11. Make, Thread PDF
- Praktikum: fork ja exec
12. Argumentide parsimine, Mälu. PDF
- Praktikum: signaalid ja longjmp
13. (lükkus edasi)
- Praktikum: Lõimed
14. Lõimed ja fork; signaalide strateegiad; debugimisest PDF
- Praktikum: Silumine (debugger)
15. Tehete järjekord PDF
16. Kordamine PDF; Eksamist PDF
Laborid
Eksamile pääsemise eelduseks on vähemalt ühe labori edukas kaitsmine. Labor on 10 punkti + lisapunkte varem esitamise eest ja/või eriti toredate lahenduste eest. Programmivead ja lohakus võtab punkte vähemaks. Alla 5 punkti labori eest ei saa, sest siis kannatab hinne ja töö on kah liiga kehvasti tehtud.
Tähtajad
Esimese labori tähtaeg on 2. november.
Teise labori tähtaeg detsembri keskel. Iga nädal hilinemist kahandab hinnet ühe võrra (max 3p). Laboreid saab kaitsta hiljemalt eksamile eelneval reedel (ja sisuliselt kogu deklaratsiooni kehtimise aja).
Varasemad laborikirjeldused
Plagiaat
Seoses laborite keskmisest keerulisemaks osutumisega kiputakse töid kopeerima (ja ümber kirjutama). See on kergesti tuvastuv. Plagieeritud tööd ei arvestu. Sõltuvalt jultumusest on traditsiooniline karistus deklaratsiooni tühistamine. Kui tutvute TTÜ eetikakoodeksiga, võite sealt lugeda, et on olemas ka akadeemiline kohus, mis võib ka eksmatrikuleerida.
Praktikumid
- Tutvumine keskkonnaga
- Makefile, sisend, teisendused, massiivid, pointerid
- Leetspeak-tõlge
- Reeturite nimekiri
- Dünaamiline massiiv, faili kirjutamine
- Bitt-tehted
- Faili atribuudid
- Võrgundus
- Fork ja exec
- signaalid ja longjmp
Vaata ka
- Essential C - hea ülevaatlik õppematerjal
- Introduction to the Command Line - käsurea kasutamise juhised
- VIM programmeerijatele - juhised VIMi kasutamiseks
- Eelmise aasta leht