This manual is part of Interactive Data Science and Visualization.

Interactive Data Science and Visualization Manual

Document which helps students engage with or instructors teach IDSV.

Other formats: Markdown version | PDF version

Contents

Hello

I'm excited that you are joining us as we explore interactive data science and visualization.

My name is Sam. Prior to UC Berkeley, I was at Google, Apple, IDEO, and various start ups. Here on campus, I'm a published researcher at the university's Schmidt Center for Data Science and Environment.

Most of my current focus is on crafting tools for policy makers to engage science in their work. This course is about building those kinds of digital environments that let us see the world around us in new ways through data. Specifically, we will construct "dialectic" experiences through which users can co-create narrative and build new knowledge in partnership with interactive "media for thought" (Victor 2011). We are going to journey through cognitive science, information design, game design, and more to explore how these ingredients come together within world-class tools for modern sense-making.

That's enough about me. Let's talk about you! I'm excited to have you here as story-tellers, designers, scientists, and engineers. This hands-on course will help you build sophisticated interactive tools. Regardless of whether you are making those experiences for others or for yourself, our time together will focus on the ways we see information and construct knowledge. At the end of the course, you will be well versed in information design. We will use readings, short hands-on practice projects, a longer hands-on interactive experience, a capstone, and collaborative in-person discussion to get there.

This "student manual" gives you everything you need to navigate the course. While the syllabus offers an overview of the schedule with weekly lecture and assignments, this complements those materials with details on each reading and project. Also, to help you set time expectations, it outlines estimated duration for each activity.

I'll end this welcome letter with something a mentor told me once: design is an act of hope. When we do this work, we are engaging in optimism and practice of building a brighter, stronger, and more inclusive future.

Thank you for joining me!

Learn

The class offers multiple avenues to explore the course materials but the primary location is our lessons which blend traditional lecture and interactive exploration.

Cadence

For this participating in the class at UC Berkeley, we meet twice weekly. For those online, you can go at your own pace but follow a similar cadence for an experience analogous to the in-person course. These sessions will be a mixture of regular lectures and hands-on group or individual activities.

Sensitive topics

We will be exploring visualizations and other materials which may deal with some heavy topics like gun violence or sexism. It is important to see how visualizations address these kinds of subjects. The lessons have a content warning.

Respectful discussion

The course will be talking about some big stuff from climate change to government. We will be sharing our work with each other and those pieces could include challenging viewpoints. We may disagree with each other sometimes. This space is meant to be respectful and inclusive. Mistakes happen but we will work to reduce bullying, threats, disrespectful language, and other non-constructive dialogue. For all learners at UC Berkeley and beyond, please consider how to contribute to that dialog constructively.

Attendance

For online learners using the open source course materials, the lessons are designed to be taken in sequence. However, you are very welcome to mix and match or jump around the course in order to meet your learning goals.

For UC Berkeley students, we will not take attendance during these sessions. Sometimes things happen where attending lecture is not the best use of your time and I want to ensure you have the flexibility as needed. However, our in-person meetings will be the space in which projects are discussed, assignments given, etc. If you miss a lecture, please reach out to me to ensure you have everything you need to complete the assignments.

Read

The take-home materials help you come into each session with the right background knowledge to make our time together successful. Sometimes this will be reading and, other times, this will be video or audio. Regardless, these resources are often introductory but typically also point to more material if you want to dig in deeper.

There are 17 readings, each taking about an hour. As documented later, there are also 5 supplemental readings for the capstone project. Additionally, some students with less Python familiarity are given access to an open textbook (A Byte of Python) but, for those already comfortable with the programming language, there are 4 optional replacement readings I ask you do instead (in light grey). Finally, 2 hours of "reading time" are allotted to explore articles for your interactive experience. In total, this comes to 28 hours across the semester.

Readings do not have submissions but you are welcome to discuss with the rest of the class or through social media as described in the lectures.

Week Day 1 Day 2
1
2 Media for Thinking the Unthinkable (Victor 2013) Dealing with Open Source Licenses (Winslow 2019)
3 Review of Tufte (LeRoy 2018)
4 Preattentive Attributes in Visualization (Kesavan 2016) Inventing on Principle (Victor 2012)
5 OpenProcessing Genuary
6 Genuary
7 William Cleveland (Pricenomics 2016) From Data to Viz (Holtz 2018)
8 15 View on a Node Link Graph (Munzner 2007) Dear Data (Luipi and Posavec 2015)
9 Designing for Realtime Spacecraft (Binx 2016) Bad Doors (Posner et al 2016)
10 Explorable Explanations (Victor 2011), Role of the Player (Portnow 2011) Last Guardian: Language of Games (Brown 2017)
11 Super Mario Level 1-1 (Emmons and Portnow 2014), Zelda Open World (Brown 2023) Storytelling with Verbs (Tremblay 2020), Birth of a Game (Wright 2007)
12 Games are for Everyone (Brown 2018) What Ethical AI Really Means (Thorne 2023), Eyeo 2019 (Costanza-Chock 2019)
13 World Design of Metroid (Brown 2018)

