# Homework

Please find your homeworks listed and available on handins. From here, you will find linked starter files when appropriate (almost always, after the first assignment).

# Assignment Guidelines

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

2. You must test your solutions before submitting your assignment. We have provided some test cases for each exercise 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.