Back to Quizzes

Exam 1

Structure

The exam will consist of autograded multiple choice, fill in the blank questions, and a single coding question. Most multiple choice questions will allow you to submit twice, first for full credit and the second for a moderate amount of points.

The coding questions will test your ability to use lists (both arrays and linked lists), stacks, or queues in creative or complex ways.

Content

The exam will cover all material up to and including 3/3/25. While you may see some review questions from previous content, the focus will be on new material which includes:

  • Python File I/O
    • Reading and writing to files
    • String formatting
  • Python Random
    • random.choice(), random.select(), random.randint()
  • Lists
    • How to create and use them in Python
    • Python list built-ins that match the list ADT
    • Linked List Operations (Running time, how to use, and how to implement):
      • Add()
      • Insert()
      • __getitem__()
      • __len__()
      • delete()
    • Array List Operations (Running time, how to use, and how to implement):
      • Add()
      • Insert()
      • __getitem__()
      • __len__()
      • delete()
    • 1D list indexing
  • Asymptotic Efficiency
    • Definition and what it means in practice
    • Dominant term
    • Determining the big O of a code block.
    • Tip: While other big Os may show up you should definitely be familiar with:
      • O(1)
      • O(log n)
      • O(n)
      • O(n^2) vs O(n*m)
  • Stacks and Queues
    • Operations (Running time, how to use, and how to implement):
      • push()
      • pop()
      • top()
      • enqueue()
      • dequeue()
      • front()

You should also be familiar with the content from mp_generate as well as labs up to and including lab_quacks.

Points: 75

Start: Tuesday, March 11

End: Thursday, March 13