You are on page 1of 11

Assessment

Student
Instructions

Assessment Title Password Checker Assignment

Competency Details
Unit code/s and title/s ICTPRG302 - Apply introductory programming techniques
Qualification code/s and title/s ICT30120- Certificate III in Information Technology
ICT40120 - Certificate IV in Information Technology
Business unit/Work group Business and ARTS/IT Studies

Instructions
Method/s of assessment Product - PasswordChecker Assignment and
Oral communication

Overview of assessment This assessment will require you to complete 3 programs of the
PasswordChecker assignment.
In this assessment you will cover the following topics:
• Use of sequence structures
• Use of selection structures
• Use of iteration structures
• Reading and writing of text files
• Use of lists

The assessment is broken up and assessed in 3 parts and you


will submit each part gradually as you develop your skills
through the course.

You will also have a meeting with your IT Team Leader to


discuss the final part of the PasswordChecker to ensure you
understand the requirements before coding.

Task/s to be assessed This is a practical task and will require you to code, test and
document in the Python language.

You will also have a meeting with your IT Team Leader to


discuss requirements of the final part.

The following pages will define the specific tasks you need to
complete.

Time allowed Refer to your schedule for submission dates

Location of assessment Assessment can be completed anywhere with access to the


resources required. (see Resources Required section below)

Decision making rules To receive a satisfactory outcome for this assessment you must
complete all parts correctly.

Time limits are provided as guidance only.

Assessment conditions This assessment must be undertaken where the conditions


replicate noise levels and interruptions that people typically
experience working in the ICT industry.

This is unsupervised assessment and you may access any


required resources.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 1


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
This is not group work and must be completed as an individual.

Resources required To complete this assessment, you will require the following:
• Access to Learn with Internet access
• Learn resources
• Word processing software such as Microsoft Word.
• Python and PyCharm latest version
• Microsoft Teams for meeting and video recording
• ITWorks Python coding standards document

Result notification and You will be provided feedback and the result for your
reassessment information assignment on TAFESA Learn. You will be and given the
chance to resubmit with required corrections only once.
Refer to the TAFE SA assessment policy for more information
https://www.tafesa.edu.au/apply-enrol/before-starting/student-
policies/assessment

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 2


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
PasswordChecker Application
You have just been employed by the ITWorks organisation as a junior Python programmer. You are
working under the guidance of the IT Team Leader. Your job is to create some programs that will
check user passwords to match ITWorks organisational requirements. The program requirements are
given below. Once you get to the final part 3, you will be required to have a meeting with your IT
Team Leader to clarify the task. Once the task is complete you will create a video of a walkthrough of
your code to be given to the IT Team Leader so you can obtain sign-off for this program.

Assignment Part 1 – PasswordChecker1

Scenario
Your IT Team Leader has asked for a program to be developed that meets the following
requirements:

Program Specification – PasswordChecker1

Description
A program is required to input a user password, calculate the length of the password and
validate the length of the password to ensure it contains the minimum number of characters 6
and a maximum of 10 characters. Continue to input the password and calculate the length of
the password until a valid length password has been entered.

Once the length is valid, the program will output the length of the password and determine if
the password is weak or strong. If the password only contains letters output a message
stating “password weak – only contains letters” or if the password only contains numbers
output a message stating “password weak – only contains numbers” otherwise output a
message stating the password is strong, that is, it contains a combination of letters/numbers
or other characters.

Inputs

Name Description Data Type Source


password The user password string Keyboard

Processing
Input the password
Calculate the password_length
Validate the password_length must be a minimum of 6 and a maximum of 10 characters.
Once the password length is valid, output the password_length and a message indicating if
the password is weak or strong.

Outputs

Name Description Data Type Destination


password_length The length of the password integer Screen
message A message indicating “password weak – String Screen
contains only letters” or “password weak –
contains only numbers” or “password
strong”.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 3


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Assessment Requirements
Complete the following Assessment Task by modifying/re-writing the Python code from the Python
Basic Quiz to cover the given Program Specification:

Design:
You need to provide a solution to the problem using pseudocode to document your design.
Add the pseudocode as a comment at the top of your code.

Coding:
Write the Python code for the given Program Specification.
Note: You must use ‘named constants’ for fixed amounts e.g.
MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10

Add to your Python code an output at the start of the program:


PasswordChecker1 program developed by: “add your name here”

Code Documentation:
Include as a comment at the top of your code
• your name
• date
• assignment PasswordChecker1
• and the pseudocode.

Within your code include internal single line comments to explain the coding structure you
have used to:
• validate the password length
• determine if the password is weak or strong.

