Format and instructions
Completion requirements
Format
Group project and presentation.
Instructions
- Form a group of 2 to 5 people.
- Decide what to work on.
- One of the games at the bottom of this page (not selected by another group).
- A project of your choice (does not need to be a game, needs to be approved by us).
- Contact us.
- Tell us what project you choose and who are the members of the group.
- If you chose a game, we'll double-check that it's not already assigned.
- If you opted for a project of your choice, we'll evaluate its suitability for the exam.
- Work on the project.
- The project should be hosted on GitHub (or a similar service)
- You should practice Continuous Integration while working on the project (you can use Travis CI or other similar tools to implement the CI system).
- To practice Continuous Integration you need automated tests. Use automated tests and Test Driven Development to grow your code.
- Get ready for the exam.
- Contact us to schedule the exam.
- Send us the link of the project repository (at least 2 days before the exam).
- Present your project.
- Show a live demo (working software is the primary measure of progress).
- Describe what steps you took, how you worked together, what tests you used (the commit history could help in doing this).
- Show us the code, highlight design choices you made and why you made them.
- Q&A and project evaluation
- We will read both the production and test code to understand how your software works.
- We will evaluate the quality of your code by using code smells, S.O.L.I.D. principles, coupling, cohesion, adherence to Java specifications.
- We will look for functional style code (e.g., Java Streams).
- We will ask questions about the code, your design choices, and the development approach you used.
Open source software
You are free to use open source softwares (e.g., libraries, open source code) to develop your project as long as the relative license terms are respected (e.g., attribution, copy-left).
Using source code from other projects without proper attribution is not allowed and will be considered plagiarism.
Games
Develop a command-line version of one of the following games.
ReversiDots and BoxesGomokuBriqueFreedom- Crossway
- Quentin
Order and ChaosKonobiTake it EasyItalian Draughts- Pong
Master MindQuoridorMinesweeper- Snake
You can increase the complexity of the project, for example, by adding a graphical user interface, by adding different variations of the game, or by making the game a client-server one. We'll also evaluate such additions and the way they are implemented.
Last modified: Friday, 5 May 2023, 8:46 AM