Lab 8: Object Oriented Programming

Logistics

  • Due: Friday, June 12th no later than 5pm.
  • Submission instructions: upload solution, entitled FirstName-LastNameLab8.py to the BrightSpace Lab 8 Dropbox.
  • Deadline reminder: once this deadline passes, BrightSpace will no longer accept your Python submission and you will no longer be able to earn credit. Thus, if you are not able to fully complete the assignment, submit whatever you have before the deadline so that partial credit can be earned.

Learning outcomes

Gain experience with object oriented programming.

Hint

Check out the magic methods for Python classes.

Assignment

  • In this assignment, you will use object-oriented programming to implement a data structure called a queue. An example of a queue is a concert line for tickets (with no cutting allowed): the first person to arrive goes first, the second person to arrive goes second, etc. The line can grow and shrink dynamically over time.
  • Download lab8.py, rename it according to the instructions above, and make sure you understand it.
  • Take the program above and modify it by adding the missing Queue class such that when the program is run, it produces this output.

Grading - 10 points

1 point - The constructor of the Queue class is correct.

1 point - The enqueue method of the Queue class is correct. The method adds an item to the queue.

1 point - The dequeue method of the Queue class is correct. The method removes and returns the item that has been in the queue the longest.

1 points - The is_empty method of the Queue class is correct. A queue is considered to be empty when it contains no items.

2 points - The __str__ method of the Queue class is correct.

3 points - In the main function, the statement number += 15 is implemented correctly using the appropriate magic method in the Queue class.

Grading turnaround

All labs graded with scores recorded in BrightSpace no later than office hours the following day.