Format

Group project and presentation.


Instructions

  1. Form a group of 2 to 5 people
  2. Decide what to work on.
    • One of the games at the bottom of this page (not already chosen by another group)
    • A project of your choice (does not need to be a game, needs to be approved by us)
  3. 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, 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
    • Answer our questions about the project.
      • 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.
      • We will look for functional style code (e.g., Java Streams).


    Games

    Develop a command-line version of one of the following games.

    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: Monday, 27 September 2021, 4:17 PM