Community Data Science Course (Spring 2023)/Week 4 coding challenges: Difference between revisions

From CommunityData
No edit summary
No edit summary
Line 1: Line 1:
== Bored API ==
== #1 Bored API ==


First, let's work through a few examples from the [http://www.boredapi.com/ Bored API]:
First, let's work through a few examples from the [http://www.boredapi.com/ Bored API]:
Line 8: Line 8:
# Write a Python program that prints out one random activity of each type that the Bored API supports.  
# Write a Python program that prints out one random activity of each type that the Bored API supports.  


== Learning a new API ==
== #2 Learning a new API ==


In this exercise, I want to you to practice learning to use a new API and practice reading some API documentation. We're going to start with the '''Dog API''' which is online at: https://dogapi.dog
In this exercise, I want to you to practice learning to use a new API and practice reading some API documentation. We're going to start with the '''Dog API''' which is online at: https://dogapi.dog
Line 18: Line 18:
# Finally, write a for loop that gets 5 sets of facts 5 times (you can just try something like <code>for number in [1,2,3,4,5]</code>, downloads the lists of dog facts, and then writes out a new tab-separated values (TSV) file with columns: (1) ID of the dog fact, and (2) the fact itself!
# Finally, write a for loop that gets 5 sets of facts 5 times (you can just try something like <code>for number in [1,2,3,4,5]</code>, downloads the lists of dog facts, and then writes out a new tab-separated values (TSV) file with columns: (1) ID of the dog fact, and (2) the fact itself!


== Mapping! ==
== #3 Mapping! ==


This set of questions will all require the [https://nominatim.openstreetmap.org/ui/search.html the Nominatim API]. As always, [https://nominatim.org/release-docs/develop/api/Search/ API documentation is online].
This set of questions will all require the [https://nominatim.openstreetmap.org/ui/search.html the Nominatim API]. As always, [https://nominatim.org/release-docs/develop/api/Search/ API documentation is online].

Revision as of 23:24, 17 April 2023

#1 Bored API

First, let's work through a few examples from the Bored API:

  1. Write some Python code to use the API to get a free activity that I could do with my partner. Write a string that prints out now only the activity but also the accessibility, price, and participants in a sentence.
    1. Extend that code so that it gets me 5 activities! Once again, just print out the activity itself.
  2. First get a random activity from the API and print it out along with the type of activity. Now get me another activity that's of the same type as the random activity you collected and it print it out as well.
  3. Write a Python program that prints out one random activity of each type that the Bored API supports.

#2 Learning a new API

In this exercise, I want to you to practice learning to use a new API and practice reading some API documentation. We're going to start with the Dog API which is online at: https://dogapi.dog

  1. Visit the Dog API website and read the API documentation
  2. Write a URL that will return a dog fact
  3. Write a single URL that will return 5 dog facts
  4. Take your code to request a single dog fact and put into a Python program that uses requests.get() and passes in parameters with the params= argument.
  5. Finally, write a for loop that gets 5 sets of facts 5 times (you can just try something like for number in [1,2,3,4,5], downloads the lists of dog facts, and then writes out a new tab-separated values (TSV) file with columns: (1) ID of the dog fact, and (2) the fact itself!

#3 Mapping!

This set of questions will all require the the Nominatim API. As always, API documentation is online.

  1. Are there more cafes in Ballard or Capitol Hill? (Hint: you'll need to look into the "Result limitation" section of the API documentation)
  2. Are there more dentists near the University or near Downtown?
  3. Write a program to find the nearest zipline to the town of Snohomish, WA.
    1. It's important to be alert when ziplining! Once you've found a nearby zipline, have you program use that result to find the nearest cafe to the ziplining place you identify!
  4. Use the geocoding API to look up a specific latitude and longitude of your choice (try this building!).
  5. Craft a query using the search API to find colleges in Seattle. (Hint: you'll want to set bounded=1 and use viewbox). Print the name and location of every college you find.
    1. How can you tell that a place returned by the API is in fact a college?