Question
This question provides an opportunity for you to demonstrate your understanding of the problem-solving approach taught in TM112 and the patterns introduced in Block 1
This question provides an opportunity for you to demonstrate your understanding of the problem-solving approach taught in TM112 and the patterns introduced in Block 1 Part 4 and Block 2 Part 2. You can find an overview of the problem-solving approach and a list of all the patterns TM112 teaches in the Problem solving and Python quick reference and you will need to refer to this document as you work on the question.
Important note: you do not need to get a working program in part a. in order to attempt part b.
A student wants to design and implement a Python program to convert any 6-bit unsigned binary number to its decimal equivalent. There are many ways of doing this, but here is their initial top-level decomposition:
> Convert binary to decimal
>> Input a list of six 1s and 0s corresponding to the binary number to be converted
>> Input a list of six column weightings consisting of powers of two
>> Create a new list that contains the decimal values of each binary digit of 1 in the input list
>> Add up the decimal values in the new list and print result
a.
In this part of the question you will consider only this section of the top-level algorithm:
>> Input a list of six 1s and 0s corresponding to the binary number to be converted
>> Input a list of six column weightings consisting of powers of two
>> Create a new list that contains the decimal values of each binary digit of 1 in the input list.
>> print the new list
i.
Describe the type of the input and output data for this first task and describe the allowable values for each.
ii.
Specify one further test list in addition to the list you have created using your PI number. Make sure that you state the test input, the expected output and a brief explanation of why you selected this test.
iii.
Write an algorithm based on Pattern 2.3 Note that you will need to modify step 4ai.
iv.
Implement your algorithm as Python code. Your code must match the steps of your algorithm and you should use comments in the code to make it clear how the two correspond. Marks will be lost if the program does not follow the algorithm. Copy your Python code, as text, into your Solution document. Name your Python file Q2a_OUCU.py, where 'OUCU' is your OU computer username, e.g. abc123. Then include the code file in your TMA zip file.
b.
In this part of the question, you will implement the final step in the top-level decomposition given at the beginning of this question:
>> Add up the decimal values in the new list and print result
i.
Identify which of the TM112 pattern or patterns could best be applied to the solution of the second task. State clearly the name of the pattern and the pattern number, for example "List generation Pattern 2.2". A list of all the patterns can be found in the Problem solving and Python quick reference
ii.
Write an algorithm based on the pattern you have identified
iii.Implement your algorithm as Python code. This must match the steps of your algorithm and you should use comments in the code to make it clear how the two correspond. Marks will be lost if the program does not follow the algorithm. Your code should include a comment that gives your PI number. Copy your Python code, as text, for this second task into your Solution document. Name your Python file Q2b_OUCU.py, where 'OUCU' is your OU computer username, e.g. abc123. Then include the code file in your TMA.zip file.
c.
Create a completed program that performs the whole top-level task:
> Convert binary to decimal
d.
There are many ways of decomposing the top-level task:
> Convert binary to decimal
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started