Remainder: Readings for Final and Interactive Experience

Experience

We are going to look at a lot of short examples together. However, to learn how to create these interactive tools, it's important that go beyond looking and discussing... we have to actually play.

Motivation

In addition to video games having a lot of valuable lessons to share about creating dialectic digital spaces, they also teach us how to critically interrogate interactive designs as we experience them. Therefore, one of our activities ("interactive experience") is to play one of the games below. This will be further discussed in the lessons. Please select one of these games and play with sound on if possible.

Options

While going through these games, please identify the primary and secondary loops in addition to reflecting on the game-specific questions. We will plan to do a reflection on our experiences as a group right before the final! For those online, consider using social media as described in the course website.

Some of these games have combat and some deal with some heavier topics. Also, many have non-subscription equivalent iOS / Android versions. Some games can (potentially) be completed within the 4 hours of homework time set aside for gameplay. We will also give 2 hours for reading reviews and articles about your game but you may convert those 2 reading hours to additional play time if desired. Regardless, all are chosen because you should be able to pick up on the key lessons (for the course) by the end of those 4 - 6 hours.

Content indicators: ⚔️ (combat), ❤️ (sensitive topics), 📱 (mobile version available), ⏱️ (completable in ~4 hours)

Ludic Elements / Ludonarrative

Papers Please (2014) ❤️ 📱

Spiritfarer (Thunder Lotus 2020) ❤️

Dynamic Narrative / Design

Cosmic Wheel (Deconstructteam 2023) ⚔️ ❤️ 📱

FTL (Ma and Davis 2012) ⚔️ 📱

Environmental / Atmospheric Storytelling

Unpacking (Brier et al 2021) ⏱️ ❤️ 📱

Afterplace (Kice 2022) ⚔️ ❤️ 📱

Exercise

Short assignments foster active exploration of concepts discussed in each lecture. On average, each activity will take 2 hours to complete.

Motivation

Some assignments require coding but others may, for example, be drawing or short writings. Though we provide instruction in Sketchingpy (Pottinger 2024), alternative technologies may be used if desired. The details of each assignment are provided below. These are due 2 days after lecture date below. There are 14 of these short assignments in total for 28 expected hours.

Specifics

In addition to the description here, additional details are provided in the corresponding lesson in which the assignment is given.

Assignment 1: Async introductions

For getting warmed up, we will exchange short introductions online. Please write about 4 sentences introducing yourself and what you are hoping to gain from the course. Include an image describing yourself that isn't a photograph of yourself.

Assignment 2: Example visualization 1

Find a visualization from your daily life. For example, this could include a graphic from the news or a textbook. What do you think the piece's intended message is? How does the author convey this message? Post 4 - 8 sentences with your answers and a link to the piece.

Assignment 3: Example visualization 2

For UC Berkeley students: Revisit a visualization posted by someone else from Assignment 2. What might the 4 perspectives say about this visualization?

For open source online learners: Revisit the visualization from Assignment 2. What might the 4 perspectives say about this visualization? Consider the following:

Please write 4 - 8 sentences. See Lesson 3 for more details.

Assignment 4: Example visualization 2

Find another visualization but, this time, limit yourself to just the sources types provided by Sam (see the list in Lesson 5). What is the intended message? How does the visualization convey this message? What might the 4 perspectives say about this visualization? Please post 4 - 8 sentences with a link.

Assignment 5: Job satisfaction

Plot job satisfaction from the Stack Overflow Developer Survey using your preferred software. This can be done in spreadsheet software. Please provide 2 - 4 sentences describing how this representation uses pre-attentive features. May be a heat map but other charts welcome.

Assignment 6: Job satisfaction remix

For UC Berkeley students: Re-use the variables from someone else's submission but choose a different representation. Describe how your plot uses pre-attentive features.

For open source online learners: Return to your Job Satisfaction exercise from Assignment 5. Make a new graphic that displays the same variables but use a different visual representation. For example, if you previously chose a scatter plot, try a heatmap or bar chart. It doesn't necessarily need to be better or worse. It just needs to be different. When done, write 3 - 4 sentences about how your plot uses pre-attentive features. Use this as a chance to reflect on how it felt to explore alternative options. See Lesson 7 for more details.

Assignment 7: Creative Code 1

Build an art piece that is drawn using code. For this first submission, please do not make it interactive yet. Post your code and a screenshot.

Assignment 8: Creative Code 2

In this next step, we will add interactivity. You can do this either by continuing the previous art piece or creating a new one. Post your code and a screenshot. Feel free to take a look around at other submissions for inspiration and remixing.

