Programming II - Labs 2018/19
This page contains materials for the practice lessons of the Programming II (NPRG031) course that is being/has been taught during summer semester 2018/2019 at Charles University in Prague, Czech Republic. The course official web page is/was to be found at Martin Pergl and Tomáš Holan. The practice lessons (labs) are/were backed by many, for this group, concretely, by Jakub Gemrot
Permalink: http://bit.ly/mff-uk-prg2-labs-2019
Contact
Jakub Gemrot: jakub.gemrot@gmail.com
Dates
Standard labs - Monday, 14:00
How to get credits
In order to get credits from me, you have to
- Deliver a semester project of your choice
- Pass the labs
- To pass the labs you must obtain at least 90 points by the 13.5.2019
- If you do, then there are two ways how to pass the labs
- Obtain at least 140 points and pass the “final labs test” (this option is available only during “labs test”)
- Obtain at least 170 points (if you fail all the “labs tests”, you have to go for this one)
- You can get points by:
- Attending workshops and writing quick tests at their beginning
- Doing homeworks (and submitting them to ReCodEx or me)
- Details can be read within this spreadsheet (GDrive)
- All homeworks have relaxed deadlines, deliver them anytime you want but heed to the dates above!
Lab Test
- There are going to be 3 opportunities to do the lab final test
- Monday, 13.5.2019, 14:00?, SW2
- Monday, 20.5.2019, 14:00?, SW2
- Monday, 27.5.2019, 14:00?, SW2
Semester Project
- The topic of the semestral project is completely on you! Some suggestions…
- When to choose and settle on a topic, copy, fill and send me the semester project specification template
- Delivery deadline: “up-to-you” = to be negotiated :)
- Apart from the implementation you will also have to create user's manual and programmer's manual
- Follow delivery guidelines when submitting your work
Labs: History
Lab 11 - 6.5.2019
- 2 player games w/ perfect information
- Minimax and Branch-and-bound (aka Alpha Beta for games) discussed at class
- Homework 11
- Create Minimax player for TicTacRow
- Implement you artificial player for this template
- 10 points
Lab 10 - 29.4.2019
- Paint
- Led by Tom Holan
- Agile programming in practice
Lab 09 - 22.4.2019
- GDI & Graphs
- GDI introduction
- Homeworks 09
- Quite a lot of, see slides, choose your favorite!
- Up-to 15+20 points!
Lab 08 - 7.4.2019
- Dynamic Programming
- Yeah, this one I really “like”…
- Homework 08 - Longest common subsequence implementation
- Expect two lines with two strings and output the result of LCS algorithm over them
- 10 points
Lab 07 - 1.4.2019
- Theme Hospital Part 3
- Homework 07 - Theme Hospital Simulation
- see the slides for the homework details
- 30 points
Lab 06 - 25.3.2019
- Theme Hospital Part 2
- Dijsktra, Heap, Debugging and ToString
- Homework 06 - Theme Hospital Path Finding
- see the slides for the homework details
- 10 points
Lab 05 - 18.5.2019
- Theme Hospital Part 1
- Theme Hospital input
- Enums, Dictionary, Regex
- Homework 05 - Theme Hospital Input Parser
- see the slides for the homework details
- 10 points
Lab 04 - 11.3.2018
- OOP - Virtual methods
- Homework 04.1 - The Snake Stub
- see the slides for the homework details
- The Snake Class diagram - not the best, it can be improved, you do not need to heed to this; if you opt to change the architecture, send me your class diagram along with the stub!
- you have to produce just the stub - practice declarations of classes, interfaces, methods, etc. according to UML!
- Example Snake - done by my former student ;)
- 10 points
- Homework 04.2 - The Snake
- see the slides for the homework details
- implement the Snake
- 15 points
Lab 03 - 4.3.2019
- OOP introduction
- Homework 03.1 - Extendable Calc
- see the slides for the homework details
- 10 points
- Homework 03.2 - Draft UML for CalcWithMemory architecture
- see the slides for the homework details
- you can use, e.g., freeware yEd tool for drawing an UML Class diagram
- 8 points
Lab 02 - 25.2.2019
- Tree and Graph crawling using Depth/Breadth-first Search
- Homework 02 - GameBook - Part 2
- see the slides for the homework details
- in a nutshell, you have to create a program that will auto-play me a game book
- once you finish Homework 01, you can email me to receive a new template for this homework
- 15 points
Lab 01 - 18.2.2019
- C# and OOP - Gentle Introduction
- Homework 01 - GameBook - Part 1
- see the slides for the homework details
- in a nutshell, you have to create a program that will allow me to play a game book
-
- you can start your implementation from here
-
- or you can use impl from the lab
- 10 points
Lab 00 - Prequel
- C# CrashCourse
- Learn syntax of C# via examples from the following Visual Studio 2017 Project: C# CrashCourse
- Homework 00 - First Steps in C#
- Then you can try to solve the first 22 small C# programs: C# FirstSteps
- 8 points