Proficiency Exam

Proficiency Exam

Please note: This is the “Spring 25” website but the information below is up to date for Fall 2025. CS 101 will move toward have a canonical web presence in time!

There is a proficiency exam available during the beginning of the semester for this course. Fall 2025’s proficiency exam is given between August 22nd and August 26. Exams use the CBTF.

Topics you should expect:

Here are the topics you should expect on the exam. The examples are meant to give you an indication of the difficulty level, but you should not expect the same format on the exam. No practice exam will be made available. However, each of the topic items below does map to at least one one of the questions asked on the proficiency exam. Most of the questions (coding questions) give multiple attempts for no reduction in credit to allow for leeway for small bugs. The exam also provides a workspace with both Jupyer Notebook (for Python) and Octave (if helpful, although at this time not assessed) coding and debugging.

Give the type of a Python expresson.

Be able to give the final type of an expression converts types using functions such as str, float, etc. This includes math fnuctions that convert integers to floats.

Example: Give the type of the expression str("10.4").

Define a function

Define a function according to specifications.

Example: define a function inc with two parameters, x and i. The parameter i should have a default value of 1. Return the sum of x and i.

For loops and range

Write a for loop to iterate over the values of a range or a list and do something to process the values.

Example: return the index of the minimum item is a given list xx. You can assume the list has at least one element.

String Processing

Be able to process a string as a list of characters, and also use built-in methods such as split, join, and replace.

Example: Given a string st, find the length of the longest word. Ignore punctuation characters period, semicolon, question mark, and exclamation point.

Dictionary Processing

Be able to use a Python dictionary, particularly when it comes to accessing values with keys and using for loops.

Example: Given a dictionary items, loop through all the keys and double the values for eachc key. Assume every value is a number.

Library Code

Numpy: Be able to create and use linear spaces, i.e. use the linspace function.

Example: Given a linear space xx, return the maximum value of a given function f over this space.

Example: Given a matrix $A$ and a vector $b$, solve $Ax = b$ for $x$.

Be able to use Newton’s method (or scipy.optimize.newton) to find the zero of a function.

Randomness

Use random to generate 1000 integers according to a uniform or normal distribution.

Sympy

Use sympy to take the integeral or deriviative of a given function. E.g., using functions such as sympy’s diff function or integrate function.

Format

There will be about a dozen questions, almost all coding. You will have multiple attempts at the coding questions. You will have access to a jupyter notebook instance with Python in it during the exam.

Things NOT on the test

You should not expect the following on the exam:

  • List comprehensions
  • Recursive functions
  • MatLab
  • The Spanish Inquisition
  • The Pandas library