Assignment 3 - Spring 2021

Assigned: Mon, Apr 5
Due: Mon, Apr 19 Wed, Apr 21, 11:59pm (extended)

bouncing balls

For this assignment you will:

  • Design a world (big-bang) program that displays many bouncing balls, of different sizes, colors, and velocities.
  • Follow the Design Recipe to develop functions that consume/produce an individual ball, and a list of balls.


  1. Open a browser and copy/paste this URL: https://classroom.github.com/a/fj-1PYxY

  2. Login to Github and you will be prompted to accept this assignment
    1. After you click on the [Accept this assignment] button, you will see a new page display in your browser with the message:
      1. You accepted the assignment, Assignment 3. We're configuring your repository now. This may take a few minutes to complete. Refresh this page to see updates.
    2. After you refresh the page you should see a page with the message: “You're ready to go!”
    3. Note: this will create your own copy of Assignment 3 for you to work on, but it's not on your computer yet.

  3. Click on the URL where your assignment repository has been created: https://github.com/Vassar-cs101-mlsmith/assignment-3-yourGitHubID
    1. you are now on the GitHub page for your Assignment 3 repository

  4. Click on the green button to download your [Code]
    1. a “Clone” dialog box will appear, with the HTTPS tab underlined in red (if not, click on the HTTPS tab to select it)
    2. select the last option labeled “Download ZIP” and save it on your computer
    3. move the Assignment 3 zip file from its download location to your cs101 course folder.
    4. extract the contents of the zip file either by double-clicking on it or control-clicking on it and selecting the appropriate option to extract its contents
    5. navigate into your assign3 folder and confirm you see the assign3.rkt file there.

For this assignment, you will design a world (big-bang) program that moves many balls around the scene simultaneously, each one bouncing off all four walls of the scene. I've provided you with starter code and instructions that you should find helpful. Your balls should be different colors and sizes, and move with different velocities.

To get started, launch DrRacket and follow the instructions provided in the assign3.rkt to complete the assignment.

Be sure to follow the Design Recipe for each function you develop.


  • From your browser on the GitHub page for your Assignment 3 repository, click on the [Add file] drop-down button and select “Upload files”
  • From your assign3 folder on your desktop, click and drag the assign3.rkt file onto your browser where it says, “Drag files here to add them to your repository”
    • just below the region of the webpage you should see both files appear; they'll be just above the Commit Changes section of the page.
  • You are now ready to commit changes! Click on the green [Commit changes] button.
  • Your updated assign3.rkt file file should now be in your Assignment 3 GitHub repository.