CS 5010: Problem Set 01
Out: Monday, 16 January 2017
Due: Monday, 23 January 2017 at 6pm
This is an individual assignment. You are not allowed to discuss this problem set with any other person. You are also not allowed to search for or to view any solutions to similar problems that may be available on the World-Wide Web or in other resources that might otherwise have been available to you.
The main purpose of this problem set is to give you some practice with the systems we will use in CS 5010.
In particular, you need to know how to commit your solution and how to push your commits to the course's GitHub site. To submit your solution, follow our instructions on How to Submit Your Homework, and be sure to include the required deliverables.
We will check to see whether your have submitted a solution for this problem set and whether it contains the required deliverables, but this problem set will not otherwise be graded.
You must use Racket's HtDP Beginning Student Language for this problem set.
You should begin your work on this problem set by using
git to clone your GitHub repository from the
CS 5010 GitHub site.
The name of your GitHub repository is
pdp-YOURNAME, where YOURNAME
is your CCIS ID.
Your repository will probably be empty when you clone it.
Within your cloned repository, you should create a new
All of the code you write for this problem set will go into
You will also need to download a copy of
and put it in your
set01 directory along with
you will write for this problem set.
Each of those files must import that library by including
(require rackunit) (require "extras.rkt")
near the top of the file, preceded only by your comments describing the file.
Immediately following those
your file should state a
provide declaration for
each deliverable function. For example, your
file should say
(provide cvolume) (provide csurface)
provide declarations allow our testing
require your file and check
to see whether you've provided all of the deliverable functions.
Remember to follow the design recipe. Your deliverables include the data definitions you need (including interpretations and templates), contracts, purpose statements, examples and tests, and design strategies in addition to your function definitions.
Remember to fill out a
work session report
at the end of each
work session. Tell
add it to
the files you will commit, and then commit and push that report
in addition to committing and pushing your entire
set01 directory. Do this at the end of every work
Do the following exercises from the textbook:
Exercise 12 (
csurface). Put your solution in a file named
Exercise 14 (
string-last). Put your solution in a file named
Exercise 19 (
string-insert). Put your solution in a file named
Exercise 27 (refactoring the
profitprogram). Put your solution in a file named
Exercise 38 (
string-remove-last). Put your solution in a file named