10. Objects

  • 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

10.1. Pre Lab Exercises

  • Have a working implementation of the Circle class from lecture

    • You can obtain the source code from here

    • It will provide a nice template for all the classes you will make in this lab

10.2. Before Kattis

  1. Create a Square class

    • Single attribute side_length

    • The constructor will take a parameter for specifying the size

    • Method for calculating area()

    • Method for calculating the perimeter()

    • Make instances of the class and write assert tests to verify correctness

  2. Create a Rectangle class

    • Attribute for length

    • Another attribute for width

    • The constructor will take two parameters for specifying the size

    • Method for calculating area()

    • Method for calculating the perimeter()

    • Make instances of the class and write assert tests to verify correctness

  3. Create a RectangularPrism class

    • Attributes for length, width, and height

    • The constructor will take three parameters for specifying the size

    • A method for calculating surface_area()

    • A method for calculating volume()

    • Make instances of the class and write assert tests to verify correctness

10.3. Kattis Problems

  • You should be using a scrap piece of paper to work out the ideas for the following problems

    • The problems you are to solve are getting too complex to try to solve by just coding

    • Trying to solve problems by just typing away will not yield success

  1. https://open.kattis.com/problems/everywhere

  2. https://open.kattis.com/problems/babelfish

  3. https://open.kattis.com/problems/oddmanout

  4. https://open.kattis.com/problems/securedoors

  5. https://open.kattis.com/problems/modulo