Commit 561caadd authored by Zavoral Filip RNDr. Ph.D.'s avatar Zavoral Filip RNDr. Ph.D.
Browse files

.

parent 67a64852
<html>
<head>
<title>Návrhové vzory</title>
</head>
<!--
<body background="http://www.ksi.mff.cuni.cz/~zavoral//ulita200.jpg">
-->
<h1 align=center>Návrhové vzory</h1>
<h3 align=center ><a href="http://www.ksi.mff.cuni.cz/~zavoral">Filip Zavoral</a>, NPRG024, 0/2 KZ</h3>
<table cellpadding=10><tr>
<td><a href=feedback.jpg><img src=feedback.jpg width=200></a></td>
<td>
Seminář Návrhové vzory navazuje na předměty Programování v C++, Javě a C# a završuje tak základní výuku objektově orientovaného programování.
<br/><br/>
Seminář je založen na samostatné práci studentů při zkoumání 23 základních a vybraných rozšiřujících návrhových vzorů a jejich implementace.
Součástí práce studentů je důkladné studium zvolených návrhových vzorů a jejich prezentace (přednáška) ostatním.
V závěru semináře budou probírány vybrané rozšiřující návrhové vzory.
<br/><br/>
Předmět není určen pro čerstvé absolventy základních programátorských předmětů, tj. současné druháky.
Důvodem je potřeba programátorské vyzrálosti a získání zkušeností, aby studenti byli schopni plně vstřebat předkládané motivace, myšlenky a návrhy řešení.
Ideálním obdobím pro absolvování předmětu je 3. ročník Bc. studia.
</td>
</tr></table>
<!--
<object width="1280" height="400">
<param name="ohlasy" value="ohlasy.swf">
<embed src="ohlasy.swf" width="1280" height="400"></embed>
</object>
-->
<h3>Podmínky pro získání klasifikovaného zápočtu a hodnotící kritéria</h3>
<ul>
<li>&gt;= 60% aktivní účast</li>
<li>Být zapsán v Grupíčku k některému vzoru (základnímu nebo rozšiřujícímu)</li>
<li>Vzor nastudovat, slajdy upravit, doplnit a uploadovat do Grupíčku</li>
<li>Dle harmonogramu za 15-20 min. kvalitně odpřednášet (nikoliv 'odkuŘkat' formou tzv. 'referativního semináře')</li>
<li>Implementovat vámi zvolený vzor</li>
<li><b>Závěrečný zápočtový test</b></li>
<ul>
<li>Pro úspěšnost N-tého pokusu je zapotřebí dostatečně správně a úplně popsat N zadaných
návrhových vzorů (odlišných od vlastního přednášeného)</li>
<li>Je nutné znát (a popsat) vztahy mezi zadanými vzory</li>
<li>Z rozšiřujících NV v testu budou:
MVC, Pipes&Filters, Forwarder-Receiver, Client-Dispatcher-Server, Reactor, Proactor, Lazy/Eager Acquisition, Caching/Pooling, Leasing, Evictor</li>
</li>
</ul>
</ul>
<p>
Je důležité <b>dodržovat harmonogram</b> (v Grupíčku), v případě jeho ohrožení
(nemoc, studijní povinnosti vyšší priority, výjezd do zahraničí, ukončení studia apod.) mne ihned kontaktujte!
</p>
<h3>Na co si dát pozor</h3>
<P><i>(= za co může být zhoršena známka)</i></P>
<ul>
<li>Dodržení harmonogramu pro zaslání slajdů a vlastní přednášku</li>
<li>Aktualizace slajdů</li>
<li>Formát a úprava slajdů</li>
<li>Způsob a kvalita přednášení</li>
<li>Důkladné porozumění zadanému vzoru, erudované odpovědi na dotazy</li>
<li>Znalost vzorů na zápočtovém testu</li>
<li>Vhodnost a korektnost implementace, správné použití</li>
</ul>
<h3>Materiály</h3>
<p>
Studijní materiály jsou dostupné na místech uvedených v SISu (Souborový manažer):
<ul>
<li>GoF.rar - základní vzory</li>
<li>ext.rar - rozšiřující vzory</li>
</ul>
</p>
<h3>Slajdy</h3>
<ul><li><a href="DesignPatterns.ppt">Úvodní, obecné a shrnujcí <b>slajdy</b></a>
<i>- obsahují pokyny pro zpracování návrhových vzorů, vytváření slajdů a prezentaci - <b>čtěte!</b></i></li>
</ul>
<P>Základní vzory (GOF):</P>
<ul>
<li><A HREF="01-FactoryMethod.pptx">Factory Method</A></li>
<li><A HREF="02-AbstractFactory.ppt">Abstract Factory</A></li>
<li><A HREF="03-Builder.pptx">Builder</A></li>
<li><A HREF="04-Prototype.pptx">Prototype</A></li>
<li><A HREF="05-Singleton.pptx">Singleton</A></li>
<li><A HREF="06-Facade.ppt">Facade</A></li>
<li><A HREF="07-Proxy.pptx">Proxy</A></li>
<li><A HREF="08-Adapter.ppt">Adapter</A>
(<A HREF="08-Adapter-en.ppt">eng</A>)</li>
<li><A HREF="09-Bridge.pptx">Bridge</A></li>
<li><A HREF="10-Composite.pptx">Composite</A></li>
<li><A HREF="11-Decorator.pptx">Decorator</A>
(<A HREF="11-Decorator-en.pptx">eng</A>)</li>
<li><A HREF="12-Flyweight.pptx">Flyweight</A>
(<A HREF="12-Flyweight.pdf">pdf</A>)</li>
<li><A HREF="13-State.ppt">State</A></li>
<li><A HREF="14-Memento.pptx">Memento</A></li>
<li><A HREF="15-Iterator.pptx">Iterator</A></li>
<li><A HREF="16-Command.pptx">Command</A></li>
<li><A HREF="17-Interpreter.pptx">Interpreter</A></li>
<li><A HREF="18-ChainOfResponsibility.ppt">Chain Of Responsibility</A>
(<A HREF="18-ChainOfResponsibility-en.pptx">eng</A>)</li>
<li><A HREF="19-Observer.pptx">Observer</A></li>
<li><A HREF="20-Mediator.pptx">Mediator</A></li>
<li><A HREF="21-Strategy.ppt">Strategy</A>
(<A HREF="https://youtu.be/z3ObHB_y7QA">video</A>)</li>
<li><A HREF="22-TemplateMethod.ppt">Template Method</A></li>
<li><A HREF="23-Visitor.pptx">Visitor</A>
(<A HREF="23-Visitor-2.ppt">alt</A>)</li>
</ul>
<P>Rozšiřující vzory:</P>
<ul>
<li><A HREF="e122-PipesFilters.pptx">e122 Pipes and Filters</A></li>
<li><A HREF="e124-MVC_PAC.ppt">e124 MVC PAC</A></li>
<li><A HREF="e133-MasterSlave_ViewHandler.ppt">e133 Master Slave, View Handler</A></li>
<li><A HREF="e136-FwdRcv_CliDispSvr.ppt">e136 Forwarder Receiver, Client Dispatcher Server</A></li>
<li><A HREF="e23a-MonitorObject.ppt">e23 Monitor Object</A></li>
<li><A HREF="e23b-Reactor_Proactor.pptx">e23 Reactor, Proactor</A></li>
<li><A HREF="e24-Scoped_Strat_Locking.pptx">e24 Scoped Locking, Strategized Locking</A></li>
<li><A HREF="e25-HalfSyncHalfAsync-FlwLeaders.pptx">e25 Half Sync/Half Async, Followers/Leaders</A></li>
<li><A HREF="e32a-Lazy_Eager_Acquisition.pptx">e23 Lazy/Eager Acquisition</A></li>
<li><A HREF="e32b-ObjectPooling_Caching.pptx">e23 Object Pooling and Caching</A></li>
<li><A HREF="e33-Leasing_Evictor.pptx">e33 Leasing, Evictor</A></li>
<li><A HREF="PEAA12-Inheritance.pptx">peaa12 Inheritance in IS</A></li>
<li><A HREF="ex-AntiPatterns.pptx">AntiPatterns</A></li>
</ul>
<P>Starší verze:</P>
<ul>
<li><A HREF="POSA-short.ppt">Pattern Oriented Software Architecture</A></li>
<li><A HREF="POSA-124-135.ppt">e124 Interactive Systems, Management</A></li>
<li><A HREF="POSA-133-136.ppt">e133 Organization of Work, Communication</A></li>
<li><A HREF="POSA-22.ppt">e22 Service Access and Configuration</A></li>
<li><A HREF="POSA-23.ppt">e23 Event Handling</A></li>
<li><A HREF="POSA-25.ppt">e25 Concurrency</A></li>
<li><A HREF="POSA-3.pdf">e3 Resource Management</A></li>
</ul>
<p><A HREF="DesignPatterns.zip">Všechny slajdy</A> (průběžně aktualizováno)</p>
</body>
</html>
......@@ -27,12 +27,64 @@ Ideálním obdobím pro absolvování předmětu je 3. ročník Bc. studia.
</tr></table>
<h3>Průběh distanční výuky <img src="coronavirus.jpg"/></h3>
<p>
Seminář bude probíhat distančně, a to i v případě, kdyby v průběhu semestru byla umožněna prezenční forma výuky.
Po úvodním seznámení přes platformu Zoom a upřesnění průběhu semestru bude každému studentu přidělen konkrétní návrhový vzor.
Student vzor důkladně nastuduje, připraví si slajdy (s možným využitím slajdů z minulých let) a vyrobí cca 15-20 minutové video s přednáškou.
Všichni studenti si potom samostatně ze zveřejněných videí všechny vzory nastudují a zašlou připomínky, dotazy, nebo náměty k diskusi k alespoň třem návrhovým vzorům.
Na konci semestru proběhne jeden až dva online semináře, kde autoři přednášek zodpoví na zaslané dotazy a budou reagovat na diskusi.
</p>
<h3>Relevantní odkazy</h3>
<ul>
<li>diskusní fórum</li>
<li>uni MS stream</li>
<li>Studijní materiály jsou dostupné na místech uvedených v SISu (Souborový manažer):
<ul>
<li>GoF.rar - základní vzory</li>
<li>ext.rar - rozšiřující vzory</li>
</ul>
</li>
</ul>
<h3>Harmonogram</h3>
<table>
<tr><td>4.3.</td><td>14:00</td> <td>zoom - úvodní přednáška</td></tr>
<tr><td>8.3.</td><td></td> <td>zaslání explicitního potvrzení zájmu o přidělení návrhového vzoru</td></tr>
<tr><td>11.3.</td><td></td> <td>přidělení návrhových vzorů</td></tr>
<tr><td>8.4.</td><td></td> <td>upload slajdů a videa s přednáškou</td></tr>
<tr><td>20.5.</td><td></td> <td>zaslání dotazů a připomínek</td></tr>
<tr><td>27.5.</td><td>14:00</td><td>zoom - interaktivní diskuse</td></tr>
<tr><td>3.6.</td><td>14:00</td> <td>2. část interaktivní diskuse nebo předtermín zkouškového testu (bude upřesněno)</td></tr>
</table>
<h3>Podmínky pro získání klasifikovaného zápočtu a hodnotící kritéria</h3>
<ul>
<li>Být zapsán v Grupíčku k některému vzoru</li>
<li>Vzor nastudovat, slajdy upravit, doplnit a uploadovat do Grupíčku</li>
<li>Vyrobit cca 15-20 minutové video s přednáškou</li>
<li>Zaslat dotazy, připomínky nebo náměty k diskusi k alespoň třem návrhovým vzorům</li>
<li>Zúčastnit se závěrečného online semináře, zodpovědět zaslané dotazy a účastnit se diskuse</li>
<li>Implementovat libovolný vzor v jakémkoliv (rozumném) jazyce</li>
<li>Závěrečný zápočtový test</li>
<ul>
<li>Pro úspěšnost N-tého pokusu je zapotřebí dostatečně správně a úplně popsat N zadaných
návrhových vzorů (odlišných od vlastního přednášeného)</li>
<li>Je nutné znát (a popsat) vztahy mezi zadanými vzory</li>
<!--
<object width="1280" height="400">
<param name="ohlasy" value="ohlasy.swf">
<embed src="ohlasy.swf" width="1280" height="400"></embed>
</object>
<li>Z rozšiřujících NV v testu budou:
MVC, Pipes&Filters, Forwarder-Receiver, Client-Dispatcher-Server, Reactor, Proactor, Lazy/Eager Acquisition, Caching/Pooling, Leasing, Evictor</li>
</li>
-->
</ul>
</ul>
<!--
<h3>Podmínky pro získání klasifikovaného zápočtu a hodnotící kritéria</h3>
......@@ -40,7 +92,7 @@ Ideálním obdobím pro absolvování předmětu je 3. ročník Bc. studia.
<li>&gt;= 60% aktivní účast</li>
<li>Být zapsán v Grupíčku k některému vzoru (základnímu nebo rozšiřujícímu)</li>
<li>Vzor nastudovat, slajdy upravit, doplnit a uploadovat do Grupíčku</li>
<li>Dle harmonogramu za 15-20 min. kvalitně odpřednášet (nikoliv 'odkuŘkat' formou tzv. 'referativního semináře')</li>
<li>Dle harmonogramu za 15-20 min. kvalitně odpřednášet (nikoliv 'odkuňkat' formou tzv. 'referativního semináře')</li>
<li>Implementovat vámi zvolený vzor</li>
<li><b>Závěrečný zápočtový test</b></li>
<ul>
......@@ -57,30 +109,23 @@ Je důležité <b>dodržovat harmonogram</b> (v Grupíčku), v případě jeho o
(nemoc, studijní povinnosti vyšší priority, výjezd do zahraničí, ukončení studia apod.) mne ihned kontaktujte!
</p>
-->
<h3>Na co si dát pozor</h3>
<P><i>(= za co může být zhoršena známka)</i></P>
<ul>
<li>Dodržení harmonogramu pro zaslání slajdů a vlastní přednášku</li>
<li>Aktualizace slajdů</li>
<li>Formát a úprava slajdů</li>
<li>Způsob a kvalita přednášení</li>
<li>Dodržení harmonogramu pro zaslání slajdů a videa s přednáškou</li>
<li>Aktualizace slajdů, formát a úprava</li>
<li>Obsah a kvalita přednášky</li>
<li>Účast na závěrečném semináři</li>
<li>Důkladné porozumění zadanému vzoru, erudované odpovědi na dotazy</li>
<li>Znalost vzorů na zápočtovém testu</li>
<li>Vhodnost a korektnost implementace, správné použití</li>
</ul>
<h3>Materiály</h3>
<p>
Studijní materiály jsou dostupné na místech uvedených v SISu (Souborový manažer):
<ul>
<li>GoF.rar - základní vzory</li>
<li>ext.rar - rozšiřující vzory</li>
</ul>
</p>
<h3>Slajdy</h3>
<ul><li><a href="DesignPatterns.ppt">Úvodní, obecné a shrnujcí <b>slajdy</b></a>
......
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