© 2021, Monash University
FIT9136 Assignment 1
Semester 1 2021
Teaching Associate, Faculty of IT
© 2021, Monash University
© 2021, Monash University
Table of Contents
- Key Information 3
1.1. Learning outcomes 3
1.2. Do and Do NOT 3
1.3. Marking Criteria 3
1.4. Submission details 4 - Getting help 5
2.1. English language skills 5
2.2. Study skills 5
2.3. Things are tough right now 5
2.4. Things in the unit don’t make sense 5
2.5. I don’t know what I need 5 -
Key tasks (100 marks) 6
3.1. Password Generator (10 marks) 6
3.2. Uncommon Statistics (22 marks) 6
3.3. Batch Statistics (30 Marks) 7
3.4. Returning Home (38 marks) 7© 2021, Monash University
- Key Information
Format: Individual
Due date: 5pm 12th April
2021
Weight: 5% of unit mark
1.1. Learning outcomes - design, construct, test and document Python programs;
- demonstrate how basic data types/structures function;
- evaluate different algorithms and analyse their complexity;
- translate problems into algorithms with appropriate implementations by investigating
different strategies for the algorithm development
1.2. Do and Do NOT
Do Do NOT
● Maintain academic integrity1
● Get support early from this unit and
other services in the university
(please check Section 2)
● Apply for special consideration for
extensions2
● Leave your assignment in draft mode
● Submit late (10% daily penalty
applies)3
● Submission is not accepted after 7
days of the due date, unless you have
special consideration.
● Import any libraries
1.3. Marking Criteria
Your work will be marked on
Functionality Correctly working program 60%
Code
Architecture
Algorithms, data types, control structures and use
of libraries
10%
Code Style Variable names, readability, clear logic 10%
Documentation Program comments, clarity and connection to
code
20% - https://www.monash.edu/rlo/re…
- https://www.monash.edu/exams/…
- eg: original mark was 70/100, submitting 2 days late results in 50/100 (20 marks off). This
includes weekends
© 2021, Monash University
1.4. Submission details
Submit to“Assignment 1 Submission”on moodle:
● A1_studentID.zip4
● Make a different .py file for each question and name it as question_name.py.5
Containing each of the four (4) tasks covered in Section 3. Key tasks (100 marks)
4 studentID is your student ID. E.g. if your Id was 12345678, you would submit
“A1_12345678.zip”5 Question_name is a question name of the task. E,g, for the first question“Password”, you
would name it as“password.py”.
© 2021, Monash University
-
Getting help
2.1. English language skills
if you don’t feel confident with your English.
● Talk to English Connect: https://www.monash.edu/englis…
2.2. Study skills
If you feel like you just don’t have enough time to do everything you need to, maybe you just
need a new approach
● Talk to a learning skills advisor: https://www.monash.edu/librar…
2.3. Things are tough right now
Everyone needs to talk to someone at some point in their life, no judgement here.
● Talk to a counsellor: https://www.monash.edu/health…
(friendly, approachable, confidential, free)
2.4. Things in the unit don’t make sense
Even if you’re not quite sure what to ask about, if you’re not sure you won’t be alone, it’s
always better to ask.
● Ask in Ed: https://lms.monash.edu/course…
● Attend a consultation:
https://lms.monash.edu/course…
2.5. I don’t know what I need
Everyone at Monash University is here to help you. If things are tough now they won’t
magically get better by themselves. Even if you don’t exactly know, come and talk with us
and we’ll figure it out. We can either help you ourselves or at least point you in the right
direction.© 2021, Monash University
- Key tasks (100 marks)
This assignment is broken into four parts. Each part is attempting to assess a particular
aspect of programming. Read each section carefully and attempt to solve them using the
techniques we have explored during the unit (Week 1 – 5). You cannot use any external
libraries to answer any part of this assignment.
3.1. Password Generator (10 marks)
Write a function with the signature password(). This function asks the user to input their
name, their Date of Birth (formatted as DD/MM/YYYY), and their country of origin. The
function will then generate a password and print it to the screen.
The password generated will be made in the following manner:
{LastYear}{FirstThreeLettersofName}{Day}{LastTwoLetterofCountry}{Month}
The last two letter of the country needs to be in upper case, and the first three letters must
be lower case.
If the inputs would be Gavin Kroeger, 17/06/1991, Australia. The output password would be
91gav17IA06
Your function shouldn’t accept any arguments, it should ask for input during its execution.
You need to include at least 2 validations for this program.
3.2. Uncommon Statistics (22 marks)
Write a function with the signature uncommon(numbers) where the numbers is a list of
numbers (e.g. [2,1,4,0,3]). Each number will only be an integer between -1 and 11 (not
inclusive). Please calculate the following.
● Total: The sum of all the items in the list. (Hint: You cannot use sum() to answer this
question)
● Integer Count: A count of each of the numbers in the list. This should be in the form
of a list that has the counts for each number between -1 and 11. Each index should
represent a number. (use the range of numbers between -1 and 11 as the base to
count the frequency of the numbers in the numbers list. Hint: You cannot use count()
to answer this question)
● Largest Item: The element that is the largest in the list. (Hint: You cannot use max()
to answer this question)
● Range: The difference between the smallest element and the largest element.
For example, if numbers were [1,1,1,2,3,2,1,4,5,6] its statistics would be:
● Total: 26
● Integer Count: [0,4,2,1,1,1,1,0,0,0,0]
● Largest Item: 6
● Range: 5
© 2021, Monash University
The function will return the above statistics as a list in the order of [total, integer count,
largest item, range]. Using our example, the function would be called as
uncommon([1,1,1,2,3,2,1,4,5,6]) and would return [26,[0,4,2,1,1,1,1,0,0,0,0],6,5]
You need to include at least 1 validation for this program.
3.3. Batch Statistics (30 Marks)
Write a function called batch_statistics(filename) where filename is the name of a file in the
directory of your Python script. Each line in the file is a set of numbers that you must pass
to the function written in section 3.2. The output of running uncommon(numbers) should be
written to a file called “filename-output.txt” where filename is the input to this function.
Examples of input and output can be found on Moodle.
If you are unable to finish section 3.2, you can attempt to finish this question as though your
attempt at 3.2 works as intended.
3.4. Returning Home (38 marks)
Write a function called home(path) where path is a string that contains directions to move.
The function validates that a given path returns the traveller to where they started, i.e. home.
It should return True if the path is a valid journey, and False if it is not. Your input path will
use‘N’for North,‘S’for South,‘E’for East, and‘W’for West. Each movement will be space
separated. E.g. if your path is to go North, then go East, the path would be“N E”.
Note: the empty path of“”is an invalid path. Technically, you do end your journey where you
started, but because you don’t go anywhere, it isn’t really a journey.
Please use the examples below to test your program.
●“E W”True
●“E S”False
●“N E S W”True
●“N N N E S S S”False
You need to include at least 1 validation.