CS331 - Datastructures and Algorithms

Version 1

Course webpage for CS331

Midterm 1

Tuesday, March 16th 12:00 pm - Wednesday, March 17th 10:00 pm,online

You will have 2 hours to complete the exam within the time period mentioned above. The exam will be handed out through blackboard and you will upload the solution to blackboard. Please upload the solutions as a plain text file (.txt). You are allowed to use an editor or IDE to solve programmming questions.

For students that are unfamiliar with blackboard, please ensure that you have access and try out the mock exam that we created so that you can get comfortable with the submission process.

The exam will consist of both multiple choice and coding questions. We will cover the following topics:

  • Runtime complexity analysis

    • understand and be able to apply the Big-O notation

    • be able to analyze the worst-case runtime complexity of simple programs / algorithms

  • Lists

    • understand implementations of list operations

      • array-backed lists

      • linked-lists

    • be able to use lists for a particular purpose

    • know the runtime complexity of common list operations for a particular implementation of the list ADT

  • Maps

    • understand the Python dictionary data structure and be able to use it to solve computational problems

  • Search

    • understand and be able to implement binary search and linear search

  • Python

    • be able to write simple programs in python that utilize build-in data structures and utility functions

    • be able to comprehend Python programs and be able to reason about their execution

Solutions from previous years

These are solutions from previous years.