Programming II - Labs 2017/2018
This page contains materials for the practice lessons of the Programming II (NPRG031) course that is being/has been taught during summer semester 2017/2018 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-2018
Contact
Jakub Gemrot: jakub.gemrot@gmail.com
Dates
Standard labs - Friday, 10:40, SW2
Optional extra labs - Friday, 12:20, S7
How to get credits
In order to get credits from me, you have to
- Deliver a semestral project of your choice
- Pass the labs
- To pass the labs you must obtain at least 90 points by the 18.5.2018
- 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 test
- Friday, 25.5.2018, 10:40-12:10, SW2
- Friday, 1.6.2018, 9:00-12:10, SW2
- Friday, 15.6.2018, 9:00-12:10, SW2
Semestral 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 semestral 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 10 - 11.5.2018
- Graph Algos
- Graph algos, Springy algo
- Homework 10 - Graph algos
- see the slides for the homework details
- Springy algo 10 points
- Component labeling 5 points
- Transitive closure 5 points
- Visitor pattern 5 points
- Minimum spanning tree 5 points
Lab 09 - 4.5.2018
- WinForms Basics
- Forms, Event, Exceptions
- Homework 09 - Sierpinsky Triangle
- see the slides for the homework details
- 5 points
Lab 08 - 27.4.2018
- Dynamic Programming
- What is Dynamic Programming
- Example problems
Lab 07 - 20.4.2018
- Theme Hospital Part 2
- Path-finding in Theme Hospital
- Dijkstra's algor
- List vs. SortedSet vs. Heap
- Homework 07 - Theme Hospital Navigation
- see the slides for the homework details
- no deadline ;)
- 15 points
Lab 06 - 13.4.2018
- Theme Hospital Part 1
- Theme Hospital input
- Enums, Dictionary, Regex
- Homework 06 - Theme Hospital Input Parser
- see the slides for the homework details
- DEADLINE: 19.4.2018 !!!
- 10 points
Lab 05 - 6.4.2018
- Implementing the Snake
- I've been showing some bits from “how-to implement Snake”
- Example Snake stub will appear in here
- Homework 05 - The Snake
- see the slides for the homework details
- implement the Snake
- you can check the code we've been working on during the lab: Snake - Lab
- 15 points
Lab 04 - 16.3.2018
- OOP - Virtual methods
- Homework 04 - The Snake Stub
- see the slides for the homework details
- 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
Lab 03 - 9.3.2018
- OOP introduction
- Homework 03 - Extendable Calc
- see the slides for the homework details
- you can start from the following code template
- 10 points
Lab 02 - 2.3.2018
- 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 - 23.2.2018
- 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 download more developed version 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