ICS4U: Computer Science Final Programming Assignment

2024-01-10 ICS4U: Computer Science Final Programming Assignment

Final Programming Assignment: Guess Who?

Guess Who? is a two player game where players use differential yes or no questions to isolate a hidden character. The first player to guess the other player's hidden character wins.

Each player takes their game board of 24 faces and places one of 24 mystery cards in the empty frame in each game board. This card represents the character your opponent has to guess and the character you have to answer questions about.

The youngest player goes first, beginning by asking the other player a characteristic found on one of their 24 visible characters (both players have the same 24 tiles). Example: “Does your character have brown hair?”

If they say, “yes,” the asking player flips over all of the characters without brown hair. If they say, “no,” the asking player flips over the characters that have brown hair. Through the process of elimination, players will eventually be able to “guess” the name of the opponent's character.

Each player gets one yes or no question per turn and may only guess (to win the game) once per game. If a player successfully guesses their opponent's hidden character then they win; if their guess is wrong then they lose.

In groups of 3, your task is to create a GUI based application that allows player vs. computer game play options using concepts taught in ICS4U. The user will not reveal the character they had chosen for the AI of your program to guess until the end of the program. Your program should not ask the user to enter the character’s name or click to select it. The user will choose one from the 24 at their own will. You will also demonstrate your knowledge and understanding of the project management process to complete the required tasks at each stage of the PM process including a detailed class design (UML Diagram).  Once you have determined your group, a document would be shared with you to enter the names of the group members and their key role in the group as well.

The Project Management Process

You must follow the project management process throughout the implementation of this assignment.

1.Initiation Phase:  During this phase you must create a Project Charter Document.  In your Project Charter you must include a description of the project, scope of the project, requirements, cost benefit analysis, budget, a high level: timeline, task list; and a list of deliverables.  Due: Dec. 14


2.Planning Phase:  During the planning phase of the project you must include a:

a.Detailed plan and work breakdown structure and schedule in the form of a GANTT Chart.  Your plan should include details on: scope, finalized list of deliverables, risk management & include steps that will be followed for Change Management.Due: Dec. 20

b.UML Class Diagram – include a detailed UML class design documentDue: Dec. 20

c.Algorithm or pseudocode for the  ProgramDue: Dec. 20

3.Execution Phase: Development of an application and execution of the plan to produce deliverables. Timeline: From start to closure - On-going

Progress Checks: Dec. 14, 21 (beta version), Jan 10

4.Monitoring and Controlling Phase:  Provide evidence of regular status meetings/checkpoints to ensure that the tasks are on track and any changes made are tracked through a Change Management process.  Change management involves documenting change, options for resolution, actual resolution.

Timeline: From start to closure - On-going

5.Closing:  Each student is to meet and discuss their experiences on the project with their group and create a one page reflection paper on their lessons learnt.  This is an individual component, so there should be one submission per student.Due: Jan 16, 2023

The Due date for your final program is:  January 12 by end of class

Rubric for Project Management: Initiation & Planning Process

CriteriaLevel 4 Level 3Level 2Level 1

Initiation: Project description, scope, requirements, cost, budget, timeline, task list, deliverables

/ 10 C/T(2/2) ◻All sections completed in great detail

◻Excellent document layout, very clear and easy to understand

10           9            8◻All sections  completed in good detail

◻Very good document layout, clear and easy to understand

8          7.5            7◻Some sections completed in good detail

◻Good document layout, clear and easy to understand

7          6.5            6◻Only a few sections were completed

◻Document lacked organization and was difficult to understand

5        4        3       2       1      0

Planning

/ 10 C/T(1/2)




UML Class Diagram

/10 C/T(1/1)





Algorithm

/10 C/T(2/2) ◻Gantt charts created with a high level of detail and accurate estimated dates

◻Tasks are evenly distributed

10           9            8◻Gantt charts  created with a sufficient level of detail and accurate dates

◻Tasks are somewhat evenly distributed

8          7.5            7◻Gantt charts are created with a high level tasks breakdown and estimates

◻Tasks are distributed

7          6.5            6◻Gantt charts are created with estimates, however, lacking in detail and accuracy

◻Tasks are distributed, but not evenly

5        4        3       2       1      0

