[[!meta title="Open Source Programování"]] [[!toc]] V tomto předmětu se studenti seznámí s open-source projekty a technikami ověřenými při programování rozsáhlejších aplikací a operačních systémů. Budou uvedeny důvody, které vedly k založení projektu GNU, a vysvětleno, proč může být tento přístup vhodnou platformou i pro spolupráci komerčních firem. Dále budou popsány standardní nástroje pro tvorbu, správu, ladění a testování (nejenom) open-source softwaru a základní skladba operačního systému POSIXového typu. Předložen bude i úvod do tvorby ovladačů pro takovéto operační systémy a skladby uživatelských a grafických knihoven. Závěrečný blok přednášek bude zaměřen na využití popsaných technik ve vestavných aplikacích a pro řízení v reálném čase. [Popis předmětu][1] na stránkách [fakulty][2]. Aktuality ========= * Ve dnech 7. a 8. března proběhne na Strahově konference a setkání [InstallFest](http://installfest.cz/if15/). Prezentace představí různé otevřené technologie a nástroje. Jejich značná část se pak zabývá operačním systémem GNU/Linux, na ně provozovanými službami a jeho využitím i na různých počítačových a mobilních platformách. Komunikace ========== Pro účely komunikace mezi studenty a vyučujícími slouží [mailing list][ml]. Studentům doporučujeme sledovat komunikaci na mailing listu, buď v [archivu][ar] nebo prostřednictvím [přihlášení se k odběru][ml]. Vyučující předpokládají, že studenti berou na vědomí zaslané informace. Další komunikační kanály jsou: - Twitter: [[#CTU_OSP|twitter]] - IRC: #ctu_osp on [Freenode](https://freenode.net/) ([Webchat](http://webchat.freenode.net?channels=%23ctu_osp)) [ml]: https://rtime.felk.cvut.cz/mailman/listinfo/osp [ar]: https://rtime.felk.cvut.cz/pipermail/osp/ Hodnocení předmětu ========== [[!table class="borders" data=""" Co | Podmínka
zápočtu | Body | Poznámky,
deadline | Úloha 1 (úprava MC) | ✓ | 5/1 | a), 26. 2. | Úloha 2 (dmsg vypíše Hello ) | ✓ | 5/1 | a), 5. 3. | Konzultace návrhu samostatné práce | ✓ | | | Úloha 3 (úprava patche proti Git historii) | ✓ | 5/1 | a), 19. 3. | Prezentace záměru práce | ✓ | 5/1 | | Úloha 4 (obsluha mnoha klientů) | ✓ | 5(+5)/1 | a), b), 9. 4. | Úloha 5 (Open street map) | ✓ | 5/1 | a), 30. 4. | Test v půli semestru | ✓ | 15 | | *Průběh samostatné práce* | | | |   Odezva od člena projektu | | 3 | c) |   Vaše změny (i nepřijaté) jsou dostupné ve veřejném repozitáři | | 3 | c) |   Otestování vašich změn členem projektu | | 3 | c) |   Zahrnutí vaší implementace do projektu | | 3 | c) |   Vaše změny jsou zdokumentovány v uživatelské dokumentaci projektu | | 3 | c) |   Výsledná práce odpovídá zadání ze 3. týdne | | 3 | c) |   Profilová stránka a slidy k závěrečné prezentaci jsou anglicky | | 2 | | Prezentace výsledku práce | ✓ | 1 – 5 | d) | Open HUB kudorank | | (3) | e) | Zkouška | | 30 | | **Celkem** | | **100+(8)** | | """]] [[!table class="borders" data=""" Známka | počet bodů A | 90 – ∞ B | 80 – 89 C | 70 – 79 D | 60 – 69 E | 50 – 59 F | < 50 nebo < 15 ze zk. písemky """]] #### Poznámky:
  1. 5 bodů pokud je úloha odevzdána do "deadlinu" (včetně), jinak 1 bod.
  2. Pět nejlepších studentů získá navíc 1 – 5 bonusových bodů.
  3. pokud si vyberete jako samostatnou práci lokalizaci, bude vaše bodové hodnocení sníženo o 1/3.
  4. 4 – 10 bodů v závislosti na hodnocení (hlasování) všemi přítomnými.
  5. Ohloh profil s kudorankem větším než 0 získaným za commity v open-source projektech splňujících požadavky na [[samostatnou práci|cviceni#semestralka]].
#### Pravidla pro studenty kombinovaného studia (KS): Pro absolvování kurzu je vyžadované vypracování všech úloh a prezentací stejně jako pro ostatní studenty. Studentů kombinované formy se však netýká snížení počtu bodů v případě pozdějšího odevzdání úloh a také se mohou dohodnout se cvičícím na odevzdání úloh a první prezentace elektronickou cestou. Povinnou zůstává přítomnost na cvičení s testem a na závěrečných prezentacích. Podobné kurzy na jiných školách =============================== * [Andrew Tridgell: Teaching FOSS at Universities, LCA 2010](http://2009.r2.co.nz/20100118/50100.htm) ([slides](http://www.lca2010.org.nz/slides/50100.odp)) * [The Australian National University, Free and Open Source Software Development](http://cs.anu.edu.au/students/comp8440/) * [Fachhochschule Augsburg, Hubert Högl](http://elk.informatik.fh-augsburg.de/hhweb/oss/index.html) * [TeachingOpenSource.org](http://teachingopensource.org/) * [Aberystwyth University: Open Source Development Issues](http://www.aber.ac.uk/en/modules/deptcurrent/?m=CS38110) ([Steve McIntyre: prednáška](http://www.einval.com/~steve/talks/Aberystwyth-2009/HEADER.html)) * [Karlova Univerzita, MFF, Open source programování](http://pasky.or.cz/vyuka/2011-PRG055/) * [Open Source Software Practice, Rensselaer Polytechnic Institute (Troy, NY)](http://www.opensourcesoftwarepractice.org/) * [Open Source Comes to Campus](http://campus.openhatch.org/) -- one-day workshop taught by OpenHatch people. Literatura ============ * [Karl Fogel: Producing Open Source Software (How to Run a Successful Free Software Project)](http://producingoss.com/en/index.html), CreateSpace, 2009, ISBN-13: 978-1441437716 * Překlad [Karl Fogel: Tvorba open source softwaru](http://knihy.nic.cz/), CZ.NIC, z. s. p. o., 2012, ISBN-13: 978-80-904248-5-2 * The Linux Documentation Project * Popis programátorských technik v Unixu * GNU Operating System * Embedded Linux kernel and driver development, * Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005. * Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition), O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900 * [An Exploration of Fedora’s Online Open Source Development Community](http://www.cyber-anthro.com/beta-an-exploration-of-fedora%E2%80%99s-online-open-source-development-community/) * [Ben Lynn: Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html) * [Defensive patent publications](http://opensource.com/education/13/2/software-defensive-patents) Prezentace studentských projektů z minulých běhů předmětu ========================================================== * [[Rok 2010|student/2010]] * [[Rok 2011|student/2011]] * [[Rok 2012|student/2012]] * [[Rok 2013|student/2013]] * [[Rok 2014|student/2014]] [1]: http://www.feld.cvut.cz/education/bk/predmety/12/53/p12539404.html [2]: http://fel.cvut.cz/