Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
| Assessment Details and Submission Guidelines | |
| Unit Code | MN404 – T4 2020 |
| Unit Title | Fundamentals of Operating Systems and Programming |
| Assessment Type | Individual Assignment |
| Assessment Title | Assignment 2 – Nims Modified game |
| Purpose of the assessment (with ULO Mapping) |
This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements in them: a. Describe the role of Operating Systems (OS) and its different subsystems in controlling computer hardware b. Demonstrate competency in the use of a command line interface to operate and perform simple OS administration c. Apply principles of abstraction and problem solving in an object-oriented programming language d. Apply knowledge of programming constructs in developing computer programs e. Create programs based on incremental development processes of designing, coding, testing and debugging. |
| Weight | 30% of the total assessments |
| Total Marks | 65 marks |
| Due Date | Week 9 or 10 laboratory class – Mandatory Progress check Week 11 laboratory class – Final submission of Assignment 2 (Sunday) |
| Submission Guidelines |
• All work must be submitted on Moodle by the due date along with a title Page. • The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) font and 2.54 cm margins on all four sides of your page with appropriate section headings. • Reference sources must be cited in the text of the report, and listed appropriately at the end in a reference list using IEEE referencing style. |
| Extension | If an extension of time to submit work is required, a Special Consideration Application must be submitted directly in AMS. You must submit this application three working days prior to the due date of the assignment. Further information is available at: https://www.mit.edu.au/about-us/governance/institute-rules-policies andplans/policies-procedures-and-guidelines/assessment-policy |
| Academic Misconduct |
• Academic Misconduct is a serious offence. Depending on the seriousness of the case, penalties can vary from a written warning or zero marks to exclusion from the course or rescinding the degree. Students should make themselves familiar with the full policy and procedure available at: https://www.mit.edu.au/about-mit/institute-publications/policiesprocedures-and guidelines/AcademicIntegrityPolicyAndProcedure. For further information, please refer to the Academic Integrity Section in your Unit Description. |
MN404 Fundamentals of Operating Systems and Programming Page 2 of 6
Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
Academic Integrity:
For assignments, students are encouraged to consult each other, the lecturer, tutor or anyone
else for that matter. However, the assistance offered or accepted should not go beyond a discussion
of the problem and a sketch of a solution. But in your assignment, do not use any written material
from the discussion/website/book. If you can reconstruct the discussion and complete the solution on
your own, then you have learned the material (and that is the objective of this course!).
Assignment 2 Specification
Write a detailed algorithm and a program that plays the modified version of the ancient Chinese
game of NIM. In this game, the person who runs your program will be one of the two human
players, your program will be a simple Artificial Intelligence (AI) that will serve as the other player,
as well as provide the narrative for the game and keep score, invite a friend to be the third player.
Your program must keep score impartially while participating in the game, but this is not a difficult
task for the computer.
Rules of the Game:
• Number of participating Players: 2 students and 1 computer
• The player who goes first shall define the number of stones in the pile. The number must be
a random number between 20 to 50. You may use built-in random number generation
function
• Each player then removes some number (between 1 to 3) of stones from the pile in turn until
one player removes the final stone.
• The player who goes first:
I. Provides the number of stones to be placed in the pile,
ii. Removes the first set of 1 to 3 stones
• Other player removes a set of 1 to 3 stones
• The players then take turns (iteration) until the final stone is removed.
• The player who removes the final stone is the winner (student player 1, student player 2 and
the computer).
The program must perform the following:
• To display a brief description of the game when the game commences. Computer shall
introduce itself as one of the AI player, and prompt the human players for his or her names
along with their MIT Ids. 2 marks
• Interactive program to accept the inputs from the players. 1 mark
• Display a greeting to the human player that incorporates the name provided in response to
the prompt: Welcome <user’s name> to the game of picking Stones. 4 marks
MN404 Fundamentals of Operating Systems and Programming Page 3 of 6
Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
• The user’s name must be output in proper name case (i.e., Sentence case starting with upper
case for the first letter) regardless of the case the user types in. 4 marks
• The users shall input the number of stones to be picked either by using a standard random
number generator function or may input according to their own strategy but the number
should be less than or equal to three (3). 3 marks
• Front end validation – The program must reject and display a valid message if the number of
stones to be removed are either less than one (1) or more than three (3) and remind them
the game constrains. Prompt that player to re-enter an appropriate number. 2 marks
• The computer as a player shall use the following strategy: Divide the remaining number of stones
by three. If the remainder is zero, then two stones are removed, or else one stone is removed.
For example, if the remaining number of stones is nine or fifteen, then two stones are removed;
if the remaining number of stones is eight or ten, then one stone is removed. 4 marks
• Both the human players shall have their own strategies to play. 3+3 marks
• When one of the player has won a game, the program must output a congratulatory message
naming the winner along with ID. 2 marks
• Your program should be menu driven, meaning, that it should allow the users to play additional
games of NIM as long as he/she enters a “y” or “yes” (lowercase or uppercase) in response to a
“Do you want to play again?” prompt. 2 marks
The assignment report has to include the following sections:
• User Requirements:
o Include all the user (assignment) requirements here.
o For example: display messages, number of players, menu driven front end validation etc.
• Analysis:
Analysis often requires the programmer to learn some things about the problem domain
and that information the user will have to provide. Also, it should specify what the program
is going to do. In this case, the problem domain would be the logic used to play the modified
game. The user shall provide the required inputs.
• Design:
The design phase has to describe how the program is going to do the desired task. This
usually involves writing an algorithm or a flow chart in fact, algorithms are more often
written in a somewhat stylized version of English called pseudocode.
Although there are no precise rules governing the syntax of pseudocode, in your pseudocode
you should strive to describe the essential elements of the program in a clear and concise
manner. Note that this pseudocode closely resembles Python code, so the transition to the
coding step should be straightforward.
MN404 Fundamentals of Operating Systems and Programming Page 4 of 6
Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
• Implementation Phase:
In this phase the complete code in python without any syntax and semantic errors must be
completed. The complete code with proper indentation has to be pasted here along with
sample inputs and outputs. This phase to include all the specifications provided above.
• Testing: Only thorough testing can build confidence that a program is working correctly.
Testing is a deliberate process that requires some planning and discipline on the
programmer’s part. It would be much easier to turn the program in after the first successful
run to meet a deadline or to move on to the next assignment.
Once all the errors are debugged, set of all possible inputs are to be provided. Even
though the range of the input numbers on a computer is finite, testing all of the possible
combinations of inputs would be impractical. So, the challenge is to find a smaller set of
inputs, called a test suite, from which we can conclude that the program will likely be correct
for all inputs. The number and type of input samples have to cover all possible cases of
validity checks of encryption and decryption.
Submission Guidelines:
Your assignment should be completed according to the General Guidelines for Presentation
of academic work. Your submission should contain the following:
The assignment Word file that will be submitted shall include:
a) Link to a 4-5 min video explaining the logic used in the algorithm, explain the code in detail
and demonstrate various test cases of the program
b) Algorithm/flow chart in detail
c) Complete program considering the aforementioned requirements in Python without syntax
errors (cut and paste the complete code).
d) Must include appropriate and sufficient comments in the source code. Marks would be
deducted if the comments are not meaningful.
e) Screen shots of initial compilation results with syntax errors.
f) Troubleshooting the syntax errors (at least 4 errors that are fixed)
g) Sufficient screen shots showing all possible outputs obtained. The file name must have your
student ID as part of its name.
MN404 Fundamentals of Operating Systems and Programming Page 5 of 6
Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
Marking Guide of the assignment
| Sections to be included in the Assignment |
Description of the sections | Marks allocated |
| User requirements Analysis Phase Design Phase Algorithm or Flowchart Video |
To cover all requirements mentioned in the assignment along with any relevant assumptions made Define the problem domain, the info user has to provide and what output is expected. Detailed flowchart or algorithm that will help in implementation Link to a 4-5 min video explaining the logic used in the algorithm, explain the code in detail and demonstrate various test cases of the program |
5 Marks 5 Marks 5 Marks 10 Marks |
| Implementation Phase Program Testing Phase |
Error free, well commented Python program for the algorithm without any discrepancy between the program and the algorithm. |
30 Marks 5 Marks (Relevant and critical 5 test cases) |
| References | Minimum of 4 references used along with in-text citations |
2Marks |
| Progress check of the assignment in week 9 or week 10 |
3Marks | |
| Total marks | 65 Marks |
MN404 Fundamentals of Operating Systems and Programming Page 6 of 6
Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Shiv Sharma November, 2020
Marking Rubric
| Tasks | Excellent (HD) |
Very Good(D) |
Good ( C ) | Satisfactory(P) | Unsatisfactory(F) |
| User Requirements | Has provided complete set of user requirement s |
Has provided all of the user requireme nts |
Has provided most of the user requirement s |
Has provided some user requirements |
Has not provided the requirements |
| Analysis Phase (Analysis of the Problem domain, all possible inputs and outcomes of the program are identified and presented) |
Analysis is complete and optimal |
Analysis carried out is very good |
Analysis carried out is moderate |
Sufficient analysis is not carried out |
No analysis is carried out |
| Design Phase (The algorithm /Flowchart) Logic used in the algorithm/flow chart with high degree of clarity. Considered all possible code flows. |
Optimal algorithm with all possible code flows are considered |
Very good logic and all required code flows are considere d |
Good logic and some code flows are considered |
Some logic and few code flows are considered. |
Relevant Logic not considered. |
| Algorithm/flow char presentation Video |
Excellent presentation . Flawless |
Good presentati on |
Moderate | Ok | No presentation |
| Implementation Phase |
Perfect code with complete solution |
Good code with complete solution |
Good code but with not complete solution |
Poor coding and incomplete solution |
No solution provided. |
| Testing | All possible test cases considered. Unit and integrated test cases considered |
Most of the test cases considere d. Integrated cases only |
Considered test cases are not adequate |
Few test cases are considered |
No test cases |
| Demo Video | Exceptional demonstrati on of the complete program logic and test cases |
Very good Demonstr ation of the complete program logic and test cases |
Good demonstrati on of the program with some test cases |
Poor presentation |
No presentation |
| References | Relevant and good references |
Good references |
Moderate references |
Few references | No references |