Conversions
1 What is This Assignment’s Purpose?
In this assignment we want you to get more practice with graph algorithms. This time, the task will intentionally be left somewhat open-ended, so you can explore the design space of graph algorithms and reflect on your choices. You will also reflect on your test-planning with an eye towards becoming better at that.
2 Theme Song
Money, Money, Money by Abba
3 Assignment
Remember the Virtual Art Store? You wrote several functions to convert
between prices, but left one unwritten. You will complete it now. (All
the stipulations that applied to data there—
get-art-in-4 :: ArtworkTable, ConversionTable, Number, String -> Number
In prose, briefly describe the situation.
Create a small example (which would be a pair of tables, one for artwork and one for currency) that illustrates it.
Restate the situation in terms of the example.
Describe which outcome you chose, in prose and in terms of the example. If you have a particularly strong justification for why you made that choice, tell us. Don’t worry, there are no secret “bad” choices for which you might be penalized; any choice you make that satisfies the problem specification is okay.
Remember to test your program.
4 What to Turn In
Unfortunately, if you import sheets from Google Drive, this can break our autograder. Therefore, while you’re welcome to create tables in Drive while developing your code, for your submission, please remove these imports. Please have any tables you refer to be in the source of the program itself.
Your program.
Your tests for this assignment.
Documentation of your design choices.
5 Starter
6 Socially Responsible Computing
Credits: This assignment directly borrows from a related one by Prof. Malte Schwartzkopf.
You should consider starting this part of the assignment early, because it may take a while to obtain data. Don’t start it on the last day!
Read/View
Read this article.
Write
Before you proceed:
First: we want you to not make requests to any service you are uncomfortable with. That’s why we have the data from Brown: because you may not have any web service accounts and, even if you do, you may be uncomfortable requesting data from them. In particular, if requesting the data will put you at risk, do not do it! If you are uncomfortable getting data even from Brown, tell us why and we’ll see what we can work out.
Second: in your writeup, do not reveal to us anything meant to be private. In particular, do not give us your data! We can’t guarantee its security and don’t want to know private things about you.
Onward to what we want you to do:
In this assignment, you will investigate your personal data stored in different services. We will start with Brown! Go to https://my.brown.edu/ and login. Click on your “ellipses” (circle at top-right, next to search) and click on “Data & Privacy” under it. Please note that these data are meant for you only. Do not share these personal data with anyone else unless you fully understand the risks inherent in doing so.
(Note: if you see the message “There was an issue gathering your authorization event history. Please contact the Help Desk if the issue persists”, try again later: there are limits on how many requests can be made in a duration. If the issue persists for a day, post on EdStem.)
Are the Brown data complete? In other words, are there any data you expect Brown to have collected on you that you do not see on the dashboard?
Do you think all the data Brown has about you should be made available on your personal dashboard, or is there some information you think Brown should not provide?
Optional Activity
We suggest you consider making a similar data request for other web services you use. For some large services, you can find instructions online (e.g., Google, Facebook, Twitter/X, Instagram, Spotify), while others may require you to make a request (e.g., Pinterest, Netflix). For other services, a web search for “<service name> download data” often helps find instructions. There may also be other information sources: some sites have an option to request a list of advertisers who have “uploaded” your contact details as part of an “audience”.
Is it clear what each field represents? Do you think any groups of people might have trouble understanding the data?
What were you surprised by/Was there data you did not expect to see? Why?
Are there dangers inherent in some of the data? Relate this to the Healy article.