◻All Classes/Objects defined have clear purpose and well defined attributes, behaviours, and relationships using correct symbols,  shapes & cardinality

◻Communicate all s class relationships neatly and accurately. All symbols and relationships are represented correctly

◻All classes/attributes/behaviours are present.  All signatures are complete.

10           9            8◻Most Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols,  shapes & cardinality

◻Communicates class relationships neatly and correctly. Most symbols & relationships are represented correctly

◻Most classes, attributes, behaviours & signatures are complete & present

8          7.5            7◻Some  Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols,  shapes & cardinality.

◻Communicates class relationships neatly and reasonably. Some symbols & relationships are represented correctly

◻Some classes, attributes, behaviours & signatures are complete & present.

7          6.5            6◻Few  Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols,  shapes & cardinality.

◻Communicates class relationships neatly and reasonably. Some symbols & relationships are represented correctly

◻Some classes, attributes, behaviours & signatures are complete & present.

5        4        3       2       1      0

◻ provides all steps in great detail

◻Demonstrates insightfulK/U  of task

◻Algorithm uses very efficient methods

10           9            8◻provides all steps in good detail

◻Demonstrates good K/U  of task

◻Algorithm uses efficient methods

8          7.5            7◻provides most steps with some detail

◻Demonstrates adequate K/U  of task

◻Algorithm uses fairly efficient methods

7          6.5            6◻Incomplete, few  steps that lacked detail

◻Demonstrates minimal K/U  of task

◻Algorithm uses inefficient methods

5        4        3       2       1      0







Rubric for Project Management: Execution, Monitoring & Controlling & Closing Phase

Executing

/10 A (1)◻Students are using class time wisely and are on task ensuring project timelines are being met

10           9            8◻Students are usually using class time wisely and are mostly on task ensuring project timelines are being met

8          7.5            7◻  Students are somewhat using class time wisely and are somewhat on task ensuring project timelines are being met

7          6.5            6◻  Students are occasionally using class time wisely and are occasionally on task ensuring project timelines are being met

5        4        3       2       1      0

Monitoring and Controlling

   /10 A (1)◻Detailed evidence provided for monitoring project variables and schedule against the project plan

◻Corrective actions clearly documented and taken to address issues

10           9            8◻Evidence provided for monitoring project variables and schedule against the project plan

◻Corrective actions documented and taken to address issues

8          7.5            7◻  Some evidence provided for monitoring project variables and schedule against the project plan

◻  Some corrective actions documented and taken to address issues

7          6.5            6◻  Little evidence provided for monitoring project variables and schedule against the project plan

◻  No corrective actions documented and taken to address issues

5        4        3       2       1      0

Closing - Group Dynamics, Interactions, and Communication

(C/T = 1/1)◻Reflection was transparent and revealing adequate details about challenges and strengths of the dynamics of the group

10           9            8◻Reflection was somewhat transparent and revealing adequate details about challenges and strengths of the dynamics of the group

8          7.5            7◻Reflection was vague and provided limited detail about challenges and strengths of the dynamics of the group


7          6.5            6◻Reflection was unclear and did not provide details about dynamics of the group


5        4        3       2       1      0


Rubric for Guess Who? Application

Level 4Level 3Level 2Level 1

Coding Standards

C  /5 (1)

◻Includes name, date, and assignment title.

◻Excellent use of white space.

◻Creatively organized work.

◻Excellent use of; variables, objects/classes, &  methods

◻Fully indented and braces matching

5            4.5        4

◻Includes name, date, and assignment title.

◻Good use of white space.

◻Organized work

◻Good use of; variables, objects/classes, &  methods

◻Mostly Indented and braces matching

4      3.5       3◻Includes name, date, and assignment title.

◻White space for readability

◻Organized work.

◻Good use of variables, methods, and classes

◻Some indented and braces matching

3            2.5        2◻No name, date, or assignment title included

◻Poor use of white space (indentation, blank lines).

◻Disorganized and messy

◻Poor use of variables, methods, and classes (ambiguous naming).

◻Minimal indentation

2           1.5        1          0

Documentation

And Commenting

C    /5 (1)◻Clearly and effectively documented including descriptions of all variables.

◻Specific purpose is noted for each function, control structure, input requirements, and output results