Assignment 9: Census 1 / Income inequality with 4 variables

Visualize 4 variables of the income inequality dataset (Pottinger 2023) with a design guided by the recent course material. Please make this version without interactivity. Post your code and a screenshot!

Assignment 10: Census 2 / Income inequality with 6 variables

Visualize 6 variables of the income inequality dataset with a design guided by the recent course material. This can be a continuation of the last assignment or a fresh attempt. Please make this without interactivity. Post your code and a screenshot!

Assignment 11: Manual visualizations

Draw your last 5 years and your next 5 years by hand. Take a photo and post.

Assignment 12: BART 1

Visualize the BART dataset (BART 2025) with a minimum of 3 variables. You do not need to show everything. For example, you may choose to focus on a single station. Please do not make this version with interactivity. Post your code and a screenshot!

Assignment 13: Think-Aloud of Pyafscgap

Record yourself on zoom or similar doing a Think Aloud of Pyafscgap's visualization (Pottinger and Zarpellon 2023). Post your walkthrough and listen to someone else's recording. What is this activity good at soliciting? What might this activity be poor at uncovering? Post 2 sentences as a reply.

Assignment 14: BART 2

Visualize the BART dataset (BART 2025) with a minimum of 4 variables. You do not need to show everything. For example, you may choose to focus on a single station. You may optionally make this with interactivity. Post your code and a screenshot!

Assignment 15: Interactive Visualization

Revisit your BART or census visualization and add a single verb / single interaction. Post your code and screenshot.

Build

For the final project, we will build a visualization using what we learned throughout the course. This capstone affords additional time for a deeper exploration. You are welcome to share code and ideas with others as described in the "collaborate" section.

Motivation

This visualization should be interactive, multi-dimensional, and reflect our discussion of ethics. You may use any licensed dataset but see below for some possible options which are well documented and formatted. As the "activity" for 9 lectures, we anticipate that this exercise will take about 18 hours. However, if you need more time, you may convert the 5 hours of final reading to additional project time. Sketchingpy (Pottinger 2024) is recommended but use whatever works best for you.

Dataset Options

These options are given as a starting point known to have favorable licensing and suitable documentation. However, you may choose to consider a different dataset for your work.

StackOverflow Developers Survey

This resource provides an imperfect but multi-faceted look at working experiences within tech, spanning pay to technical preferences and satisfaction. It contains many interesting stories (Stack Exchange 2024).

California State Budget

Explore government through how it allocates its limited resources. The California State Budget provides another lens into our home and our representatives (California Department of Finance 2026).

Amtrak Ridership Data

People travel for a lot of reasons. This look into mobility charts the path of those stories across America, winding through big cities and small towns along the way. What can you uncover? (Bureau of Transportation Statistics 2024).

EPI Microdata (US ACS)

With a nearly overwhelming number of variables, the census ACS understands American life through rich socioeconomic data. It paints complex pictures of diverse experiences (Economic Policy Institute 2025).

US State Energy Data System

Electricity underpins our society. What consumes power and from what sources reflects climate priorities, economic forces, and social preferences. Each kilowatt adds to a bigger story (U.S. Energy Information Administration 2024).

Armed Conflict Location and Event Data

Conflict shapes the course of human history and remains an ongoing force in our world today. What can a data perspective on these conflicts tell us about our species and our future? (ACLED 2025).

Global Plastics AI Policy Tool

Plastics pollution sits in between ecological destruction and fossil fuels contributing to climate change. What can plastic tell us about our environmental future? (Pottinger et al. 2024).

Climate Driven Doubling of Maize Loss

Agriculture is under stress from climate change. What can exploring the future of corn in the US tell us about our challenges and our adaptation opportunities? (Pottinger et al. 2025).

AFSC GAP

Climate change is impacting fisheries. What can fish stocks data tell us about climate and food? (Pottinger and Zarpellon 2023).

GitHut

What can programming language popularity tell us about shifting trends in tech? (GitHut 2024).

Collaborate

The opportunities for collaboration and engagement with other learners vary given how you take the course though there are some shared principles.

For everyone

First, a little guidance for all learners.

Share your ideas

Collaboration with other students is encouraged! However, to ensure fairness for everyone, please give credit to others if you are borrowing code or ideas. Work that builds on others can be excellent and inspiring. Joint submissions are welcome but please include a description of each person's contribution. This will be used to grade each person individually.

Engage open source

Use of external open source resources is welcome. Please respect licenses of any code used. If no license is given, the code or resource should not be used even if public. If you are unsure and in the UC community, please ask for help. Finally, please be sure to mention the libraries used in your submission. Giving credit is often required for meeting license requirements.

Open source online learner

