Commit 051af1fe authored by Bednárek David RNDr. Ph.D.'s avatar Bednárek David RNDr. Ph.D.
Browse files

Improved web page.

parent 30496cc4
......@@ -30,7 +30,7 @@
<h2 align="center">NPRG041</h2>
<h3 align="center">2019/2020</h3>
<h3 align="center">2020/2021</h3>
<h3 align="center"><a href="http://www.ksi.mff.cuni.cz/~bednarek/">David Bednárek</a></h3>
<h3 align="center">2/2</h3>
......@@ -38,7 +38,7 @@
<table border="0" cellspacing="8" cellpadding="2" width="100%">
<tr>
<td width="49%">
<td width="49%" valign="top">
<h3 align="right">Warning (particularly to Erasmus students)</h3>
<p style="text-align: justify">This course assumes that all participants already acquired some experience in programming, understanding of object-oriented programming, and basic knowledge of C# or Java.
If you are a beginner in programming, you shall not enroll.
......@@ -48,7 +48,7 @@
</p>
</td>
<td width="2" bgcolor="gray"/>
<td width="49%">
<td width="49%" valign="top">
<h3>Varování</h3>
<p style="text-align: justify">Předmět předpokládá u všech účastníků zkušenosti s programováním, porozumění objektově-orientovanému programování a základní znalost jazyka C# nebo Java.
Pokud jste v programování začátečník, nezapisujte se.
......@@ -60,21 +60,24 @@
</tr>
<tr>
<td width="49%">
<td width="49%" valign="top">
<h3 align="right">Distance learning</h3>
<p style="text-align: justify">TBD</p>
<table>
<p style="text-align: justify">The lectures in English will be pre-recorded and made available off-line in the form of a .pptx file containing audio (this allows for easy rolling back/forth) or a normal video.
See the section Timetable below for more information.</p>
<p style="text-align: justify">The timetable slot for the lecture (Tuesday 15:40) may be used for discussions, if needed.</p>
<p style="text-align: justify">The tutorials will be on-line using ZOOM, as specified by the timetable:</p>
<table>
<tr>
<td class=brdr><a href="http://e-x-a.org/mff/cpp20">Út 12:20 Kratochvíl</a></td>
<td class=brdr><a href="http://e-x-a.org/mff/cpp20">Mon 17:20 Kratochvíl (starting Oct 5)</a></td>
<td class=brdr></td>
</tr>
</table>
</td>
<td width="2" bgcolor="gray"/>
<td width="49%">
<td width="49%" valign="top">
<h3>Distanční výuka</h3>
<p style="text-align: justify">Distanční výuka bude probíhat primárně na platformě zoom.
Přednášku budou nahrávány a budou k dispizici po celou dobu semestru.
Přednášku budou nahrávány a budou k dispizici po celou dobu semestru - viz sekce Průběh přednášky níže.
Účast na online cvičení se předpokládá v termínech stanovených rozvrhem.
Podrobnější informace k jednotlivým skupinám cvičení a příslušná zoom ID:
</p>
......@@ -161,59 +164,63 @@
</td>
</tr>
<tr>
<td width="49%">
<td width="49%" valign="top">
<h3 align="right">Slides</h3>
<h4 align="right"><a href="nprg041.en.pptx">PowerPoint</a></h4>
<h4 align="right"><a href="nprg041.en.pdf">PDF</a></h4>
<h4 align="right"><a href="NPRG041-C.pptx">Part C</a></h4>
<p align="right">The slides may be updated during the semester.</p>
<p align="justify">Slides from 2019/20 are available in one <a href="nprg041.en.pptx">PowerPoint</a> or <a href="nprg041.en.pdf">PDF</a> file.</h4>
<p align="justify">For 2020/21, the slides will be updated and split into sections corresponding to individual lectures.
Each lecture will be published as a PowerPoint file containing slides, a PDF file containing the same slides,
a narrated PowerPoint file containing slides and an audio track for each slide, and a video file made from the narrated PowerPoint file.</p>
</td>
<td width="2" bgcolor="gray"/>
<td width="49%">
<h3>Obrázky z přednášek</h3>
<h4><a href="nprg041.cz.pptx">PowerPoint</a></h4>
<h4><a href="nprg041.cz.pdf">PDF</a></h4>
<h4><a href="NPRG041-C.pptx">Část C</a></h4>
<p>Obrázky z přednášek se mohou během celého semestru mírně aktualizovat.</p>
<p align="justify">Slajdy z roku 2019/20 jsou k dispozici vcelku jako <a href="nprg041.cz.pptx">PowerPoint</a> nebo <a href="nprg041.cz.pdf">PDF</a>.</p>
<p align="justify">Doplňkové slajdy především o propojení C-C++ - <a href="NPRG041-C.pptx">PowerPoint.</a>
<p align="justify">Pro rok 2020/21 budou slajdy průběžně aktualizovány rozděleny do sekcí odpovídajících jednotlivým přednáškám.</p>
</td>
</tr>
<tr>
<td width="49%">
<td width="49%" valign="top">
<h3 align="right">Timetable</h3>
<p align="justify">Grey background indicates previous-year contents mapped to this year.
The dates are intended only as a prediction when the corresponding slides/videos will be published.
The numbers are slide numbers in the previous-year files.</p>
<p align="justify">The narrated pptx and videos will appear here as soon as prepared.</p>
<table border="0" cellspacing="2" cellpadding="2">
<tr><td>2019/10/2</td><td align="right">1</td><td align="right">16</td><td>Pros and cons of C++.</td></tr>
<tr><td>2019/10/9</td><td align="right">19</td><td align="right">42</td><td>Compilation and header files. Hello, world.</td></tr>
<tr><td>2019/10/16</td><td align="right">43</td><td align="right">50</td><td>Passing arguments by value and by reference.</td></tr>
<tr><td>2019/10/23</td><td align="right">51</td><td align="right">62</td><td>Passing arguments and returning by value and by reference, copy/move semantics, copy/move elision.</td></tr>
<tr><td>2019/10/30</td><td align="right">63</td><td align="right">72</td><td>Memory layout of simple containers. Copy/move semantics, the Rule of Five. References vs. pointers, conventions.</td></tr>
<tr><td>2019/11/6</td><td align="right">73</td><td align="right">81</td><td>Pointers, smart pointers, observers. array/struct/vector.</td></tr>
<tr><td>2019/11/13</td><td align="right">82</td><td align="right">94</td><td>Smart pointer examples. Containers.</td></tr>
<tr><td>2019/11/20</td><td align="right">95</td><td align="right">106</td><td>Containers, iterators, range-for-loop.</td></tr>
<tr bgcolor=lightgray><td>2019/11/27</td><td align="right"></td><td align="right"></td><td>Algorithms, functors, lambda.</td></tr>
<tr bgcolor=lightgray><td>2019/12/04</td><td align="right"></td><td align="right"></td><td>Class, inheritance, virtual methods.</td></tr>
<tr bgcolor=lightgray><td>2019/12/11</td><td align="right"></td><td align="right"></td><td>Special methods, conversions, casts. </td></tr>
<tr bgcolor=lightgray><td>2019/12/18</td><td align="right"></td><td align="right"></td><td>Relevant principles of computers. Numeric types, physical representation of arrays and structures. Number, enumeration and character types. C-style strings, std::string, std::string_view. Storage classes, stack frames, address space. Storage classes. </td></tr>
<tr bgcolor=lightgray><td>2020/1/8</td><td align="right"></td><td align="right"></td><td>Templates, variadic templates.</td></tr>
<tr bgcolor=lightgray><td>2020/10/1</td><td align="right">1</td><td align="right">16</td><td>Pros and cons of C++.</td></tr>
<tr bgcolor=lightgray><td>2020/10/8</td><td align="right">19</td><td align="right">42</td><td>Compilation and header files. Hello, world.</td></tr>
<tr bgcolor=lightgray><td>2020/10/15</td><td align="right">43</td><td align="right">50</td><td>Passing arguments by value and by reference.</td></tr>
<tr bgcolor=lightgray><td>2020/10/22</td><td align="right">51</td><td align="right">62</td><td>Passing arguments and returning by value and by reference, copy/move semantics, copy/move elision.</td></tr>
<tr bgcolor=lightgray><td>2020/10/29</td><td align="right">63</td><td align="right">72</td><td>Memory layout of simple containers. Copy/move semantics, the Rule of Five. References vs. pointers, conventions.</td></tr>
<tr bgcolor=lightgray><td>2020/11/5</td><td align="right">73</td><td align="right">81</td><td>Pointers, smart pointers, observers. array/struct/vector.</td></tr>
<tr bgcolor=lightgray><td>2020/11/12</td><td align="right">82</td><td align="right">94</td><td>Smart pointer examples. Containers.</td></tr>
<tr bgcolor=lightgray><td>2020/11/19</td><td align="right">95</td><td align="right">106</td><td>Containers, iterators, range-for-loop.</td></tr>
<tr bgcolor=lightgray><td>2020/11/26</td><td align="right"></td><td align="right"></td><td>Algorithms, functors, lambda.</td></tr>
<tr bgcolor=lightgray><td>2020/12/3</td><td align="right"></td><td align="right"></td><td>Class, inheritance, virtual methods.</td></tr>
<tr bgcolor=lightgray><td>2020/12/10</td><td align="right"></td><td align="right"></td><td>Special methods, conversions, casts. </td></tr>
<tr bgcolor=lightgray><td>2020/12/17</td><td align="right"></td><td align="right"></td><td>Templates. Storage classes, stack frames, address space.</td></tr>
<tr bgcolor=lightgray><td>2021/1/7</td><td align="right"></td><td align="right"></td><td>Variadic templates, forwarding references. Introduction to exceptions.</td></tr>
</table>
<p>Note: Gray background indicates previous-year contents mapped to this year.</p>
</td>
<td width="2" bgcolor="gray"/>
<td width="49%">
<td width="49%" valign="top">
<h3>Průběh přednášky</h3>
<table border="0" cellspacing="2" cellpadding="2">
<tr><td align="right">7.10.2019</td><td align="right">1</td><td align="right">23</td><td>Výhody a nevýhody C/C++. Hodnotové a referenční typy.</td></tr>
<tr><td align="right">14.10.2019</td><td align="right">24</td><td align="right">34</td><td>Předávání hodnotou a odkazem, lvalue a rvalue reference.</td></tr>
<tr><td align="right">21.10.2019</td><td align="right">35</td><td align="right">47</td><td>Předávání parametrů a vracení hodnotou a odkazem, obvyklé chyby, copy/move-elision, lvalue/rvalue, copy/move metody.</td></tr>
<tr><td align="right">4.11.2019</td><td align="right">48</td><td align="right">58</td><td>Rule-of-Five. Dynamic allocation, smart pointers, observers. Konvence používání ukazatelů a referencí.</td></tr>
<tr><td align="right">11.11.2019</td><td align="right">59</td><td align="right">72</td><td>Arrays vs. vectors, smart pointers vs. containers, examples.</td></tr>
<tr><td align="right">18.11.2019</td><td align="right">73</td><td align="right">90</td><td>Kontejnery, iterátory, range-for-loop. Algoritmy</td></tr>
<tr><td align="right">25.11.2019</td><td align="right">91</td><td align="right">101</td><td>Algoritmy, funktory, lambda.</td></tr>
<tr><td align="right">2.12.2019</td><td align="right">102</td><td align="right">107</td><td>std::function. Class. Class vs. namespace. </td></tr>
<tr bgcolor=lightgray><td align="right">9.12.2019</td><td align="right"></td><td align="right"></td><td>Dědičnost. Speciální metody, konverze, přetypování.</td></tr>
<tr bgcolor=lightgray><td align="right">16.12.2019</td><td align="right"></td><td align="right"></td><td>Šablony, variadické šablony.</td></tr>
<tr bgcolor=lightgray><td align="right">6.1.2020</td><td align="right"></td><td align="right"></td><td>Kompilace. Hlavičkové soubory, dělení do modulů, statické a dynamické knihovny. Storage classes, stack frames, code/data segments, heap. Relevantní principy počítačů. Paměťová reprezentace elementárních typů, polí a struktur. Číselné typy. Enum, bool. Char a string, string_view. </td></tr>
<tr bgcolor=lightgray><td align="right">29.9.2020</td><td align="right">1</td><td align="right">23</td><td>Výhody a nevýhody C/C++. Hodnotové a referenční typy.</td></tr>
<tr bgcolor=lightgray><td align="right">6.10.2020</td><td align="right">24</td><td align="right">34</td><td>Předávání hodnotou a odkazem, lvalue a rvalue reference.</td></tr>
<tr bgcolor=lightgray><td align="right">13.10.2020</td><td align="right">35</td><td align="right">47</td><td>Předávání parametrů a vracení hodnotou a odkazem, obvyklé chyby, copy/move-elision, lvalue/rvalue, copy/move metody.</td></tr>
<tr bgcolor=lightgray><td align="right">20.10.2020</td><td align="right">48</td><td align="right">58</td><td>Rule-of-Five. Dynamic allocation, smart pointers, observers. Konvence používání ukazatelů a referencí.</td></tr>
<tr bgcolor=lightgray><td align="right">27.10.2020</td><td align="right">59</td><td align="right">72</td><td>Arrays vs. vectors, smart pointers vs. containers, examples.</td></tr>
<tr bgcolor=lightgray><td align="right">3.11.2020</td><td align="right">73</td><td align="right">90</td><td>Kontejnery, iterátory, range-for-loop. Algoritmy</td></tr>
<tr bgcolor=lightgray><td align="right">10.11.2020</td><td align="right">91</td><td align="right">101</td><td>Algoritmy, funktory, lambda.</td></tr>
<tr bgcolor=lightgray><td align="right">24.11.2020</td><td align="right">102</td><td align="right">107</td><td>std::function. Class. Class vs. namespace. </td></tr>
<tr bgcolor=lightgray><td align="right">1.12.2020</td><td align="right"></td><td align="right"></td><td>Dědičnost. Speciální metody, konverze, přetypování.</td></tr>
<tr bgcolor=lightgray><td align="right">8.12.2020</td><td align="right"></td><td align="right"></td><td>Šablony.</td></tr>
<tr bgcolor=lightgray><td align="right">15.12.2020</td><td align="right"></td><td align="right"></td><td>Kompilace. Hlavičkové soubory, dělení do modulů, statické a dynamické knihovny. Storage classes, stack frames, code/data segments, heap. </td></tr>
<tr bgcolor=lightgray><td align="right">22.12.2020</td><td align="right"></td><td align="right"></td><td>Variadické šablony, forwarding references.</td></tr>
<tr bgcolor=lightgray><td align="right">5.1.2021</td><td align="right"></td><td align="right"></td><td>Výjimky.</td></tr>
</table>
<p>Poznámka: Šedé pozadí označuje průběh z minulého roku namapovaný na letošní data.</p>
<p>Poznámka: Šedé pozadí označuje průběh z minulého roku namapovaný na letošní data. Dva číselné sloupce jsou čísla slajdů v loňské verzi.</p>
</td>
</tr>
</table>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment