Home Teaching Research CV Timetable

Prev: P5 Next: P7
Back to week 11 page: Link



# P6 Programming Problem Instruction

📗 Enter your ID (the wisc email ID without @wisc.edu) here: and click (or hit enter key)
📗 The due date is Apr 20, late submissions within a week will be accepted without penalty, but please submit a regrade request form: Link.
📗 The same ID should generate the same set of questions. Your answers are not saved when you refresh the page or close the browser.
📗 To input your answers, you could (1) copy and paste your answers to the text boxes for individual questions, or (2) print your answers to text files and load them into the text boxes for individual questions, or (3) print all your outputs to a single text file and load it using the button at the bottom of the page under the Submission section. More details at the bottom of page W1.
📗 Please report any bugs on Piazza.

# Warning: please enter your ID before you start!



# Questions 1 to 5 Instruction

📗 Suppose a valid password contains ??? characters with at least one uppercase letter from ???, one lowercase letter from ???, and one digit from ???. Characters not in the previous three lists are not allowed. Given a list of candidates, create a vector indicating the validity of each candidate password in the list: \(1\) if the password is valid and \(0\) if not. Enter the vector you created in the text box below each question.
📗 Note: if you prefer to work with a vector of string types, use "splitlines(string(fileread('P6Q1.txt')))", and if you prefer to work with a cell array of character (array) types, use "splitlines(fileread('P6Q1.txt'))". In both cases, you may find Characters and Strings functions on this page useful: Doc.
📗 Note: a single function can be used to solve Questions 1 to 5, but if you prefer like to test each condition separately, then for Q1, only check the number of characters in the password; for Q2, only check that all characters are valid; for Q3, only check that the password contains an upper case letter; for Q4, only check that the password contains a digit; and for Q5, everything needs to be checked at the same time.

# Question 1

📗 [1 point] Create the vector based on the list .
📗 Answer:


# Question 2

📗 [1 point] Create the vector based on the list .
📗 Answer:


# Question 3

📗 [1 point] Create the vector based on the list .
📗 Answer:


# Question 4

📗 [1 point] Create the vector based on the list .
📗 Answer:


# Question 5

📗 [1 point] Create the vector based on the list .
📗 Answer:


# Questions 6 to 9 Instruction

📗 Create a vector (one line, passwords separated by space or comma) containing valid password guesses. Use the conditions specified in each question. Enter the vector you created in the text box below each question.
📗 List all permutations of valid passwords systematically is called brute-force attack. Details see: Wikipedia. The function "perms" can be used to find the list, but it is not necessary to solve this question: Doc.

# Question 6

📗 [1 point] Create the list of all possible valid guesses in the form ???.
📗 Answer:


# Question 7

📗 [1 point] Create the list of all possible valid guesses in the form ???.
📗 Answer:


# Question 8

📗 [1 point] Create the list of all possible valid guesses in the form ???.
📗 Answer:


# Question 9

📗 [1 point] Create the list of all possible valid guesses in the form ???.
📗 Answer:


# Question 10

📗 [1 point] Please enter any comments and suggestions including possible mistakes and bugs with your version of the questions and the auto-grading, and materials relevant to solving the question that you think are not covered well during the lectures. If you have no comments, please enter "None": do not leave it blank.
📗 Answer: .

# Grade


 ***** ***** ***** ***** ***** 

 ***** ***** ***** ***** *****

# Submission



📗 Please do not modify the content in the above text field: use the "Grade" button to update.
📗 Warning: grading may take a few seconds. Please be patient and do not click "Grade" multiple times.


📗 You could submit multiple times (but please do not submit too often): the submission with the highest grade will be counted.
📗 Please also save the text in the above text box to a file using the button or copy and paste it into a file yourself .
📗 You could also load your answers from the text (or txt file) in the text box below using the button . The first two lines should be "##p: 6" and "##id: your id", and the format of the remaining lines should be "##1: your answer to question 1" newline "##2: your answer to question 2", etc. Please make sure that your answers are loaded correctly before submitting them.



📗 Saving and loading may take a few seconds. Please be patient and do not click "Load" multiple times.

# Code

📗 Please submit your code (.m, .txt, or .pdf are all acceptable) on Canvas Assignment P6.
📗 Your coding style and technique will not be graded, but please consider the following:
(1) Add comments to describe what the code is doing.
(2) Indent "for" loops and "if" blocks.
(3) Use descriptive but short variable names.
(4) Add white spaces and/or blank lines for readability.
📗 It is highly recommended that you use the commands and functions from the lectures, but you are allowed to use any built-in MATLAB commands and functions.
📗 Example solution: .m File, .txt File .pdf File.
(1) Please do not use the example solution as the starter code. You should write all the code yourself and only use the example solution as a reference when you get stuck.
(2) Please do not use the example solution as a guide for coding style. It is written so that it only solves a specific version of the problems. You code should be more general: you should define variables for constants, define functions for repetitive actions, and use descriptive variable names.
📗 Please report possible mistakes in the solution, and if you have better (shorter or more efficient) ways of solving the same problem, you can share your code on Piazza (but please do so after the due dates).
📗 If you use one or more lines of code from the example solution, other students in the class, or code you found on the Internet, you must give attribution by putting a comment at the beginning of your code submission, for example:
% Code attribution: P6 example solution.
% Code attribution: (student name)'s P6 solution.
% Code attribution: (student name)'s answer on Piazza: (link to Piazza post).
% Code attribution: (person name)'s answer on Stack Overflow: (link to page).






Last Updated: April 29, 2024 at 1:11 AM