World Progress
In this project, you'll explore data from Gapminder.org (http://gapminder.org), a website dedicated to
providing a fact-based view of the world and how it has changed. That site includes several data
visualizations and presentations, but also publishes the raw data that we will use in this project to recreate
and extend some of their most famous visualizations.
The Gapminder website collects data from many sources and compiles them into tables that describe many
countries around the world. All of the data they aggregate are published in the Systema Globalis
(https://github.com/open-numbers/ddf--gapminder--systema_globalis/blob/master/README.md). Their goal
is "to compile all public statistics; Social, Economic and Environmental; into a comparable total dataset." All
data sets in this project are copied directly from the Systema Globalis without any changes.
This project is dedicated to Hans Rosling (https://en.wikipedia.org/wiki/Hans_Rosling) (1948-2017), who
championed the use of data to understand and prioritize global development challenges.
Logistics
Deadline. This project is due at 11:59pm on Friday 3/1. Projects will be accepted up to 2 days (48 hours)
late; a project submitted less than 24 hours after the deadline will receive 2/3 credit, a project submitted
between 24 and 48 hours after the deadline will receive 1/3 credit, and a project submitted 48 hours or more
after the deadline will receive no credit. It's much better to be early than late, so start working now.
Checkpoint. For full credit, you must also complete the Þrst 8 questions and submit them by 11:59pm on
Friday 2/22. You will have some lab time to work on these questions, but we recommend that you start the
project before lab and leave time to Þnish the checkpoint afterward.
Partners. You may work with one other partner; your partner must be from your assigned lab section. Only
one of you is required to submit the project. On okpy.org (http://okpy.org), the person who submits should
also designate their partner so that both of you receive credit.
Rules. Don't share your code with anybody but your partner. You are welcome to discuss questions with
other students, but don't share the answers. The experience of solving the problems in this project will
prepare you for exams (and life). If someone asks you for the answer, resist! Instead, you can demonstrate
how you would solve a similar problem.
Support. You are not alone! Come to office hours, post on Piazza, and talk to your classmates. If you want
to ask about the details of your solution to a problem, make a private Piazza post and the staff will respond.
If you're ever feeling overwhelmed or don't know how to make progress, email your TA or tutor for help. You
file:///Users/nrao/Downloads/project1-1.html Page 1 of 36
,project1 2/15/19, 2(04 PM
can Þnd contact information for the staff on the course website (http://data8.org/sp19/staff.html).
Tests. The tests that are given are not comprehensive and passing the tests for a question does not mean
that you answered the question correctly. Tests usually only check that your table has the correct column
labels. However, more tests will be applied to verify the correctness of your submission in order to assign
your Þnal score, so be careful and check your work! You might want to create your own checks along the
way to see if your answers make sense. Additionally, before you submit, make sure that none of your cells
take a very long time to run (several minutes).
Free Response Questions: Make sure that you put the answers to the written questions in the indicated cell
we provide. Check to make sure that you have a Gradescope (http://gradescope.com) account, which is
where the scores to the free response questions will be posted. If you do not, make sure to reach out to your
assigned (u)GSI.
Advice. Develop your answers incrementally. To perform a complicated table manipulation, break it up into
steps, perform each step on a different line, give a new name to each result, and check that each
intermediate result is what you expect. You can add any additional names or functions you want to the
provided cells. Make sure that you are using distinct and meaningful variable names throughout the
notebook. Along that line, DO NOT reuse the variable names that we use when we grade your answers. For
example, in Question 1 of the Global Poverty section, we ask you to assign an answer to latest . Do not
reassign the variable name latest to anything else in your notebook, otherwise there is the chance that
our tests grade against what latest was reassigned to.
You never have to use just one line in this project or any others. Use intermediate variables and multiple
lines as much as you would like!
To get started, load datascience , numpy , plots , and ok .
In [2]: from datascience import *
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plots
plots.style.use('fivethirtyeight')
from client.api.notebook import Notebook
ok = Notebook('project1.ok')
====================================================================
=
Assignment: World Progress
OK, version v1.12.5
====================================================================
=
file:///Users/nrao/Downloads/project1-1.html Page 2 of 36
,project1 2/15/19, 2(04 PM
Before continuing the assignment, select "Save and Checkpoint" in the File menu and then execute the
submit cell below. The result will contain a link that you can use to check that your assignment has been
submitted successfully. If you submit more than once before the deadline, we will only grade your Þnal
submission. If you mistakenly submit the wrong one, you can head to okpy.org and ßag the correct version.
There will be another submit cell at the end of the assignment when you Þnish!
In [ ]: _ = ok.submit()
1. Global Population Growth
The global population of humans reached 1 billion around 1800, 3 billion around 1960, and 7 billion around
2011. The potential impact of exponential population growth has concerned scientists, economists, and
politicians alike.
The UN Population Division estimates that the world population will likely continue to grow throughout the
21st century, but at a slower rate, perhaps reaching 11 billion by 2100. However, the UN does not rule out
scenarios of more extreme growth.
(http://www.pewresearch.org/fact-tank/2015/06/08/scientists-more-worried-than-public-about-worlds-
growing-population/ft_15-06-04_popcount/)
In this section, we will examine some of the factors that inßuence population growth and how they are
changing around the world.
The Þrst table we will consider is the total population of each country over time. Run the cell below.
In [3]: population = Table.read_table('population.csv')
population.show(3)
geo time population_total
abw 1800 19286
abw 1801 19286
abw 1802 19286
... (87792 rows omitted)
file:///Users/nrao/Downloads/project1-1.html Page 3 of 36
, project1 2/15/19, 2(04 PM
Note: The population csv Þle can also be found here (https://github.com/open-numbers/ddf--gapminder--
systema_globalis/raw/master/ddf--datapoints--population_total--by--geo--time.csv). The data for this
project was downloaded in February 2017.
Bangladesh
In the population table, the geo column contains three-letter codes established by the International
Organization for Standardization
(https://en.wikipedia.org/wiki/International_Organization_for_Standardization) (ISO) in the Alpha-3
(https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Current_codes) standard. We will begin by taking a close
look at Bangladesh. Inspect the standard to Þnd the 3-letter code for Bangladesh.
Question 1. Create a table called b_pop that has two columns labeled time and population_total .
The Þrst column should contain the years from 1970 through 2015 (including both 1970 and 2015) and the
second should contain the population of Bangladesh in each of those years.
In [4]: b_pop = population.where('geo', 'bgd').drop('geo').where('time', are.b
etween(1970, 2016)) # SOLUTION
b_pop
Out[4]: time population_total
1970 65048701
1971 66417450
1972 67578486
1973 68658472
1974 69837960
1975 71247153
1976 72930206
1977 74848466
1978 76948378
1979 79141947
... (36 rows omitted)
file:///Users/nrao/Downloads/project1-1.html Page 4 of 36