1
Bentley University Fall 2022
CS 230
Introduction to Programming with Python
FINAL PROJECT – INTERACTIVE DATA-EXPLORER
In this last project you will develop an interactive data-driven web-based Python application
that tells a story with real-world data. You will show your mastery of many coding concepts as
you interact with data real-world data. You will use Pandas and NumPy modules for managing
and interacting with data, MatPlotLib, or Pandas charts for plotting, PyDeck (or other mapping
packages) for maps, and the Streamlit.io package for creating interactive web applications using
Python.
TELL A STORY WITH REAL-WORLD DATA
Choose one of these data sets (All sampled to several thousand rows) .
Boston Crime
Incident Reports
2021
Analyze Boston (data.boston.gov) Download CSV (7000
sample records).
Also download this file
containing names of
Boston Police Districts.
California Fire
Incidents, 2013 to
2020
https:
www.kaggle.com/ananthu017/calif
ornia-wildfire-incidents XXXXXXXXXX
Download CSV (from
data.gov)
New York City
Vehicle Collisions,
2015 to present
Description Download CSV (sample
data)
Volcanic Eruptions Description Download CSV (cleaned
data)
Used cars for sale
on Craigslist
Description Download CSV (sampled
data)
Skyscrapers around
the World
Description Download CSV (adapted
from
skyscrapercenter.com)
To ensure students create a variety of projects, you will sign up for and select a data set. if the
signups are not approximately equally distributed, I will assign a data set for you to use.
ASSIGNMENT DETAILS
PART 1. DESIGN – WHAT DO YOU WANT TO SHOW AND TELL WITH YOUR DATA?
The purpose of this part is to get you thinking about what you might do before you start coding.
Identify at least three different queries or questions you can ask about your data set and ways
to interact with and present the data based on your understanding of Pandas DataFrames,
MatPlotLib, maps, and the Streamlit.io packages.
https:
data.boston.gov/dataset/crime-incident-reports-august-2015-to-date-source-new-system
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/ESHdLaKMkTdJh2C5TtkPck8BM_R92UGwc7ERiMESG0mazw?e=a2ZkTa
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/EcTht4iFDJxKjHPqWXfsxVgBbhenSh88PcUWxV0cZZxECQ?e=KzljUu
https:
www.kaggle.com/ananthu017/california-wildfire-incidents XXXXXXXXXX
https:
www.kaggle.com/ananthu017/california-wildfire-incidents XXXXXXXXXX
https:
entleyedu-my.sharepoint.com/:x:/g/personal/axu_bentley_edu/EROlVURa9oNEhLnn7ccrF2EBN59cstvbGfgQ_yZhH0mCtg?e=sEoyrc
https:
www.kaggle.com/nypd/vehicle-collisions
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/EaUqrQ8CRT9JqGvocLB_-fEBGfyMrjqx0620Y4zfbRhCxg?e=WgFjn0
https:
volcano.si.edu/volcanolist_holocene.cfm
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/ETsaxqJW6SFPknWMKal0K7YBy10EJfOfXRbocSiRhQggZw?e=YfkbLV
https:
www.kaggle.com/austinreese/craigslist-carstrucks-data
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/EXMNKxF5KfdLm0Drvv5Wv-8BJAeKcWLd7G811rx_AXZD5A?e=AFgIX3
https:
www.skyscrapercenter.com
uildings
https:
entleyedu-my.sharepoint.com/:x:/g/personal/mfrydenberg_bentley_edu/EZfBR_h59_BJk7Uc8P4-jJMBFWl7dQkXNIRTKYdQCm9muQ?e=erVyyD
2
Bentley University Fall 2022
CS 230
Introduction to Programming with Python
Describe how your queries will be interactive by incorporating Streamlit's user interface
elements to obtain user input. Describe how you will visually present this data using charts,
graphs, Streamlit tables or maps. For example, if analyzing housing data, you might use a
dropdown list to specify a list of neighborhoods and a slider to specify a price range. You then
might display all rooms for rent in that neighborhood within that price range using a table,
chart, or map. (That's an easy one. At least one of your queries needs to be more complex than
this!)
Be sure your page is "user friendly" and as "polished" as possible. Be sure to label controls
equiring user interaction, make sure your charts have titles, legends or explanations that
would be helpful to the user.
Create a Word document describing your plans. Submit it on Blackboard. I will grade the
proposals in Blackboard within 48 hours approving your proposed questions or making
suggestions if they appear to be too complicated or too easy.
You may change your queries or visualizations after you start coding if you need to change your
plans. If you do this, please notify me during the development period.
Feel free to add to your project as you explore Pandas and Streamlit capabilities and find cool
ways to implement new or additional features. Part of your grade will be a
"complexity/originality" score. If you use a module or do something cool that we may not have
discussed in class or implement more than the minimum requirements, you will receive a
higher score.
A complexity score of 1 means you implemented the minimum requirements for this project. A
complexity score of zero means you didn’t meet the requirements.
PART 2. CODE.
Create your Python application with a Streamlit UI and the various visualizations. Create at least
three different charts, graphs of different types with custom legends, axis labels, tick marks,
colors, other features), or a map showing latitude and longitude. Be sure to include appropriate
context or labels in your user interface to cue the reader about which values to specify, and the
purpose of each chart or graph. You may wish to add a few sentences explaining each chart.
Place all UI controls in the left sidebar, and your visualizations in the main content area. Make
your application as professional looking as you can.
DUE DATE:
Post your code to Blackboard one days before the final exam class period, and plan to present
your project during our final exam class period.
CODING CHECKLIST
3
Bentley University Fall 2022
CS 230
Introduction to Programming with Python
As you write your program, be sure to include code that demonstrates each of these items.
Each contributes to your project grade (see the ru
ic below).
Python Coding: At least any four of these:
1. Functions:
a. At least one function that has two parameters that returns a value
. At least one function with a default parameter that returns a value
c. At least one function that does not return a value
2. Lists and Loops:
a. A list comprehension
. A loop that iterates through items in a list, dictionary, or tuple
3. Data Structures:
a. Code that uses at least two different methods of lists, dictionaries, or tuples.
Streamlit:
1. At least three different UI Controls (sliders, drop downs, multi-selects, text box, etc.)
2. Page design features (sidebar, fonts, colors, images, navigation)
3. Well-designed, professional-appearing, interactive website
Charts and Maps:
1. At least three different charts (well labeled)
2. Use legends, colors, labels, titles, as appropriate
3. At least one map (st.map is only partial credit) – for full credit, include dots, icons, or other
map features
Pandas: At least and 4 of these:
1. Sorting data in ascending or descending order, by one or more columns
2. Filtering data by one condition
3. Filtering data by two or more conditions with AND or OR
4. Analyzing data with pivot tables
5. Add/drop/select/create new/group columns, frequency count, other features as you wish
6. Try doing text analysis – find common words in titles, etc, or searching for locations with a
particular name.
Usual rules about writing "good" code apply:
• Make your code as modular and easy to follow as possible
• Include a docstring, comments, and meaningful variable names.
4
Bentley University Fall 2022
CS 230
Introduction to Programming with Python
• If you did something "cool" in your code that you are incredibly proud of, please write a
comment call attention to what you did.
• If you refe
ed to any online articles or other information beyond class examples, please
e sure to list them as references / comments in your code.
• Make sure the program runs and the output is co
ect.
OTHER MODULES OR PACKAGES. (EXTRA CREDIT)
Python has several modules developed by other Python programmers that we have not
covered during this semester. You are welcome to explore other package or modules (especially
those available for visualizing data) which are available in Python's Package Index. Use one in a
meaningful way in your project for extra credit. Examples include Seaborn charts, Folium maps,
WordCloud, etc. See https:
pypi.org/ for the complete list.
PART 3. PRESENT.
Please present your project during our class final exam period showing both a demonstration of
your project running in the
owser and then describing at least one section of the code that
you wrote of which you are most proud! Demonstrate what you feel is the most interesting
part of your project. Then talk through the Pandas and Streamlit code well enough to convince
me that you understand how your code works and what you did.
During the presentations you will critique and evaluate the projects of your classmates. Their
evaluation of your project may contribute to the complexity and presentation scores on your
project.
PART 4. PUBLISH YOUR APPLICATION ONLINE (EASY EXTRA CREDIT)
Post your application to the web. Sign up for a free Streamlit Cloud community account at
https:
streamlit.io/cloud and follow the instructions to publish your app. Share your published
link on the signup sheet.
GRADING
The Project is worth 16 percent of your final grade. The project is based on 50 points, as
follows:
REQUIREMENTS POINTS
Project: Proposal, Design and Queries submitted on time 2
Python Coding Features: at least four @ 2.5 points 10
Streamlit Features: three controls and other page design features 8
Charts and Maps: three charts and one map 12
Pandas Features: at least four – sort, filter, etc. 12
https:
pypi.org
https:
streamlit.io/cloud
5
Bentley University Fall 2022
CS 230
Introduction to Programming with Python
Coding: Well documented, efficient, modular 3
Complexity:
0 = Your project implements less than the minimum requirements
1 = Your project implements the minimum requirements
2 = Your project includes some complex queries, charts, or UI features
3 = You went above and beyond in requirements, ether doing more than
what is required, or by including features, modules, or packages learned
independently or not described in class
3
Total 50
Extra Credit: Publish to Streamlit Cloud 2
Extra Credit: Use a Python package or module we did not use in class 2
Extra Credit: Creating a 10-minute video of your entire final project which can be
used for interviews and your LinkedIn page.
2
GETTING HELP:
This is a final project, so please do not discuss your program with anyone.
You can ask CIS Sandbox tutors or the instructor for assistance on related or general topics, but
you cannot ask them to help you write your code for this project. For example, you can ask
tutors to help review examples of how to create bar charts in Python (in general), but you
cannot ask them to help you debug a bar chart you might create using the data set for this
project.
in
RANK NAME CITY Full Address Latitude Longitude COMPLETION Height Meters Feet FLOORS MATERIAL FUNCTION Link
1 Burj Khalifa Dubai Burj Khalifa Dubai XXXXXXXXXX XXXXXXXXXX 2010 828 m/2,717 ft 828 m 2,717 ft 163 steel/concrete office / residential / hotel https:
www.skyscrapercenter.com
uilding
urj-khalifa/3
2 Shanghai Tower Shanghai Shanghai Tower Shanghai XXXXXXXXXX XXXXXXXXXX 2015 632 m/2,073 ft 632 m 2,073 ft 128 composite hotel / office https:
www.skyscrapercenter.com
uilding/shanghai-towe
56
3 Makkah Royal Clock Tower Mecca Makkah Royal Clock Tower Mecca XXXXXXXXXX XXXXXXXXXX 2012 601 m/1,972 ft 601 m 1,972 ft 120 steel/concrete other / hotel https:
www.skyscrapercenter.com
uilding/makkah-royal-clock-towe
84
4 Ping An Finance Center Shenzhen Ping An Finance Center Shenzhen XXXXXXXXXX XXXXXXXXXX 2017 599.1 m/1,965 ft 599.1 m 1,965 ft 115 composite office https:
www.skyscrapercenter.com
uilding/ping-an-finance-cente
54
5 Lotte World Tower Seoul Lotte World Tower Seoul XXXXXXXXXX XXXXXXXXXX 2017 554.5 m/1,819 ft 554.5 m 1,819 ft 123 composite hotel / residential / office / retail https:
www.skyscrapercenter.com
uilding/lotte-world-towe
88
6 One World Trade Center New York City One World Trade Center New York City XXXXXXXXXX XXXXXXXXXX 2014 541.3 m/1,776 ft 541.3 m 1,776 ft 94 composite office https:
www.skyscrapercenter.com
uilding/one-world-trade-cente
98
7 Guangzhou CTF Finance Centre Guangzhou Guangzhou CTF Finance Centre Guangzhou XXXXXXXXXX XXXXXXXXXX 2016 530 m/1,739 ft 530 m 1,739 ft 111 composite hotel / residential / office https:
www.skyscrapercenter.com
uilding/guangzhou-ctf-finance-centre/176
7 Tianjin CTF Finance Centre Tianjin Tianjin CTF Finance Centre Tianjin XXXXXXXXXX XXXXXXXXXX 2019 530 m/1,739 ft 530 m 1,739 ft 97 composite hotel / serviced apartments / office https:
www.skyscrapercenter.com
uilding/tianjin-ctf-finance-centre/310
9 CITIC Tower Beijing CITIC Tower Beijing XXXXXXXXXX XXXXXXXXXX 2018 527.7 m/1,731 ft 527.7 m 1,731 ft 109 composite office https:
www.skyscrapercenter.com
uilding/citic-towe
11116
10 TAIPEI 101 Taipei TAIPEI 101 Taipei XXXXXXXXXX XXXXXXXXXX 2004 508 m/1,667 ft 508 m 1,667 ft 101 composite office https:
www.skyscrapercenter.com
uilding/taipei-101/117
11 Shanghai World Financial Center Shanghai Shanghai World Financial Center Shanghai XXXXXXXXXX XXXXXXXXXX 2008 492 m/1,614 ft 492 m 1,614 ft 101 composite hotel / office https:
www.skyscrapercenter.com
uilding/shanghai-world-financial-cente
131
12 International Commerce Centre Hong Kong International Commerce Centre Hong Kong XXXXXXXXXX XXXXXXXXXX 2010 484 m/1,588 ft 484 m 1,588 ft 108 composite hotel / office https:
www.skyscrapercenter.com
uilding/international-commerce-centre/137
13 Central Park Tower New York City Central Park Tower New York City XXXXXXXXXX XXXXXXXXXX 2020 472.4 m/1,550 ft 472.4 m 1,550 ft 98 concrete residential https:
www.skyscrapercenter.com
uilding/central-park-towe
14269
14 Lakhta Center St. Petersburg Lakhta Center St. Petersburg XXXXXXXXXX XXXXXXXXXX 2019 462 m/1,516 ft 462 m 1,516 ft 87 composite office https:
www.skyscrapercenter.com
uilding/lakhta-cente
12575
15 Vincom Landmark 81 Ho Chi Minh City Vincom Landmark 81 Ho Chi Minh City XXXXXXXXXX XXXXXXXXXX 2018 461.2 m/1,513 ft 461.2 m 1,513 ft 81 composite hotel / residential https:
www.skyscrapercenter.com
uilding/vincom-landmark-81/18192
16 Changsha IFS Tower T1 Changsha Changsha IFS Tower T1 Changsha XXXXXXXXXX XXXXXXXXXX 2018 452.1 m/1,483 ft 452.1 m 1,483 ft 94 composite hotel / office https:
www.skyscrapercenter.com
uilding/changsha-ifs-tower-t1/13144
17 Petronas Twin Tower 1 Kuala Lumpur Petronas Twin Tower 1 Kuala Lumpur XXXXXXXXXX XXXXXXXXXX 1998 451.9 m/1,483 ft 451.9 m 1,483 ft 88 composite office https:
www.skyscrapercenter.com
uilding/petronas-twin-tower-1/149
17 Petronas Twin Tower 2 Kuala Lumpur Petronas Twin Tower 2 Kuala Lumpur XXXXXXXXXX XXXXXXXXXX 1998 451.9 m/1,483 ft 451.9 m 1,483 ft 88 composite office https:
www.skyscrapercenter.com
uilding/petronas-twin-tower-2/150
19 Suzhou IFS Suzhou Suzhou IFS Suzhou XXXXXXXXXX XXXXXXXXXX 2019 450 m/1,476 ft 450 m 1,476 ft 95 composite hotel / office / serviced apartments https:
www.skyscrapercenter.com
uilding/suzhou-ifs/196
19 Zifeng Tower Nanjing Zifeng Tower Nanjing XXXXXXXXXX XXXXXXXXXX 2010 450 m/1,476 ft 450 m 1,476 ft 66 composite hotel / office https:
www.skyscrapercenter.com
uilding/zifeng-towe
165
21 The Exchange 106 Kuala Lumpur The Exchange 106 Kuala Lumpur XXXXXXXXXX XXXXXXXXXX 2019 445.5 m/1,462 ft 445.5 m 1