CSP1150D Programming Principles

CSP1150D Programming Principles assignment tests your understanding of and ability to apply the programming concepts we have covered in the unit so far, including the usage of variables, input/output, data types, selection,iteration, functions and data structures.


CSP1150D Programming PrinciplesAs emphasised in the case study of Module 5, it is important to take the time to properly design a solution before starting to write code. Hence, this assignment requires you to write and submit pseudocode of your program design as well as the code for the program. Furthermore, while your tutors are happy to provide help and feedback on your assignment work throughout the semester, they will expect you to be able to show your pseudocode and explain the design of your code. Write a separate section of pseudocode for each function in your program.

Assignment Requirements

You are required to design and implement a “Guessing Game” program that generates a random choice and prompts the user to choose. The program determines the winner, reports result to the user and stores number of wins. The program will have multiple levels of difficulty. At the end of the program it will display the results for the user.

Implement all of the following requirements, and ask your tutor if you do not understand any of the requirements.

The program should welcome the user and prompt them to choose Easy, Medium or Hard.

CSP1150D Programming Principles

  • Re-prompt the user until a valid response (1, 2 or 3) is entered. Once a difficulty has been chosen, print a message to confirm the selected difficulty and set a variable as follows:
  1. The program should then loop a number of times equal to rounds.
    1. The program should then randomly choose ‘rock’, ‘paper’ or ‘scissors’. Use a function to get the choice and return it to the program.
    2. The user should then be asked to choose between ‘rock’, ‘paper’ or ‘scissors’. Another function should be used to return the users choice. If the user chooses something other than rock, paper or scissors they should be asked to re-enter.
    3. The program will determine winner and display who won. A third function should do this – make sure you can count how many wins.
  1. Once the user has completed the number of rounds the program should display the results. Then the program will ask the user if they would like to try again and redisplay the difficulty menu and run again if they enter yes.

Remember: Rock > Scissors > Paper > Rock …

Submission of Deliverables

Once your assignment is complete, submit both your pseudocode (PDF or DOC format – no .pages files) and source code (“.py” file) to the appropriate location on moodle. You will need to create a ZIP file (NOT RAR, ARJ or other archive) and submit the one file. An assignment cover sheet is not required, but be sure to include your name and student number at the top of both files. 

Referencing, Plagiarism and Collusion

The entirety of your assignment must be your own work(unless otherwise referenced) and produced for the current instance of the unit. Any use of unreferenced content you did not create constitutes plagiarism, and is deemed an act of academic misconduct. All assignments will be submitted to plagiarism checking software which includes previous copies of the assignment. Remember that this is an  individual assignment. Never give anyone any part of your assignment – even after the due date or after results have been released. Do not work together with other students on individual assignments – helping someone by explaining errors in their code/logic or directing them to the relevant resources is appropriate, but doing it for them or showing them how you did it is not. An unacceptable level of cooperation between students on an assignment is collusion, and is deemed an act of academic misconduct. If you are uncertain about plagiarism, collusion or referencing, simply email your tutor, lecturer or unit coordinator and ask. 

Marking Key

Marks are allocated as follows for this assignment. CriteriaMarks

These marks are awarded for submitting pseudocode/flowcharts which suitably represent the design of your source code. Pseudocode and flowcharts will be assessed on the basis of “does it help in understanding/describing the structure and flow of the program?”




These marks are awarded for submitting source code that implements the requirements specified in this brief. Code which is not functional or contains syntax errors will lose marks, as will failing to implement requirements as specified.



 Code Quality

These marks are awarded for submitting well-written source code that is efficient, well-formatted and demonstrates a solid understanding of the concepts involved. This includes appropriate use of commenting and adhering to best practise.