======Programming II - Workshops 2014/2015====== 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=&gl=14bNPRG031x06&fak=11320&skr=2014&sem=2|group]], concretely, by [[http://gamedev.cuni.cz/contacts/|Jakub Gemrot]] ======Dates====== Monday's workshops, 15:40, SW1, Jakub Gemrot: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] ======How to pass the practice====== * You have to either: - Obtain **170 points** from workshops - Obtain at least **145 points** + **do an** extra workshop (**exam**) during 25.5. * You can get points by: - **Attending workshops** and writing quick tests at their beginning - **Doing homeworks** (and submitting them to CoDex) * Details can be read within this [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-PracticeTerms.xlsx|XLSX]] ======Workshops: Future====== ======Workshops: History====== **Workshop 12** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_12-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_12-Slides.pdf|(PDF)]] **(11.5.2015, 15:40)** * Graph Algorithms * Component labeling, Transition closure, Kruskal's algo, "Sringy" algo for graph layouting * Assignment * Implement "Springy" algo * Implement component labeling + Transition closure (using Visitor pattern) * Bonus: implement Kruskal's algo * //10 points + 5 (Kruskal) + 3 (meeting the deadline)// **Workshop 11** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_11-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_11-Slides.pdf|(PDF)]] **(4.5.2015, 15:40)** * 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/2015/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/2015/PrgII-2015-Workshop_10-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_10-Slides.pdf|(PDF)]] **(27.4.2015, 15:40)** * Extreme Programming * Pair programming in practice * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/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 * //10 + 5 points// **Workshop 9** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_09-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_09-Slides.pdf|(PDF)]] **(20.4.2015, 15:40)** * 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 * Surprise! :-) * //30 + 15 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/2015/PrgII-2015-Workshop_08-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_08-Slides.pdf|(PDF)]] **(13.4.2015, 15:40)** * 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/2015/PrgII-2015-Workshop_07-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_07-Slides.pdf|(PDF)]] **(30.3.2015, 15:40)** * 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/2015/ThemeHospitalLite-Inputs.zip|Inputs 1-5]] * Small change: TIME spearator is '.' instead of ':' ... **Workshop 6** [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_06-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_06-Slides.pdf|(PDF)]] **(16.3.2015, 15:40)** * Theme Hospital Lite! * **Assigment 6** * Start implementing discrete simulation of the hospital **Workshop 5** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_05-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_05-Slides.pdf|(PDF)]] **(16.3.2015, 15:40)** * 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/2015/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/2015/PrgII-2015-Workshop_04-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_04-Slides.pdf|(PDF)]] **(9.3.2015)** //Test links included// * **Snake Revisited** * OOP hints * **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+6 points** in total! **Workshop 3** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_03-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_03-Slides.pdf|(PDF)]] **(6.3.2015)** //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! * You won't find the assignment inside CodEx ... here we're creating the real game ;) * //10+3 points// **Workshop 2** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_02-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_02-Slides.pdf|(PDF)]] **(16.2.2015)** //Test links included// * **C#, OOP, UML introduction** * Visual Studio 2013 basics * Variables, Functions * Console and Reading, Writing * **Assigment 2** * See CodEx tasks 2.1 and 2.2 * //5+5 points// **Workshop 1** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_01-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2015/PrgII-2015-Workshop_01-Slides.pdf|(PDF)]] **(16.2.2015)** //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 – 2015 – Assignment 01 * Content: * Your name * Your CUNI number * Your CoDex nick * //5 points// + Workshop URL + Access to scoring sheet