Quiz 4 Info
Quiz 4 Information
Quiz 4 will be held on Thursday, August 2nd.
The quiz will be held at the start of class at 9:00-9:30am
We will continue the class as usual after the quiz.
You must bring your BU ID to the quiz, so that we can check it when you turn in your quiz.
You will have the 30 minutes for the quiz.
You may not use any electronic devices during the quiz.
Once you leave the quiz room, you may not return, so please use the restroom ahead of time.
The quiz will include questions similar to the ones posed in class – both the clicker questions and the open-response ones. However, these questions will not be multiple-choice. You will need to determine and write the answer without a list of options to choose from.
In addition, there will be questions that ask you to write a function or a short program, similar to the problems from the homework.
The quiz will focus on the material that we have discussed in class from the beginning of the summer session through Tuesday, July 31st. This corresponds to the following readings:
from CS for All:
- Chapter 6: Sections 6.1, 6.2, 6.3, 6.4, 6.5 and 6.6 of our textbook, “CS For All.”
Note: You are not responsible for details from the case studies in the readings (e.g., the information about how sorting works). However, you are responsible for the programming and problem-solving concepts that those case studies were used to illustrate.
In addition, you should be familiar with concepts that were introduced in the pre-class videos, in-class discussion, or on the homeworks that were not covered in the readings.
Preparing for the quiz
One way to prepare is to review the readings and lecture notes and make a summary of the key points in your own words. “Boiling down” the material in this way is a great way to ensure that you really understand the key concepts.
We also encourage you to do practice problems (see below).
When working on practice problems, try to come up with your answers on paper, rather than through a trial-and-error approach on IDLE or in another programming environment. This will be give you an experience that is similar to the one that you have during the quiz.
Feel free to post questions on Piazza (using the
quiz4tag) or to email the course account (
Additional practice problems
Create a Python class called
Triangle. The constructor for this class should take two arguments,
height, and store those values in appropriately named attributes. In addition, you should add a method called
areathat computes and returns the area of the triangle. (The area of a triangle is 0.5 times the product of its base and height.) For example:
>>> tri = Triangle(3, 4) >>> tri.area() 6.0
Add a method to your
Triangleclass that enables you print a
Triangleobject in a readable way. For example:
>>> tri = Triangle(3, 4) >>> print(tri) triangle with base 3 and height 4
Add a method to your
Triangleclass that will allow you to use the
==operator to test if two
Triangleobjects are equal–i.e., if they have the same base and height. For example:
>>> tri1 = Triangle(3, 4) >>> tri2 = Triangle(3, 4) >>> tri3 = Triangle(4, 3) >>> tri1 == tri2 True >>> tri1 == tri3 False
Write a function called
mainthat creates three triangle objects
tri1(with base 3 and height 4),
tri2(with base 6 and height 6), and
tri3(also with base 3 and height 4). The function should print the three objects and their areas. Next, it should test whether
tri2are equal and report the result. Finally, it should test whether
tri3are equal and report the result. Your function should take full advantage of the
Trianglemethods you have written. Here is the desired output:
>>> main() tri1: triangle with base 3 and height 4 (area = 6.0) tri2: triangle with base 6 and height 6 (area = 18.0) tri3: triangle with base 3 and height 4 (area = 6.0) tri1 and tri2 are not equal tri1 and tri3 are equal
Create a Python class named
Phonebookwith a single attribute called
entries. The constructor should initialize
entriesto be a dictionary containing the following names and phone numbers:
Bob 72345, Sally 71000, John 79999. Use the names as the keys of the dictionary and the phone numbers (which you should represent as
ints) as the values.
Add a method named
Phonebookclass. It should take a parameter
nameis present in the phonebook, and
Falseotherwise. For example:
>>> book = Phonebook() >>> book.contains('Foo') False >>> book.contains('Bob') True
Write another method for your
number_forthat takes a parameter
nameand returns the phone number for
namein the called
Phonebookobject. It should return
nameis not found. Here is an example:
>>> book = Phonebook() >>> book.number_for('Sally') 71000 >>> book.number_for('foobar') -1
Hint: Consider using your
containsmethod from problem 8.
Write another method for your
add_entrythat takes as parameters a
numberand adds an appropriate entry to the phonebook. For example:
>>> book = Phonebook() >>> book.number_for('Turing') -1 >>> book.add_entry('Turing', 77777) >>> book.number_for('Turing') 77777
MORE TO FOLLLOW