Test 2

Date & Time

Monday, November 11, 9:30-10:45am, PM 103

Overview

Test 2 will cover all material from the beginning of the semester through testing but with an emphasis on material covered since Test 1 (including system integration). This material includes everything discussed in lectures and covered in assignments, and aligns with chapters 1-6 and 8-10 from the recommended text. We have covered some additional topics the text has not, including OS Integration and Concurrency, and we did not cover the data science additions to each chapter. Because this is a programming principles course, there will be questions related to principles as well as questions that involve syntax. You may be asked to write, analyze, and/or debug code.

Format

  • Multiple Choice
  • Free Response

Example Types of Questions

  • Why are raw strings useful for regular expressions?
  • How would you check if a string contains only digits?
  • Which string operator gets rid of whitespace at the end of a string?
  • Which statement is a context manager associated with? Why is it useful when writing to files?
  • Why is it important to know which encoding a text file used?
  • Why would you use the statement if __name__ == "__main__" in a script?
  • What is the type of the entries in sys.argv? Suppose you are writing a script that takes two arguments and computes their sum; what may do you need to do before adding the arguments?
  • What is a wildcard import in Python? Why should you avoid them in general?
  • What is the difference between a Python module and a Python package?
  • Create an inheritance hierarchy from the following classes: Vehicle, Car, Truck, SportsCar, Sedan
  • Given a definition of the Vehicle class, write a constructor for the Car class that takes the number of doors as an argument and stores it.
  • Given a definition of a class, locate errors and detail fixes for them.
  • Given an instance obj which has initialized instance fields var1, _var2, and __var3, which reference does not work? obj.var, obj._var2, obj.__var3?
  • What is the difference between a class method and a static method?
  • What is duck typing?
  • When handling an exception, why is using a bare except clause problematic?
  • If you have two excception handlers, one for IOError and one for FileNotFoundError, which should be placed first? Why?
  • What are some problems with debugging using print statements or testing using assert statements?
  • When processing paths, how can you distinguish between files and directories?
  • Given a path of the form p = "/path/to/file.txt", how do compute the output path "/output/path/file.json"?
  • Suppose you are asked to download 200 files from different web sites using python. Which of threading, multiprocessing, or asynchronous programming would you choose and why?
  • What is the GIL and how does it affect threading?