======Programming II - Labs 2016/2017====== 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 2016/2017 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 at [[http://kam.mff.cuni.cz/~perm/programovani/NPRG031/|Martin Pergl]] and [[http://ksvi.mff.cuni.cz/~holan/|Tomáš Holan]]. The practice lessons (labs) are/were backed by many, for this [[https://is.cuni.cz/studium/rozvrhng/roz_predmet_gl.php?id=b91257df0b9999e9dec8fd01d7630512&tid=&skr=2016&sem=2&gl=16bNPRG031x11&fak=11320|group]], concretely, by [[http://gamedev.cuni.cz/contacts/|Jakub Gemrot]] ======Dates====== Tuesdays's labs, 12:20, SW1, Jakub Gemrot: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]] ======How to pass the labs====== * Obtain **180 points** from labs * 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 [[https://docs.google.com/spreadsheets/d/19Q6NrANjWHFUckeEXoVFsxWO7IdESR5X4XmwQU4CnqE/edit?usp=sharing|spreadsheet]] (GDrive) * Note that some homeworks will have STRICT deadlines, some of them will be quite relaxed... * Pass lab exam (15. / 22. 5. 2017) * Come up with semester project and deliver * Idea deadline: 11.4.2017 * Description deadline: 2.5.2017 ======Labs: History====== **Lab 12** [[https://drive.google.com/open?id=0B49ID9s3-zhTRXZDeTN2dm8wX3M|(PDF)]] **(9.5.2017)** * Minimax * How to play 2-player games * Assignment * Create AI player for TicTacRow (...Col...) * [[https://drive.google.com/open?id=0B49ID9s3-zhTV0Y3TmlWdzRhdEU|TicTacRow]] * //10 points// * DEADLINE: not really ... 30.9.2017 23:59 ... be reasonable! **Lab 11** [[https://drive.google.com/open?id=0B49ID9s3-zhTUk1hZ3RZMVBUaDQ|(PDF)]] **(2.5.2017)** * Test Driven Development * What is TDD, why we should do it, how to do it in C# * Assignment * Provide complete code coverage for Heap class * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/Workshop11-Homework.zip|Assignment project]] * Have you found any bugs in there? * //10 points + 3 (meeting the deadline)// * DEADLINE: 16.5.2016 23:59 **Lab 10** [[https://drive.google.com/open?id=0B49ID9s3-zhTYjBZb3pHTHd1Wlk|(PDF)]] **(25.4.2017)** * 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 * //10 points//, even after deadline + //5 bonus points// (meeting the deadline) * DEADLINE: 9.5.2017 **Lab 09** [[https://drive.google.com/open?id=0B49ID9s3-zhTUVpLdUxvYUp6TlU|(PDF)]] **(18.4.2017)** //Test links included// * GDI+ and cool stuff! * Assignments * 9.1 Drawing Sierpinsky Triangle * 5 points * **STRICT** DEADLINE: **24.5.2017 23:59**, no points after deadline * 9.2 Graph algorithms * Springy: 10 points * Optional - Component labeling: 5 bonus points * Optional - Graph transitive closure: 5 bonus points * Optional - Minimum spanning tree: 5 bonus points * **STRICT** DEADLINE: **24.5.2017 23:59**, no points after deadline * [[https://drive.google.com/open?id=0B49ID9s3-zhTNlRyelluZVdGV3M|Example graph inputs]] * 9.3 "3D" "Engine" * 30 points + 15 bonus points * [[https://drive.google.com/open?id=0B49ID9s3-zhTdW1EdkppTDhQRlk|Examples solutions from 2014-2015]] * DEADLINE: not really ... 30.9.2017 23:59 ... be reasonable! **Lab 08** [[https://drive.google.com/open?id=0B49ID9s3-zhTVTdwRDZFaHpfMW8|(PDF)]] **(11.4.2017)** //Test links included// * Dynamic programming! * Problems were/will be solved in the lab **Lab 07** [[https://drive.google.com/open?id=0B49ID9s3-zhTVWxrWUNSajZtRjQ|(PDF)]] **(4.4.2017)** //Test links included// * [[https://drive.google.com/open?id=0B49ID9s3-zhTdWFMN3FQb0JHYVE|C# Method Quiz]] - check how much you do know about method declaration and inheritance * **Assignment 6** * Implement ThemeHospital Simulation! * [[https://drive.google.com/open?id=0B49ID9s3-zhTT3JPWW9aRkFOYWM|Example of inputs]] * Points: 20 * DEADLINE: not really ... 30.9.2017 23:59 ... be reasonable! **Lab 06** [[https://drive.google.com/open?id=0B49ID9s3-zhTOU5FV3ZUd2hBaFE|(PDF)]] **(28.3.2017)** //Test links included// * **Assignment 5** * Implement ThemeHospital navigation! * [[https://drive.google.com/open?id=0B49ID9s3-zhTRzFoUmUtZV9MUVU|Examples of inputs]] (the same as in Assignment 4) * Points: 10 * DEADLINE: not really ... 30.9.2017 23:59 ... be reasonable! **Lab 05** [[https://drive.google.com/open?id=0B49ID9s3-zhTS0V4YlQ5SkRNT1U|(PDF)]] **(21.3.2017)** //Test links included// * **Assignment 4** * Implement ThemeHospital input loader! * [[https://drive.google.com/open?id=0B49ID9s3-zhTRzFoUmUtZV9MUVU|Examples of inputs]] * Points: 10 * DEADLINE: 28.3.2017 **Lab 04.5** * **Assignment 3.5** * Finish the SNAKE implementation! * You can use the following stub [[https://drive.google.com/open?id=0B49ID9s3-zhTMG0zUFNJSFZGZnM|Snake STUB]] * Consult [[https://drive.google.com/open?id=0B49ID9s3-zhTTm1JZU84ZWlqOGs|Full Snake UML]] * And see [[https://drive.google.com/open?id=0B49ID9s3-zhTWkV1VjU0LU90bG8|extra slides]] **Lab 04** - [[https://drive.google.com/open?id=0B49ID9s3-zhTLTR4ckc3TThZUHc|(PDF)]] **(14.3.2017)** //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 * **[[http://artemis.ms.mff.cuni.cz/gemrot/lectures/prg2/2016/UMLInExamples.zip|UML in Examples]]** * Link contains some answers for Test 04 (in the form of C# projects) as well as examples of two extra UML diagrams * **Assignment 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// * DEADLINE: not really ... 30.9.2017 23:59 ... be reasonable! **Lab 03** - [[https://drive.google.com/open?id=0B49ID9s3-zhTU0FFNXhBcTFsOUk|(PDF)]] **(7.3.2017)** //Test links included// * **C# and OOP - Gentle Introduction** * C#, OOP, UML introduction * GameBook assignment * [[https://drive.google.com/open?id=0B49ID9s3-zhTdDFMa3VmdVItNTg|Project Stub 2]] * [[https://drive.google.com/open?id=0B49ID9s3-zhTaF9DdUpiWU5JY2M|Project Stub 3]] * Deadline for points: 14.3.2017 (!!!) **Lab 02** - [[https://drive.google.com/open?id=0B49ID9s3-zhTWkJTZ05uT2xGN1U|(PDF)]] **(28.2.2017)** //Test links included// * **C# and OOP - Gentle Introduction** * C#, OOP, UML introduction * GameBook assignment * [[https://archive.org/details/gamebooks|GameBook Archive]] * note that books full text were scrapped by OCR, they contain errors * you have to send me an assignment with 3 books of your choice that you can load * you can adjust full texts as much as you want as long as you preserve the book contents (manual fixing is possible) * [[https://drive.google.com/open?id=0B49ID9s3-zhTMV80TGxMZlJNZ00|Project Stub]] * 10 points * **STRICT** DEADLINE: **6.3.2017 23:59**, no points after deadline **Lab 01** - [[https://drive.google.com/open?id=0B49ID9s3-zhTd2dzRXVlb0I1am8|(PDF)]] **(21.2.2017)** //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 – 2017 – Assignment 01 * Content: * Your name * Your CUNI number * Your CoDex nick * //5 points// + Lab URL + Access to scoring sheet * **STRICT** DEADLINE: **27.2.2017 23:59**, no points after deadline