Best Practices:
Follow the provided ITWorks organisational guidelines for developing maintainable code, and
adhere to the provided ITWorks Python coding standards, all documented in the ITWorks
Python Coding Standards document.

Testing:
Sample Test Data:

1. An input of hello will require the password to be re-input, and a password of


password123 will also require the password to be re-input, and a password of
12345678901 will also require the password to be re-input.
2. An input of Password will be accepted but a message will be produced stating the
password has 8 characters and it is weak - contains only letters.
3. An input of 123456 will be accepted but a message will be produced stating the
password has 6 characters and is weak - contains only numbers.
4. An input of password12 will be accepted and a message will be produced stating the
password has 10 characters and is strong.

Create a word document containing 4 screen shots of the output of your program with the test
data suggested above.

Name your word document PasswordChecker1_Testing_YourName.docx.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 4


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Submission summary:
• Your python script called PasswordChecker1_Program_YourName.py

• Word document called PasswordChecker1_Testing_YourName.docx containing screen


shots of the running of your program.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 5


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Assignment Part 2 – PasswordChecker2

Scenario
Your IT Team Leader has asked for an updated version of the program to be developed that now
meets the following requirements:

Program Specification – PasswordChecker2

Description
A program is required to input a user password, calculate the length of the password and
validate the length of the password to ensure it contains the minimum number of characters 6
and a maximum of 10 characters. For every incorrect password length, the program will
record an entry in a password log file that will include the date/time (updated to the nearest
microsecond) and the reason why the password is invalid either “password < 6” or “password
>10”. The file will not store any passwords.

Once the length is valid, the program will output the length of the password and determine if
the password is weak or strong as in the previous version.

The program will then output each line of the password log file to the screen.

Inputs

Name Description Data Type Source


password The user password string Keyboard

Processing
Input the password
Calculate the password_length
Validate the password_length must be a minimum of 6 and a maximum of 10 characters.
For every invalid password entered, write the date/time and reason the password is invalid to
the password log file.
Once the password length is valid, output the password_length and a message indicating if
the password is weak or strong.
Once the password is valid, output each line of the password log file to the screen.

Outputs

Name Description Data Type Destination


password_length The length of the password integer Screen
message A message indicating “password strong”, String Screen
“password weak – contains only letters”.,
or “password weak – contains only
numbers”.
current_date_and The date and time when the invalid String File
_time password was entered. This must come
from the system date/time
reason_password This will either hold a string of either String File
_invalid “password < 6” or “password > 10”
line Output each line of the log file String Screen

The format of the password log file is shown in the example below. Include a comma and a
space between the date and the reason. The file will need to be named
password_log_your_name.txt

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 6


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Assessment Requirements
Complete the following Assessment Tasks by modifying/re-writing the Python code from the previous
version.

Coding:
Write the Python code for the given Program Specification above.

Note: Use ‘named constants’ for fixed amounts e.g.


MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10

Add to your Python code an output at the start of the program:


PasswordChecker2 program developed by: “add your name here”

To access the system date in Python, you will need to import the datetime module at the
beginning of your code by using:

import datetime

To return the current date/time, use:


datetime.datetime.today()

Variable Scope
Place all code under a main() function, except the import datetime.
All variables and constants need to be defined inside this function and no variables/constants
are to be used outside of main().

Code Documentation
Include as a comment at the top of your code
• your name
• date
• assignment PasswordChecker2

Within your code include internal comments of one or two sentences to explain:
• what data is written to the password log file
• what structure you use to output the file data to screen.

You do not need to include pseudocode for this assignment.

Best Practices:
Follow the provided ITWorks organisational guidelines for developing maintainable code, and
adhere to the provided ITWorks Python coding standards, all documented in the ITWorks
Python Coding Standards document.

Testing:
Sample Test Data:
An input of hello will require the password to be re-input, and a password of password123
will also require the password to be re-input, and a password of 12345678901 will also
require the password to be re-input.

An input of password will be accepted but a message will be produced stating the password
has 8 characters and it is weak - contains only letters.

Output of the log file, for example:

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 7


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Create a word document containing a screen shot of the running of your program using the
above test data.

Name your word document PasswordChecker2_Testing_YourName.docx.

Submission summary:

• Zip file of your Python script and your log file called
PasswordChecker2_Program_YourName.zip

• Word document containing screen shots of the running of your program called
PasswordChecker2_Testing_YourName.docx

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 8


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Assignment Part 3 – PasswordChecker3
This assessment has 3 submissions:
• Design Clarification Meeting
• Video and Client Sign-off
• Final PasswordChecker Submission

