Object-Oriented Programming 2023/24

Project


During the teaching period, you are going to work on a project of developing a program in Java on a given topic. The assignment is complex and is (roughly) defined by this text as a whole.

The project consists of the following parts with the corresponding weighting and submission deadline (all parts are compulsory):

You will have to maintain your code using GitHub. The teacher will instruct you how to do so.

^


Project Objective

This year's general topic is:

Elections and Voting

Elections and voting take place at various levels. Sometimes they involve a simple choice between two or more options, but often there are more questions about which decisions are made. They are applied in political systems, but also in the management of organizations or competitions. In some communities, they are practically a means of their management. Records of previous elections and votes and relationships among them can be helpful in planning future ones. This can also help keep track of regulatory restrictions.

Prepare the objective of developing a software system within the area defined by the general topic (approximately 200 words). Focus on a selected aspect (no need to cover everything). Provide your own, sufficiently descriptive title. Do not repeat the basic topic.

Even tough the objective should be phrased in an application manner – i.e., you shouldn't use solution domain notions in it (object, class, and such) – bear in mind how are you going to employ object-oriented features of Java in it. Make a sufficient space for this. Don't be afraid to phrase your objective more broadly – that doesn't mean you will have to implement everything.

In the program that you will be creating according to your objective, it will not be necessary to solve network issues or concurrent use by multiple users (e.g., real communication between users across the network). It is sufficient to imitate such activities (e.g., you can log on as one user, and then as another one). Also, it is not necessary to solve security. Focus on object-oriented modularization.

Support your objective by an object diagram of typical situation in the system you anticipated with an initial class diagram (you will be capable of dealing with this after the first two lectures). Focus on few most important objects and, afterwards, generalize them into classes between which you will determine primarily the relationships of association (general relatedness) and inheritance. Identify few important attributes and methods in these classes. You will learn of a simple and flexible tool for drawing diagrams in exercise 3, but you can draw your diagram in whatever tool you prefer (a scan of a diagram drawn on paper is also acceptable). You may include the onject diagram in your project objective.

Consult your objective with your teacher at exercises in a timely manner.

To be submitted: a text in the PDF format

Assessment

For a project objective to be eligible for a nonzero assessment, the following conditions must be fulfilled:

  1. It must be within the general topic.
  2. It must be provided with a specific name.
  3. The text must be comprehensible and clearly formulated.

The assessment is as follows:

^


Working Program Version

To be submitted: program (source code) into the GitHub classroom created for this course

Assessment

For a working program version to be eligible for a nonzero assessment, the following conditions must be fulfilled:

  1. It must work and cover the principal parts of the assignment and project objective.
  2. The submitted source code must include all necessary files and it must be possible to compile it in the Eclipse environment installed in the laboratory where the exercises are held.
  3. It must have been present at least once at the satisfactory level to the teacher.

The assessment is as follows:

^


Program and Documentation

The core of the project is an object-oriented program in Java created according to the assignment.

The program is accompanied by a documentation that consists of two parts:

In the project realization report inform briefly (in a few pages) about your project. Embrace the following:

The Javadoc documentation is the documentation generated directly out of the program using the javadoc tool in the HTML format. Supply sufficiently clear comments in the form appropriate for the javadoc tool to all elements of your program.

To be submitted: program (source code) and documentation into the GitHub classroom created for this course

Assessment

For a program and documentation to be eligible for a nonzero assessment, the following conditions must be fulfilled:

  1. The program must work and correspond to the project assignment approved by the teacher and to principal teacher's requirements that occurred during the project realization
  2. The submitted source code must include all necessary files and it must be possible to compile it in the Eclipse environment installed in the laboratory where the exercises are held.
  3. The program must embrace a meaningful inheritance between own classes and overriding of own methods.
  4. Encapsulation has to be employed in the program.
  5. The program must embrace sufficient comments to understand the code.
  6. The documentation must correspond to the program and it must contain a class diagram.
  7. A student has to be capable of answering all the teacher's questions regarding the project during the final presentation.

The main criteria in project assessment are the extent to which the assignment is fulfilled, application of object-oriented mechanisms in the program (an appropriate use of inheritance, encapsulation, and aggregation), code organization, and documentation quality.

Further criteria embrace:

The assessment is as follows:

^


Final Project Presentation

The final project presentation is a part of the project submission. The project that has not been presented will not be accepted.

After the final presentation, your teacher will announce you your approximate descriptive assessment. You will receive the definitive decision including the decision whether your project fulfills the acceptance conditions via AIS after a detailed project inspection.

To be submitted: an oral presentation at 11th or 12th exercise according to the instruction given by the teacher

Marking

The marking is as follows:

^



Valentino Vranić
vranic at stuba.sk