Please find your homework assignments on Gradescope. You may find links to starter files. You can also find them available at our class’s repository in /assets/code.

Assignment Guidelines

  1. You must use #lang racket for these homework.

  2. You must test your solutions before submitting your assignment. We may have provided you some test cases to clarify the prose and to get you started, but the provided test cases are not exhaustive.

  3. Follow the design recipe. If you are new to this you can see the textbook for more details.

  4. We expect to see data definitions, signatures, and purpose statements. We’re flexible viz the “syntax” you use for your signatures and data definitions, but we want to see them.

  5. Your solutions must be naturally recursive or you will lose credit.

  6. Remember, you need not and should not consider bad data in your definition.

  7. You may not use built-in procedures that handle the bulk of the work. For example, you may not use the append function from Racket to implement your append. But once you have defined your own function for a problem, feel free to use it for subsequent problems.

  8. The objective is not simply to write programs that get the correct answers; it is to write answers in the style of programs written in class.

  9. Please feel free to submit your work as many times as you wish, we will grade the last submission prior to the due date (and time).

  10. I have linked notes and resources for you on the schedule; you should consult them.