# Programování a vývoj software 


<{Box(infobox)}>
|K    |V    |
|-----|-----|
| **Garantující pracoviště:** | [KSI](https://www.ksi.mff.cuni.cz/) |
| **Koordinátor specializace:** | [RNDr. Filip Zavoral, Ph.D.](https://www.ksi.mff.cuni.cz/~zavoral/) |
<{/Box}>
 Specializace Programování a vývoj software je zaměřena na principy, technologie,
 jazyky a nástroje využitelné v oblasti návrhu, vývoje a údržby softwarových systémů.
 Výuka zahrnuje solidní teoretické základy informatiky, principy fungování počítačů
 a operačních systémů, programovací jazyky, moderní paralelní, mobilní a internetové
 technologie i metody softwarového inženýrství.

---
<{AlertBox(warning, "Výpis doporučeného průběhu studia dle karolínky 2023/2024")}>
[karolínka 2023/2024](https://www.mff.cuni.cz/cs/studenti/bc-a-mgr-studium/studijni-plany/verze-pro-tisk/studijni-plany-karolinka-2023-2024.pdf)
<{/AlertBox}>

- výpis je obohacen o doporučené volitelné předměty
- [kalkulačka na kredity](/Obory%20na%20informatice/Programování%20a%20vývoj%20software/kalkulacka_prg_vyvoj_sw)

### Fajn volitelné předměty
- [**NMAI069** Matematické dovednosti](/NMAI069) $\color{black}{volitelný}$
- [**NDMI050** IPS 1](/NDMI050) $\color{black}{volitelný}$
- [**NDMI051** IPS 2](/NDMI051) $\color{black}{volitelný}$
- [**NAIL130** Elements of AI+](/NAIL130) $\color{black}{volitelný}$
- [**NAIL131** Ethics of AI +](/NAIL131) $\color{black}{volitelný}$
- [**NMAT100** Matematické problémy nematematiků](/NMAT100) $\color{black}{volitelný}$
- [**Angličtina**](/Angličtina)

---

## První ročník (společný)

<{MultiColumn(2)}>
<{Box(class=avoid-column-break)}>
### První semestr
- [**NMAI057** Lineární algebra I](/NMAI057) $\color{green}{povinný}$
- [**NDMI002** Diskrétní matematika](/NDMI002) $\color{green}{povinný}$
- [**NSWI141** Úvod do počítačových sítí](/NSWI141) $\color{green}{povinný}$
- [**NPRG062** Algoritmizace](/NPRG062) $\color{green}{povinný}$
- [**NPRG030** Programování 1](/NPRG030) $\color{green}{povinný}$
- [**NSWI120** Principy počítačů](/NSWI120) $\color{green}{povinný}$

<{/Box}>
<{Box(class=avoid-column-break)}>
### Druhý semestr
- [**NMAI058** Lineární algebra II](/NMAI058) $\color{green}{povinný}$
- [**NMAI054** Matematická analýza I](/NMAI054) $\color{green}{povinný}$
- [**NTIN060** Algoritmy a datové struktury I](/NTIN060) $\color{green}{povinný}$
- [**NPRG031** Programování 2](/NPRG031) $\color{green}{povinný}$
- [**NSWI170** Počítačové systémy](/NSWI170) $\color{green}{povinný}$
- [**NSWI177** Úvod do Linuxu](/NSWI177) $\color{green}{povinný}$
<{/Box}>
<{/MultiColumn}>

---

## Druhý ročník
<{MultiColumn(2)}>
<{Box(class=avoid-column-break)}>
### Třetí semestr
- [**NAIL062** Výroková a predikátová logika](/NAIL062) $\color{green}{povinný}$
- [**NDMI011** Kombinatorika a grafy 1](/NDMI011) $\color{green}{povinný}$
- [**NDBI025** Databázové systémy](/NDBI025) $\color{green}{povinný}$
- [**NTIN061** Algoritmy a datové struktury II](/NTIN061) $\color{green}{povinný}$
- [**NSWI142** Programování webových aplikací](/NSWI142) $\color{green}{povinný}$
- [**NPRG041** C++](/NPRG041) $\color{green}{povinný}$
- [**NPRG035** C#](/NPRG035) $\color{orange}{povinně \space volitelný \space 1}$
- [**NPRG013** Java](/NPRG013) $\color{orange}{povinně \space volitelný \space 1}$
- [**NPRG056** Programování mobilních zařízení](/NPRG056) $\color{orange}{povinně \space volitelný \space 2}$

<{/Box}>
<{Box(class=avoid-column-break)}>
### Čtvrtý semestr
- [**NTIN071** Automaty a gramatiky](/NTIN071) $\color{green}{povinný}$
- [**NMAI059** Pravděpodobnost a statistika 1](/NMAI059) $\color{green}{povinný}$
- [**NSWI154** Nástroje pro vývoj software](/NSWI154) $\color{green}{povinný}$
- [**NPRG043** Doporučené postupy v programování](/NPRG043) $\color{green}{povinný}$
- [**NPRG045** Ročníkový projekt](/NPRG045) $\color{green}{povinný}$
- [**NJAZ091** Anglický jazyk zkouška pro bakaláře](/NJAZ091) $\color{green}{povinný}$
- [**NPRG051** Pokročilé C++](/NPRG051) $\color{orange}{povinně \space volitelný \space 2}$
- [**NPRG038** Pokročilý C#](/NPRG038) $\color{orange}{povinně \space volitelný \space 2}$
- [**NPRG021** Pokročilá Java](/NPRG021) $\color{orange}{povinně \space volitelný \space 2}$
- [**NSWI153** Pokročilé webové aplikace](/NSWI153) $\color{orange}{povinně \space volitelný \space 2}$

<{/Box}>
<{/MultiColumn}>

---

## Třetí ročník
<{MultiColumn(2)}>
<{Box(class=avoid-column-break)}>
### Pátý semestr
- [**NSWI200** Operační systémy](/NSWI200) $\color{green}{povinný}$
- [**NPRG035** C#](/NPRG035) $\color{orange}{povinně \space volitelný \space 1}$
- [**NPRG041** C++](/NPRG041) $\color{green}{povinný}$
- [**NPRG013** Java](/NPRG013) $\color{orange}{povinně \space volitelný \space 1}$
- [**NSWI098** Principy překladačů](/NSWI098) $\color{orange}{povinně \space volitelný \space 4}$
- [**NSWI130** Architektury softwarových systémů](/NSWI130) $\color{orange}{povinně \space volitelný \space 3}$
- [**NPRG036** Datové formáty](/NPRG036) $\color{orange}{povinně \space volitelný \space 3}$
- [**NPRG056** Programování mobilních zařízení](/NPRG056) $\color{orange}{povinně \space volitelný \space 2}$

<{/Box}>
<{Box(class=avoid-column-break)}>
### Šestý semestr
- [**NSWI041** Úvod do softwarového inženýrství](/NSWI041) $\color{green}{povinný}$
- [**NPRG038** Pokročilý C#](/NPRG038) $\color{orange}{povinně \space volitelný \space 2}$
- [**NSWI153** Pokročilé webové aplikace](/NSWI153) $\color{orange}{povinně \space volitelný \space 2}$
- [**NPRG051** Pokročilé C++](/NPRG051) $\color{orange}{povinně \space volitelný \space 2}$
- [**NPRG021** Pokročilá Java](/NPRG021) $\color{orange}{povinně \space volitelný \space 2}$
- [**NPRG042** Programování v paralelním prostředí](/NPRG042) $\color{orange}{povinně \space volitelný \space 4}$
- [**NPRG054** Vývoj vysoce výkonného software](/NPRG054) $\color{orange}{povinně \space volitelný \space 4}$
- [**NSWI143** Architektura počítačů](/NSWI143) $\color{orange}{povinně \space volitelný \space 3}$
- [**NPRG024** Návrhové vzory](/NPRG024) $\color{orange}{povinně \space volitelný \space 3}$
- [**NSWI090** Počítačové sítě](/NSWI090) $\color{orange}{povinně \space volitelný \space 3}$

<{/Box}>
<{/MultiColumn}>

## Doplnění kreditů povinně volitelných předmětů
- [**NMAI055** Matematická analýza 2](/NMAI055) $\color{orange}{povinně \space volitelný \space 5}$
- [**NDBI040** Moderní databázové systémy](/NDBI040) $\color{orange}{povinně \space volitelný \space 5}$
- [**NPRG005** Neprocedurální programování](/NPRG005) $\color{orange}{povinně \space volitelný \space 5}$
- [**NDBI007** Principy organizace dat](/NDBI007) $\color{orange}{povinně \space volitelný \space 5}$
- [**NSWI162** Sémantika programů](/NSWI162) $\color{orange}{povinně \space volitelný \space 5}$
- [**NDMI100** Úvod do kryptografie](/NDMI100) $\color{orange}{povinně \space volitelný \space 5}$
- [**NPFL129** Úvod do strojového učení v Pythonu](/NPFL129) $\color{orange}{povinně \space volitelný \space 5}$
- [**NAIL120** Úvod do umělé inteligence](/NAIL120) $\color{orange}{povinně \space volitelný \space 5}$
- [**NPGR003** Základy počítačové grafiky](/NPGR003) $\color{orange}{povinně \space volitelný \space 5}$
- [**NPGR038** Základy vývoje počítačových her](/NPGR038) $\color{orange}{povinně \space volitelný \space 5}$


---

## [Státnice](/Státnice#Bakal.C3.A1.C5.99sk.C3.A9_st.C3.A1tnice_na_informatice)
