12. Data Structures
Feel free to use your laptop
You are strongly encourage to work with others
When you get stuck, ask those sitting around you for help
Get used to working together in the labs
Peer teaching and peer learning has been empirically shown to be very effective
12.1. Pre Lab Exercises
Have all classes from the previous lab complete
-
6
Write unit tests for the class
Writing tests for collections can be difficult, so do your best
Use the CountryCatalogueTest class as an example from assignment 4.
12.2. Before Kattis
Have a complete
Person
class from the previous labWrite a
Contacts
class that will manage a collection ofPerson
objectsThe class will keep track of many instances of
Person
objectsA method for getting the
size()
of theContacts
No duplicate/equivalent
Person
objects are allowed to be in the collectionA method for adding a
Person
to theContacts
calledadd
that takes aPerson
as a parameterIf someone tries to
add
a duplicate/equivalentPerson
, the method shouldraise
aValueError
A method to remove a
Person
calledremove
that takes aPerson
as a parameter (the one to be removed)If someone tries to
remove
a nonexistentPerson
, the method shouldraise
aValueError
A
__repr__
that returns a string containing the details of allPerson
objectsBe sure to make use of the
Person
class’__repr__
method
Make an instance of the class, add/remove
Person
objects to it, and writeassert
tests to verify correctness
Create unittest classes for the
Contacts
classWrite tests for each of the methods in each class
You may find the
Course
class’unittests helpful
Run the tests with
unittest.main(argv=[''], verbosity=2, exit=False)
Ensure all tests pass
12.3. Kattis Problems
Go back and work on Kattis problems from previous labs that you have yet to solve. I’m betting there are several of the earlier ones you can revisit and solve. Remember, the Kattis problems are great for practice, and practice is the only way to get better at programming.