Open-Source programování

Studenti se 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í zdrojových kódů 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.
\\Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/A4M35OSP

Kód
RM35OSP
Semestr
letní
Forma studia
prezenční
Rozsah
2+2c
Kapacita
75
Obsazeno
45
Počet kreditů
6
Zakončení
zápočet a zkouška
Jazyk výuky
čeština
Poznámka
Rozsah výuky v kombinované formě studia: 14p+6c\\Stránky předmětu: http://support.dce.felk.cvut.cz/osp/ .\\
Obsah přednášek

1. Úvodní slovo o předmětu; Open-source software, projekt GNU, licence a operační systémy vycházející z jeho filozofie
2. GNU - vznik základních vývojových nástrojů a jejich použití
3. Přehled významných Open-source projektů (i pro výběr semestrální práce)
4. Založení vlastního projektu a zapojení se do existujícího projektu
5. Technická infrastruktura (správa verzí a chyb, komunikace, wiki)
6. Komerční model; Sociální a rozhodovací struktury
7. Mezilidská komunikace
8. Vydávání verzí, příprava balíčků a průběžný vývoj
9. Dobrovolníci, vývoj a větvení projektů
10. Licence, autorská práva a patenty
11. Cílové platformy, přenositelnost a open-source hardware
12. Linuxové jádro - vznik, vývoj, skladba a ovladače
13. Trendy a výhled do budoucnosti

Náplň cvičení

Seznámení s vývojovými nástroji a prostředím GNU/Linux:

Tvorba jednoduché aplikace v jazyce C, využití automake a případných dalších metod k sestavování programu

Práce s rozsáhlým projektem a jeho historií:

Vhodným kandidátem je Linuxové jádro

Procházení historií (git), vývojové stromy, konfigurace a kompilace

Tvorba jednoduchého znakového ovladače

Samostatná práce:

Výběr z nabídky prací na různých open-source projektech nebo návrh vlastní (úprav existujícího projektu, či založení projektu nového). Projekty mohou být z celé škály softwarových projektů, preferované jsou projekty zabývající se programováním na úrovni tradičních jazyků (C, C++, Java, Mono) buď plně přenositelných aplikací (POSIX) nebo programování na systémové úrovni.

Práce na projektu/úpravách, komunikace s komunitou okolo projektu, konzultace se cvičícími
Prezentace výsledků a hodnocení úspěšnosti, míry začlenění do projektu i studentovi komunikace s dalšími členy týmu.