Assignments

The practical aspects of analysis and design are assessed in 3 assignments. Please note that these are part of the examination of the course, they are not meant as exercises or learning materials as such. Prepare for the assignments by studying the course theory, particularly the examples provided.

Groups

In a real situation analysis and design work is hardly made by a single individual but rather in a group. It is also an important experience to be able to communicate with colleagues. Therefore, you have the opportunity to work in small groups; 1-3 people. Everyone in the group must participate actively in the work and be responsible for the group’s work. Therefore it is particularly important that everyone participates in every task and to NOT divide the task among team members (you do this, I do that).

You form these groups yourself and you may change groups between assignments and/or grades.

If you work in a group, one of the group members will manage the repository in GitLab and invite the other members as collaborators. It is important that all group members are active and participate equally in the work. This means that all members should make regular commits and pushes of e.g. implementation.

Examination

During the course, there are final deadlines for a passing grade for each of the assignments. After your final hand in of the assignment, you will receive either a passing grade, a need for completions or a fail. You will get one and only one attempt to fix issues, if you still have not adequately fulfilled all the requirements of the assignment you will need to do the complementary task so that the requirements for the assignment is covered (Yahtzee).

Be prepared to answer questions regarding your assignment, both live (scheduled meeting or tutoring session) and as comments in gitlab. This becomes particularly important in a group setting that you as an individal know the whole of the assignment.

If you use AI support in solving the assignments please note this in the submission and also specify what you used the AI for and if it worked out as planned.

The quality of the design and corresponding implementation is a major point. It is better to have a solid design and good looking implementation than to have every feature implemented.

Higher grades

If your goal is to get a higher grade (more than a passing grade), you still submit your results for the passing grade as stated above, but you continue to work for higher grades and submit these during the last week of the course.

Feedback

Typically you will recieve fedback stating some strong points and weak points of the provided solution. If fixes are needed the problems will be pointed out, but exactly how these should be fixed is up to you to show. E.g. you can get feedback like: There are missing relations in the class diagram, There are hidden dependencies between the view and controller or The model classes has view responsibility.
That is the feedback requires you to understand the materials and know what to do about it, feedback will not tell you change exactly this or do x in this way

Tutoring

Tutoring will be offered both online (slack) and on campus. Tutoring is meant for individual (group) sessions regarding the theory and assignments. Tutoring is offered during scheduled sessions on campus and online via slack for distance students.

Prepare for a tutoring session by having your development environment ready, have specific questions etc. General questions like does X look good are impossible to give a good answer to without spending significant time (that does not exist). Also note tutoring is not supposed solve the assignment for you or tell you exactly what/how to do things - the tutoring is for coaching you in a good direction. The assignment are examinations they are not for practice - you are supposed to show that you fulfill the learning goals of the respective assignment.

Tutoring is for the topic of analysis and design, the actual Java implementation should not be an issue for you at this point.

Asking and answering questions in the slack channels is a good thing! Most likely someone has a good idea and can answer faster than the course tutors. Please, be active and share you knowledge.

Tools and Language

  • We will use git and GitLab to manage the assignments.
  • We will use gradle and GitLabs automatic build-pipeline to maintain a good standard of implementation and code quality.
  • You will use Java as implementation language.
  • There are no particular editors or tools mandated for the diagramming, pen and paper will suffice.

Deadlines 2023

Assignment 1 Passing Grade: 22/9 23:59
Assignment 2 Passing Grade: 9/10 23:59
Assignment 3 Passing Grade: 27/10 23:59

Assignment 1 & 2 Higher Grades: 27/10 23:59 Assignment 3 Higher Grades: 5/11 23:59

Assignment Fixes: Deadline is announced in the merge request comment, if not stated 15 days after the decision of needed fixes.

Examination 2 / Yahtzee First Submission: TBA (likely early 2024)

Examination 3 / Yahtzee Second Submission: TBA (likely August 2024)