SI 413 Fall 2023

This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Scheme Practicum Exam


Full credit is possible only for problems whose complete, correct solutions are submitted before the end of your lab period. Be sure to submit what you have done before the period ends!

To ensure exam integrity, your screen may be recorded for the duration of the test, and outside internet access will be cut off. You will still be able to access this course website, the DrRacket official documentation, and any USNA internal websites or services such as the submit and gitlab.

You can also use any written notes or books you bring with you, the course website, and any previous code from your own prior work in the class as references. (See Policy section below for full details.)

Before the day of the exam

Make sure you have downloaded your submit script into the lab environment before the day of the exam. When you are logged in to (any) lab computer or, just run the command file ~/bin/submit . It should report that it is a Bourne-again shell script. If not, go here and download it before the day of the exam.

You will then have three options to submit your code for the exam:

  • Use the club program. If you download and run this program at any time on any lab machine, then it will save your credentials and you can use this to submit and see test cases during your exam. (Just go to the project homepage and follow the instructions.)
  • Use the web interface at This should work, but but you might have to use your submit script to log in because the USNA authentication (which somehow goes through Google) probably won't work on the day of the exam.
  • Use the submit script that you should have already downloaded. This will work, but you will not be able to see the auto-testing results which could be very helpful!

On the day of the exam

Open a terminal and run the following command:


This should:

  1. Confirm your name and that you're ready to begin
  2. Open a Google Chrome page where you can see the exam problems
  3. Create a directory ~/413pract for you to do your work, and open a terminal tab for you in that directory

Inside the ~/413pract directory that gets created, you should find two files:

  • exam.scm: Just contains "stubs" for the functions you are supposed to write for the exam. Write your solutions in this file.
  • A convenient shortcut to submit your exam.scm file to course "SI413" and project "pract".


There are 6 programming problems on the exam. Write your solutions to all of them in the same exam.scm file and submit as "SI413" project "pract". prior to the end of the exam period. You should be able to do this easily by running


from your ~/413pract directory.

Look at the auto-testing results. We will use the auto-tester to test your submissions, so make use of that feedback to make sure your code is running correctly!

If you encounter any issues, let your instructor know immediately.


  • You may consult your own course notes, anything posted on the course website, and any of your own previous work from the class.

  • You may use a tablet in airplane mode if you used that to take notes.

  • You may NOT consult with any other human, including your classmates and anyone else except the instructor.

  • You may NOT consult other internet sources not part of the course website

  • You may NOT perform any internet searches or post questions or queries online.

  • You may NOT discuss anything about this class or this exam with anyone that hasn’t taken it yet.

  • You may NOT use your laptop or cell phone.

  • You MUST follow good style practices for Scheme programming.

  • You MUST ask your instructor if anything is unclear or there is a problem with submission.


With some exceptions, you will only get credit for solutions that compile and pass all or almost all of the auto-tests. Expect to get a zero for code that doesn't compile or mostly does not work. Do not spend all of your time on just one or two problems!!


The exam is only viewable with a valid token, which is associated to a particular student. These tokens will be sent out by email prior to the exam.

Here are the times when the exam is open to each section:

  • Section 2: 07:54, 14 Sep 2023
  • Section 4: 09:54, 14 Sep 2023
  • Section 6: 13:29, 14 Sep 2023