✍️ Get Writing Help
WhatsApp

Fundamentals of Operating Systems and Programming

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

For faster services, inquiry about  new assignments submission or  follow ups on your assignments please text us/call us on +1 (251) 265-5102