Community Data Science Course (Spring 2023)/Week 1 coding challenges

From CommunityData

With every coding challenge, we're asking you to create a new notebook for every set of challenges. Please just create one notebook each week. Give each one a good descriptive file name (i.e., it should probably indicate the class, the week, and your name).

As you write your notebook, consider adding "Markdown" cells which you can just type normal text into. By doing this, you can make sure that your notebook is documented so that it's clear which code and cells are answering each question. That will make it easy for us to find which code is answering Question #2.1, for example.

Some of these questions build on each other and that will likely mean that there's some duplicate code. You don't have copy and paste the same variables over and over (if you define them once and aren't changing them that's fine). It should be done so that we can run every cell in your notebook from top-to-bottom and be able to see the answers to all of your code. You can try clearing the notebook and rerunning everything to verify that this is working before you submit.

Once you are done, submit by uploading your notebook to the class Github repository in the appropriate folder.

#1 Shortbread[edit]

No bonus points or anything but if you bake the shortbread, please let the rest of us know!

I found this simple nice shortbread recipe but I want to scale it up. Let's do it in Python!

#1.1 Compute the total volume[edit]

Write some Python code to include the basic proportions in three variables cups_of_flour (set to 2¼), cups_of_sugar (set to ½) and cups_of_butter (set to 1).

Now have your program print the total volume of shortbread dough with line that says something like the total volume is SOMENUMBEROF cups" (but please replace SOMENUMBEROF) with whatever the real number is. And make sure you use variables! Don't just type the numbers in!

#1.2 Scale it up![edit]

Now lets change the program so that it a new variable called number_of_batches. Lets set this equal to 1 by default. Now lets make it so that if you increase the number of batches, it will print the new total volume.

What is the total volume of ½ batch? How about 3 batches? How about 5?

#1.3 Will it fit in my pans?[edit]

I personally tend to bake shortbread in big sheets in deep baking pans. Lets say my baking pan can only hold 5 cups of dough. But I have three such baking pans!

Write some Python that prints out a message to tell me if the three total amounts above (half, 3, and 5 batches) will fit in 1 pan, 2 pans, 3 pans, or if it will be too much to fit in any of my pans!

Analyzing the course description[edit]

#2.1 Just the length[edit]

Write some python code where there's a variable that contains the course catalog description (available at the top of the syllabus) and tells me how many characters there are in the course description.

#2.2 Looking inside the text[edit]

  1. Write some code that tells us if that course description variable we made contains the word "python"? Have it print out helpful answers regardless of what it finds. Be ready to talk about and explain your answer!
  2. Now add some code that tells us if it contains either the word "python" or the word "statistics".
  3. Now add some more code to tell if it contains any of the words "python", "statistics", or "visualization"

#3 A program that knows its limits[edit]

Write code that has a variable called my_variable and that multiplies my_variable times 3 and prints out the value of the multiplication—but that FIRST checks to see if my_variable is a number and prints out a message you come up with, saying that it can't multiply something that is not a number.