PhD students must pass either a foreign language exam or satisfy the computer programming requirement, and they are expected to complete this requirement by the end of Summer quarter preceeding the fourth year. Students are encouraged to look at the Recommended Programs of Study or contact relevant faculty members for advice concerning which language or computer exams are most appropriate for the field(s) of study they are considering. In either case, students will need to fill out the Language Exam Record Sheet and submit it to the Student Services Office, Padelford C-36.
To pass a foreign language exam, a student must demonstrate the ability to translate mathematical literature from the foreign language into English. It is customary for the examiner and the student to agree ahead of time on a book from which the translation is to be made. It is up to the examiner to set the format of the exam, choosing for instance whether it should be oral or written, and to what extent a dictionary or word list is permitted. The following faculty serve as examiners:
Foreign Language Examiners
- French: Monty McGovern, Patrick Perkins, Hart Smith, Tatiana Toro
- German: Monty McGovern, Steffen Rohde
- Russian: Krzystof Burdzy, Neal Koblitz, Isabella Novik
To pass the computer programming exam, a student will be required to demonstrate the ability to design, implement, debug, and explain a functioning computer program. A student may fulfill the computer programming requirement by doing one of the following:
- Obtaining a grade of 3.0 or higher in CSE 142, CSE 143, CSE 160, CSE 351, CSE 373, CSE 544, or AMath 301.
- Presenting a working computer program (see below).
- Presenting other evidence of programming proficiency, if approved by the examining committee.
For option #2, a student will be expected to design, write, debug, and then present a working program. The program may be one the student has previously created for a course or a job, or may be a new one specifically written for this purpose. If a new program is to be written, the student should obtain prior approval of the planned project from a member of the examining committee. (The examiner can suggest a project if the student prefers.)
Computer Program Requirements
The program must consist of at least 100 lines (not including comments, blank lines, or other fillers) of well documented, structured code, and must include most of the following features: floating-point computations, symbolic manipulation, iteration, input/output, conditional execution, and subroutines. Any of the following languages are acceptable: C, C++, FORTRAN, Java, Lisp, Mathematica, Maple, MATLAB, Pascal, and Python. Other languages may be approved by the examiners if the languages are sufficiently powerful to express programs meeting all of the above criteria. The student must demonstrate a working version of the program, and must present the source code for examination. The examiner may ask the student to explain the functioning of any part of the program.
To fulfill the computer programming exam, contact one of the examiners listed below. When you have completed the requirement to the examiner's satisfaction, have the examiner sign the Language Exam Record Sheet and submit it to the Student Services Office, Padelford C-36.
Computer Programming Examiners
The languages shown in parentheses are the ones in which each examiner prefers to evaluate programs, but examiners might be willing to evaluate other languages by special arrangement with the student.
- Sara Billey (any)
- Ken Bube (FORTRAN, MATLAB)
- James Burke (C, C++, FORTRAN, MATLAB, Lisp)
- Thomas Duchamp (C, C++, Mathematica, Pascal)
- Chris Hoffman (Mathematica or C)
- John Lee (FORTRAN, Mathematica, Pascal)
- John Palmieri (Lisp, Python, or Sage)
- Don Marshall (FORTRAN)
- William Stein (C, C++, Python, Magma, PARI or Sage)