Course Syllabus
CP255 Urban Informatics and Visualization
Scheduling: Mon/Wed, 12:30am-2:00pm
Location: 214 Wurster Hall computer lab
| Instructor: Paul Waddell, waddell@berkeley.edu | Office Hours: https://calendly.com/waddell |
|
GSI: Arezoo Besharati, arezoo.bz@berkeley.edu |
Office Hours: https://calendly.com/arezoo |
This is a hands-on course that trains students to analyze urban data, develop indicators, and create visualizations and maps using the Python programming language, open source tools, and public data. The course will first introduce the fundamentals of programming in Python before moving on to a survey of data analysis/visualization tools and technologies. Classroom sessions will include lectures and workshops. A series of exercises will reinforce the skills and topics being presented, and a final project will provide an opportunity for students to develop a more complete project from harvesting data from Open Data portals to synthesizing and analyzing those data to explore a question or problem, to communicating their results in a web map and blog, as well as a final presentation.
COURSE SYNOPSIS AND LEARNING OBJECTIVES
Topics to be covered include:
• Fundamentals of programming with Python and Jupyter notebooks
• Cleaning, manipulating, and analyzing urban data
• Developing spatial indicators and mapping urban data with open source GIS tools
COURSE PREREQUISITES
This course is open to students from across campus, but priority enrollment will be given to students in the Master of City Planning program.
COURSE ASSIGNMENTS AND ASSESSMENT
Students will develop skills gradually through exercises paced over the semester. These will typically involve writing some code and documenting it, using IPython Notebooks that can be shared and interactively run inside a web browser, and a writeup discussing the assignment and its results. Exercises will generally be due Sunday night at 11:59pm.
Each exercise except the first one (5 points) will be worth 20 points and the final project/presentation will be worth 100. Exercises will be tasks that demonstrate a degree of mastery of skills, and will be used as a means of ensuring that students are keeping up with the material and not falling behind. All assignments will be marked down 10% for each day late, so please submit on time. Assignments will represent 50% of the final course grade.
Final projects will require harnessing the skills practiced in the exercises and developing a more independent work plan to accomplish an analysis of data. Final projects will represent 45% of the total grade in the course.
Please make sure you arrive on time to class (we will start at 12:40 - please be in class by then). Due to the nature of the computer lab, it can be very distracting to have students trickling in after class has begun. Make sure you have a keycard with access to room 214 and please do not knock on the door to be let in after class has begun. If you are taking this class and are not a Master of City Planning student, you must sign up for a computer account and access to the 214 lab. This may require paying a fee. You can sign up in 477 Wurster Hall.
Attendance policy: students may not miss more than three class sessions without adversely impacting the participation component of their grade, which represents 5% of the total grade in the course.
READINGS AND RESOURCES
For the most part, the lecture notes, tutorials and examples provided on this website will provide a good foundation for the skills students will gain in thew course. Some of the key software packages we will be using have free documentation available, and you should make extensive use of these to help you climb the learning curve.
- Downey, Allen. 2013. Think Python Download Think Python: How to Think Like a Computer Scientist. Green Tea Press. .
- IPython Documentation Links to an external site.. 2017. This online documentation explains what IPython is and how to use it.
- McKinney, Wes. 2012. Python for Data Analysis Download Python for Data Analysis. O'reilly. Available under Files > Reading Materials. You may also want to access the online Documentation available in pdf Links to an external site..
This course requires a lot of experimentation and trial-and-error. Google is your best friend! Google your questions, Google any error messages, and if you can't find an answer, email Paul and Arezoo. When you email us, tell us what you Googled and what you've discovered, and include screenshots and error messages. The key to success in this course has been repetition: keeping up on the readings, writing lots of code over and over, and stretching to figure out "what next".
The schedule below includes the topics for each class session and the exercises' due dates. Click a class session for information such as required readings, instructions, IPython notebooks, necessary data sets, etc.
SCHEDULE
The topics this semester are grouped into four phases:
Part 1: Introduction to Programming, Data Acquisition, and Basic Geospatial Data Visualization
Part 2: Intermediate Data Acquisition, Data Wrangling, and Web Geospatial Data Visualization
Part 3: More Advanced Topics in Data Acquisition, Spatial Analysis, and Web Geospatial Data Visualization
Part 4: Workshops and Final Project Delivery
Course Summary:
| Date | Details | Due |
|---|---|---|
| Wed Aug 23, 2017 | Calendar Event Introduction | 12:30pm to 2pm |
| Sun Aug 27, 2017 | Assignment Exercise 1: Anaconda, OCF and Survey | due by 11:59pm |
| Mon Aug 28, 2017 | Calendar Event Python Data Types | 12:30pm to 2pm |
| Wed Aug 30, 2017 | Calendar Event Python Data Types | 12:30pm to 2pm |
| Mon Sep 4, 2017 | Calendar Event No Class: Labor Day | 12am |
| Wed Sep 6, 2017 | Calendar Event Using Wordpress and Carto to make a blog | 12:30pm to 2pm |
| Mon Sep 11, 2017 | Calendar Event Programming Logic | 12:30pm to 2pm |
| Wed Sep 13, 2017 | Calendar Event Programming Logic | 12:30pm to 2pm |
| Assignment Exercise 3: Wordpress post with Carto | due by 12:30pm | |
| Mon Sep 18, 2017 | Calendar Event Working with Files | 12:30pm to 2pm |
| Wed Sep 20, 2017 | Calendar Event QGIS Tutorial | 12:30pm to 2pm |
| Assignment Exercise 4: programming logic | due by 12:30pm | |
| Mon Sep 25, 2017 | Calendar Event Working with Pandas Dataframes | 12:30pm to 2pm |
| Wed Sep 27, 2017 | Calendar Event Working with Pandas Dataframes | 12:30pm to 2pm |
| Assignment Exercise 5: working with data files | due by 12:30pm | |
| Mon Oct 2, 2017 | Calendar Event Data Manipulation | 12:30pm to 2pm |
| Wed Oct 4, 2017 | Calendar Event Data Manipulation | 12:30pm to 2pm |
| Assignment Exercise 6: Working with Pandas dataframes | due by 12:30pm | |
| Mon Oct 9, 2017 | Calendar Event Working with APIs | 12:30pm to 2pm |
| Wed Oct 11, 2017 | Calendar Event Working with APIs | 12:30pm to 2pm |
| Assignment Final Project Proposal | due by 12:30pm | |
| Assignment In-class quiz: Working with Pandas | due by 2pm | |
| Mon Oct 16, 2017 | Calendar Event Data Visualization | 12:30pm to 2pm |
| Wed Oct 18, 2017 | Calendar Event Data Visualization | 12:30pm to 2pm |
| Mon Oct 23, 2017 | Calendar Event Mapping | 12:30pm to 2pm |
| Wed Oct 25, 2017 | Calendar Event Mapping | 12:30pm to 2pm |
| Assignment Exercise 7: APIs and Data Visualization | due by 12:30pm | |
| Mon Oct 30, 2017 | Calendar Event OSMnx: working with OpenStreetMap Networks | 12:30pm to 2pm |
| Wed Nov 1, 2017 | Calendar Event Analyzing Accessibility | 12:30pm to 2pm |
| Assignment Assignment 8: Geoprocessing and Mapping | due by 12:30pm | |
| Mon Nov 6, 2017 | Calendar Event Geocoding and reverse geocoding | 12:30pm to 2pm |
| Wed Nov 8, 2017 | Calendar Event Workshop | 12:30pm to 2pm |
| Assignment Workshop1: Peer Review | due by 11:59pm | |
| Mon Nov 13, 2017 | Calendar Event Advanced Mapping Techniques | 12:30pm to 2pm |
| Wed Nov 15, 2017 | Calendar Event Workshop | 12:30pm to 2pm |
| Mon Nov 20, 2017 | Calendar Event Data Science With Python | 12:30pm to 2pm |
| Wed Nov 22, 2017 | Calendar Event No Class: Thanksgiving Holiday | 12am |
| Mon Nov 27, 2017 | Calendar Event Presentations | 12:30pm to 2pm |
| Wed Nov 29, 2017 | Calendar Event Presentations | 12:30pm to 2pm |
| Mon Dec 4, 2017 | Calendar Event Presentations | 12:30pm to 2pm |
| Wed Dec 6, 2017 | Calendar Event Presentations | 12:30pm to 2pm |
| Mon Dec 11, 2017 | Assignment Final Project | due by 11:59pm |