For those participating through the open source online course outside of the UC Berkeley community, it is encouraged that you share your work and ideas on social media with #OpenDataVizSciCourse.

UC Berkeley For-Credit

For those taking this class for credit, an online community is available to serve as the hub of our activity.

How Zulip works

For this semester, we will be using Zulip for our online community. There are different channels for different types of students (#learner-audit, #learner-graded). There are also channels for office hours (#coffee-and-office-hours) as well as for lectures / rehearsal recordings (#lectures) and readings (#reading). Finally, all assignments get their own channel (#assign-*). You can interact with the course bot (CourseBot) to submit assignments, request peer review, and more. Details on how to interact with this software will be provided at the start of the course. Please note that you gain access to the Zulip after completing the welcome survey.

How waitlisting works

Unfortunately, to support collaboration between myself and the students, enrollment is capped. I will grade for everyone on the waitlist through lecture 5 (up to 50 students). After lecture 6 (Feb 10), the waitlist will be closed. At that time, students will be given the option to switch to auditing if they wish to continue.

UC Berkeley Audit

You are very welcome to join us! Leave and join as you like but please register. Those auditing may participate in online discussions and submit assignments for peer feedback though they will not be graded. Students may use recorded rehearsal lectures or may attend in person. There will be 10 physical seats available to auditors but, if physical room runs out, for credit students will be prioritized. Only open to those in the UC Berkeley community (students, staff, faculty).

Auditing motivation

We have a fantastic auditing experience planned. The goal is that those who are taking the course for non-credit ("auditing") can experience instruction and practice their skills like any other student with the exception that auditors will not receive formal grading or credit. This allows students to participate online without needing to attend lectures in person or be physically be present on campus. This means that you do not need to be available during official class hours. Engaging in activities is optional and we invite you to join us in our online class Zulip community. Auditors are subject to UC code of conduct and other policies.

Auditing resources

Those auditing are welcome to join in person and online in our Zulip community. However, if space is limited, physical seats will be prioritized for those attending for credit. My apologies!

Beyond recordings, other activities are available to those registered within the Zulip community or who have been given an alternative accommodation (for which there may be limited resources). With access given after completing the welcome survey, this is only open to those in the UC Berkeley community (students, staff, faculty).

For non-credit students, exercises may optionally be completed online with peer feedback. This allows those participating as auditors to practice their skills and engage with others in the virtual community. Though subject to random spot-checks, please note that this feedback is not moderated. As part of our online community standards, all feedback must be kind, constructive, specific, and empathetic.

Auditors are also welcome to participate in the final project and interactive experience. These will be conducted through Zulip and Zoom with online discussion but, for those who are local, you are welcome to present your final project in person. Whether joining our final festival in person or online, it will be a lot of fun!

Everyone in the class including non-credit students are welcome to join office hours. These will be held virtually through Zoom with scheduling announced on Zulip. Note that, if you are unable to join during these times, you may still engage in discussion through our online community.

Recognition

Those who register through CalCentral may receive some recognition of participation through their transcript but please reach out to me if you have questions. Note that some inquires may require involving academic advisors. I cannot guarantee any formal recognition from the university for your participation.

Showcase

At the end of the course, we will do a showcase of final projects.

Purpose of the final project

The goal is that this time together is a celebration of everything accomplished over the semester and an opportunity to try some skills one more time. You will have a chance to get non-graded feedback prior to the submission deadline. While optional, this is intended to help build confidence and reduce stress going into the final. The best outcome is that you are proud of this work and I hope that this is something you can be comfortable putting into your portfolio and sharing on social media.

Final projects for open source online learners

This final project can really be whatever you want it to be as long as it meets the requirements described in the build section above.

Guidance for UC Berkeley community

Additionally, some guidance for our UC Berkeley community.

Final options for auditors

Those who complete all assignments (with peer sign off for everything but the final) are invited to participate in the showcase. However, this is entirely optional. You may audit the course with any level of engagement so long as you follow university policies.

Guests

There will be a survey to students to see about the possibility of inviting guests such as friends and family but this will require consent from those attending. It is completely OK if you would like to skip this.

Due dates

An opportunity will be announced in the lessons to pre-submit a draft of the submission. Projects may be refined ahead of final assessment based on that initial feedback. Also, again announced during lessons, auditors must also let me know if they are participating in the in-person showcase. The actual final due date is the assigned day of your presentation. No late assignments will be accepted

Format

This will give us one last chance to practice skills taught in the course. We will do a rotation where one set of students will present while others offer thoughts before rotating. For graded students, the final grade is based only on the instructor's evaluation of their final project and the peer feedback they provided to others.

Misc

Dedicated to my late grandmother, Barbara. Thank you for your wisdom and kindness. I hope I may continue your tradition of teaching creative computing.

Works Cited

See Also

For additional course materials, please see: