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