======Programming II - Workshops 2015/2016====== This page contains materials for the practice lessons of the [[https://is.cuni.cz/studium/predmety/index.php?tid=&do=predmet&kod=NPRG031|Programming II (NPRG031)]] course that is being/has been taught during summer term 2014/2015 at [[http://www.mff.cuni.cz/|Charles University]] in [[http://www.praha.eu/jnp/cz/home/magistrat/index.html|Prague]], Czech Republic. The course official web page is/was to be found [[http://ksvi.mff.cuni.cz/~holan/#Vyuka|here]]. The lecturer is/was [[http://ksvi.mff.cuni.cz/~holan/|Tomáš Holan]]. The practice lessons (workshops) are/were backed by many, for this [[https://is.cuni.cz/studium/rozvrhng/roz_predmet_gl.php?tid=&skr=2015&sem=2&gl=15bNPRG031x11&fak=11320|group]], concretely, by [[http://gamedev.cuni.cz/contacts/|Jakub Gemrot]] ======Dates====== Thursday's workshops, 14:00, SW2, Jakub Gemrot: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] ======How to pass the practice====== * You have to either: - Obtain **200 points** from workshops - Obtain at least **170 points** + **do an extra** workshop (**exam**) during 18. / 25.5. * You can get points by: - **Attending workshops** and writing quick tests at their beginning - **Doing homeworks** (and submitting them to CoDex or me) * Details can be read within this [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-PracticeTerms.xlsx|XLSX]] ======Workshops: History====== **Workshop 12** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_12-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_12-Slides.pdf|(PDF)]] **(19.5.2016)** * Graph Algorithms + "3D" Engine * Assignment * Graph algorithms * 10 points * 5 bonus points for meeting deadline (31.5.2016) * "3D" Engine * 30 + 15 points * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/3D-Engine-Examples.zip|Examples from previous year]] * Brace up for Final test next week! **Workshop 11** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_11-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_11-Slides.pdf|(PDF)]] **(12.5.2015, 14:00)** * Test Driven Development * What is TDD, why we should do it, how to do it in C# * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/Workshop11-Homework.zip|Workshop template]] * Assignment * Provide complete code coverage for Heap class * Are there any bugs? * //10 points + 3 (meeting the deadline)// **Workshop 10** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_10-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_10-Slides.pdf|(PDF)]] **(5.5.2016, 14:00)** * Extreme Programming * Pair programming in practice * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/Workshop10-Template.zip|Workshop template]] for "Fixed Layout Tree" * Assignment * Continue with the code you have created during the workshop * Implement flexible layouting of the tree and a way to add multiple numbers at once * Deadline: 12.5.2016 * //10 points// + //5 bonus points// (meeting the deadline) **Workshop 9** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_09-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_09-Slides.pdf|(PDF)]] **(24.4.2016, 14:00)** * Graphics, WinForms, Exceptions, Lot of fun! * And two cool assignments to fight with! * Sierpinsky Triangle * 5 points * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/Workshop09.zip|Startup solution(ZIP)]] * Some tricks how to handle resizing / start drawing * Graph algorithms * Component labeling (5 points) * Transitive closure (5 points) * Minimum spanning tree (5 bonus points) * //10 + 5 points// * Some article about [[http://www.codeproject.com/Articles/165443/Disposing-GDI-Objects-in-C-NET|GDI objects in C#]] and why you have to dispose them **Workshop 8** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_08-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_08-Slides.pdf|(PDF)]] **(21.4.2015, 14:00)** * Dynamic Programming * No assignment today, you have one more week to polish your simulations! **Workshop 7** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_07-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_07-Slides.pdf|(PDF)]] **(14.4.2016, 12:20)** * Theme Hospital Lite! * **Assigment 7** * Finish the implementation of the discrete simulation * Create a program that can read "from the file" and outputs to file. * //30 points// + up to //10 bonus points// for the best solutions! * Example inputs * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/ThemeHospitalLite-Inputs.zip|Inputs 1-5]] * Small change: TIME spearator is '.' instead of ':' ... **Workshop 6** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_06-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_06-Slides.pdf|(PDF)]] **(8.4.2016, 14:00)** * Theme Hospital Lite! * **Assigment 6+7** * Start implementing discrete simulation of the hospital **Workshop 5** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_05-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_05-Slides.pdf|(PDF)]] **(4.4.2016, 17:20)** * Theme Hospital Lite topic introduced * **Assigment 5** * Navigating around the hospital * Input files as well as detailed description can be [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PRG2-05-ThemeHospitalLite-Part1-TaskDescription.zip|downloaded here]] * Create a program that can read "from the file" and outputs to Console. * //10 points// **Workshop 4** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_04-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_04-Slides.pdf|(PDF)]] **(24.3.2015)** //No-Test links included// * **Snake Reloaded** * OOP hints * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/Snake-Full.png|Full snake UML]] * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/TheSnake.zip|Snake Stub (VS2015 solution)]] * **Assigment 4** * See the slides ... create Snake game! * You won't find the assignment inside CodEx ... here we're creating the real game ;) * //10+3 points// ... so its **20+3 points** in total! **Workshop 3** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_03-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_03-Slides.pdf|(PDF)]] **(10.3.2016)** //Test links included// * **Snake Unleashed** * We're going to create a simple text-based "Snake" game in here * Practicing OOP while using C# language * Console magics, Time * **Assigment 3** * See the slides ... create Snake game stub according to UML! * You won't find the assignment inside CodEx ... here we're creating the real game ;) * //10 points// * **[[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/UMLInExamples.zip|UML in Examples]]** * Link contains some answers for Test 03 (in the form of C# projects) as well as examples of two extra UML diagrams **Workshop 2** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_02-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/PrgII-2016-Workshop_02-Slides.pdf|(PDF)]] **(3.3.2016)** //Test links included// * **C#, OOP, UML introduction** * Visual Studio 2013 basics * Variables, Functions * Console and Reading, Writing * Be sure to practice [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/Tahak na klavesy C-Sharp.pdf|VS2015 keyboard shortcuts]] * **Assigment 2** * See CodEx tasks 2.1 and 2.2 * //5+5 points// **Workshop 1** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/ProgII-2016-Workshop_01-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/ProgII-2016-Workshop_01-Slides.pdf|(PDF)]] **(25.2.2016)** //Test links included// * **Programming I Revisited - Part 1** * Simple Pascal program with twists * Recursion - HaNoi * C# program :-b * Robot in 3D * **Assigment 1** * Send me an email to [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] * Subject: Programming II – 2016 – Assignment 01 * Content: * Your name * Your CUNI number * Your CoDex nick * //5 points// + Workshop URL + Access to scoring sheet