CMSE 202 - Midterm Study Guide

CMSE 202 - Midterm Study Guide#

The following document is intended to provide you with a list of the types of tasks you may be asked to complete on your midterm exam for CMSE 202. The exam will be “open internet” so that you can look up documentation, python package installation instructions, etc. You’re also welcome to refer to your previous assignments. However, you will not be allowed to access your email or any other means of person-to-person communication (i.e. Slack). Generative AI tools are NOT allowed in exams!

For the midterm, you should be comfortable with:

  • Adding files and committing changes to a GitHub repository that you own

  • Pushing changes to a remote Git repository that you have permission to update

  • Downloading files from the internet using the command line or the equivalent commands within a Jupyter Notebook

  • Reading and understanding the documentation for an unfamiliar Python package so that you can use the package to complete a task

  • Installing or updating a new Python package using pip

  • Using and modifying a Python class (i.e. utilizing object-oriented programming)

  • Writing a new Python class from scratch

  • Loading data into a Jupyter notebook

  • Exploring and analyzing an unfamiliar dataset using familiar Python packages (e.g. Pandas)

  • Making plots using matplotlib

  • Working with NumPy arrays

  • Working with Python dictionaries

  • Debugging malfunctioning or broken Python code

  • Writing code using different programming paradigms (linear, object-oriented, functional)

Some or all of these concepts may show up on the exam, so make sure you spend time reviewing the ones you’re less comfortable with and don’t hesitate to reach out on Slack to ask your fellow classmates or the instructors questions about things you don’t understand.

If you’re feeling uncertain about working with Python classes, I encourage you to review the following, well-written (though now a bit dated) blog post:

https://medium.com/hackernoon/improve-your-python-python-classes-and-object-oriented-programming-d09ff461168d

While the level of detail in that post goes beyond what might be expected of you on the exam, the concepts discussed are all relevant to how you write and think about Python classes.

Final Note: If you’re currently having any issues with your JupyterHub, your local Python installation, GitHub, or any other software related to the course, contact your instructor as soon as possible and explain the issue so that it can be addressed before the exam!