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
Payday by Doja Cat
3 Format
You should treat this assignment like an exam. Therefore, you should do this work without consulting course staff except for critical issues (broken links, possible assignment typo, etc.).
4 Assignment
Remember the Virtual Art Store? You wrote several functions to convert between prices, but left one unwritten. You will complete it now.
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.
Finally, you must evaluate the testing plan from the prior Virtual Art Store assignment. Indicate how each sub-condition listed there fared: Was it useful? Was it clear? And what conditions did you miss? How did your plan fare, overall?
5 What to Turn In
Your program.
Your tests for this assignment.
Documentation of your design choices.
Evaluation of your earlier testing plan.
6 Starter
7 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 “silhouette” (circle at top-right) 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 provides should be made available on your personal dashboard, or is there some information you think Brown should not share?
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, 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: Twitter, for example, gives you the option to request a list of advertisers who have “uploaded” your contact details as part of an “audience” (go to “Settings | Account | Your Twitter Data | Interests and ads data | Tailored audiences”).
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.