5            4.5        4

◻Clearly documented including descriptions of all variables.

◻Specific purpose is noted for each function and control structure.



4      3.5       3◻Basic documentation has been completed including descriptions of all variables.

◻Purpose is noted for each function.



3            2.5        2◻No documentation included







2           1.5        1          0

Runtime

A  /5 (1)◻Executes without errors excellent user prompts, good use of symbols, spacing in output.

◻Thorough and organized documented testing has been completed and output from test cases is included.

5            4.5        4

◻Executes without errors.

◻User prompts are understandable, minimum use of symbols or spacing in output.

◻Thorough documented  testing has been completed

4      3.5       3◻Executes without errors.

◻User prompts contain little information, poor design.

◻Some testing has been completed.



3            2.5        2◻Does not execute due to errors.

◻User prompts are misleading or non-existent.

◻No testing has been completed.




2           1.5        1          0

Guess Who? GUI Interface

A/T       / 10

Wt: 2◻Extensively applies GUI interface and 2D arrays to create a very user friendly and functional program

10           9          8◻Sufficiently applies GUI interface and 2D arrays to create a user friendly and functional program

8         7.5       7◻Applies GUI interface and 2D arrays to provide a somewhat user friendly and functional program

7         6.5       6◻GUI and functionality is limited




5           4       3         2         1        0

Program Functionality

P V C & Extras

A/T       / 10 Wt: 4◻Level 3 plus…

◻Includes additional complex functions (e.g., save a result, max number of guesses, timer, etc)

10           9          8◻L2 plus: both players take turns

◻Game works as expected with options to guess, i.e. eliminates characters

◻Able play game until a winner is determined

8         7.5       7◻Sometimes allows both players to take turns

◻Game works & options are still limited, i.e. eliminates characters

◻Inconsistently able to play game until a winner is determined

7         6.5       6◻Does not allow players to take turns

◻Game sometimes works correctly and options are limited, i.e. eliminates characters

◻Program contains bugs and game cannot be completed

5           4       3         2         1        0

Artificial Intelligence

A/T       / 10

Wt: 2◻AI uses a complex strategy for choosing an option for eliminating a character

◻AI uses an effective strategy to choose a character to guess

10           9          8◻AI randomly chooses from the available options/questions for eliminating a character

◻AI uses a  strategy to choose a character to guess

8         7.5       7◻AI randomly chooses an option/question for eliminating a character

◻AI randomly  chooses a character to guess

7         6.5       6◻AI is incomplete to not implemented to guess

◻AI is incomplete to not implemented



5           4       3         2         1        0

OOP Design and Application

T      /10 (3)◻Excellent application of  OOP concepts to design two or more objects

◻Attributes, methods & OOP design makes for efficient  program implementation

10           9          8◻Very good application of  OOP concepts to design two or more objects

◻Attributes, methods & OOP design makes for very good  program implementation

8         7.5       7◻Good application of  OOP concepts to design two or more objects

◻Attributes, methods & OOP design makes for good  program implementation

7         6.5       6◻Some application of  OOP concepts to design one or more objects

◻Attributes, methods & OOP design makes for program implementation

5           4       3         2         1        0

Extra Features

A/T       / 10

Wt: 1◻Group added more than three extra features not listed in the above two rows and they work effectively

◻The extra features, enhances the functionality and game playing experience

◻Students will be required to provide a list of extra features they added to the program:


10           9          8❏Group added two to  three features not listed in the above two rows.

❏Circle the features listed on the next column that you have incorporated into your program.

Also please list other features you added that were not a requirement:

◻___________

◻___________

◻___________

8         7.5       7Group added at least one extra  feature  not listed in the above two rows, to make the game playable and more user friendly. We recognize that some additional features are easier to incorporate than some others. Marks would be assigned, taking that into consideration.  

Good interface is a requirement for the program (get name, provide instructions, report results, help if needed, …)

1 player versus AI (required)

Following are some examples of extra features:

◻2 player mode (player versus another player)

◻Timer

◻Error checking if user response and AI results do not match

◻Configuring settings (screen, scores, sound, other features, …)

◻Other: ____________

(check the features you added to your program)

                  7  6    5           4       3         2         1  0