Scenario
Your IT Team Leader has asked for another updated version of the PasswordChecker program that
meets the requirements below. This version does not use the previous code, so your IT Team Leader
would like to meet with you to discuss the task to ensure you have a clear understanding of the
requirements before you write the Python code.

Program Specification – PasswordChecker3

Description
A password log file ITWorks_password_log.txt has been provided with the date/time and
reason the password is invalid. Read the data from the file into a list. Using the list output
each line. As you output each line from the list, count the number of errors for passwords that
were below the minimum length and count the number of passwords that were above the
maximum length. Output the counts to the screen.

Inputs

Name Description Data Type Source


ITWorks_password_log.txt File containing the date/time and string file
reason the password is invalid

Processing
Read the contents of the password log file and add this to a list
Use the list to output each line and count of the number of errors for passwords that were
below the minimum length and a count of the number of passwords that were above the
maximum length.
Display both counts to the screen

Outputs

Name Description Data Type Destination


line Contents of each line in the list String Screen
count_pw_too_small This is the count of how many passwords were integer Screen
below the minimum length
count_pw_too_large This is the count of how many passwords were integer Screen
above the maximum length

Assessment - Design Clarification Meeting


You need to provide a solution to the problem using pseudocode to document your design.
Write up the pseudocode as a comment at the top of your Python file where you will later
write your code, do not write the code yet. You need to organise to meet with your IT Team
Leader to clarify your design before moving on with the coding.

Your IT Team Leader (your lecturer) will instruct you how to make an appointment with them
(either face-to-face or in a collaborate session or via a Teams meeting).

During your meeting you will be assessed on questioning and listening skills. You need to ask
your IT Team leader at least one question to clarify your logic is correct. Your IT Team Leader
will ask you at least one question about your design.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 9


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Once your design has been approved by your IT Team Leader, write the Python code for the given
Program Specification above

Coding:
Include at the top of your output screen:
PasswordChecker3 program developed by: “add your name here”

Variable Scope
Place all code under a main() function.
All variables and constants need to be defined inside this function and no
variables/constants are to be used outside of main().

Code Documentation
Include as a comment at the top of your code
• your name
• date
• assignment PasswordChecker3
• and the pseudocode.

Within your code include internal comments to explain:


• how you have added the data from file to the list
• how you count the number of errors for passwords below the minimum length and
count of the number of passwords above the maximum length.

Best Practices:
Follow the provided ITWorks organisational guidelines for developing maintainable code, and
adhere to the provided ITWorks Python coding standards, all documented in the ITWorks
Python Coding Standards document.

Testing:
Sample Test Data:

Create a word document containing a screen shot of the running of your program showing the
output of the password log file and the two counts.
Name your word document PasswordChecker3_Testing_YourName.docx.

Debugging:
Include in your word document two screen shots of the debugger window demonstrating that
you can correct errors by stepping & tracing through your code.
Insert a break point at beginning of your code (e.g. after you define your variables to show the
counts as 0) and another breakpoint on the final print() statement at the end of your code (to
show the final values of the counts).

Add one screen shot showing the initial values of the variables in the debugger window at the
beginning of stepping through your code. Continue to the second break point and add another
screen shot of the final values of the variables in the debugger window to verify your counts
are correct.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 10


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0
Assessment - Video and Client Sign-off:
To obtain approval from your IT Team Leader that your final code meets the above
specifications create a video explaining your code. Explain what each line of your code does,
you do not have to go through the pseudocode as you have already had a meeting about this.
Then run the code to show your output. The video should be approximately 2 minutes.

You can use Microsoft Teams to record your video.


The video format must be mp4 or similar, compatible with Windows OS.

If the video is too large to upload to Learn you can upload it to your TAFESA OneDrive and
submit a link to your OneDrive file in a word or text document.

Your lecturer will act as the IT Team Leader and this sign-off document will be provided to you
as a file upload in LEARN once approved.

Assessment - Final PasswordChecker Submission:


You are required to upload 2 files:

• Zip file of your Python script (.py file) and the log file ITWorks_password_log.txt called
PasswordChecker3_Program_YourName.zip.

• Word document containing screen shots of the running of your program and the
debugging called PasswordChecker3_Testing_YourName.docx.

Document name: ICTPRG302 - ASI - PasswordChecker_Assignment.docx page 11


Document Set Release Version: v1.7 - © TAFE SA | RTO CODE 41026 | CRICOS 00092B
TAFE SA Template Version: Assessment Student Instructions v5.0
Document development version: v41.0

You might also like