CS N329E: Elements of Data Visualization - Summer 2026
Course Description
Data visualization is more than just creating graphs; it is a critical tool for exploration, discovery, and persuasion. This course provides a hands-on introduction to the principles and techniques of data visualization using the Python ecosystem. Students will learn to transform raw data into actionable insights, moving from exploratory data analysis (EDA) to high-stakes storytelling.
Topics to include:
- Exploratory data analysis (EDA) using Pandas, Altair, and Streamlit.
- Selecting and implementing visualization techniques appropriate for varied data formats, including time-series, network, and geospatial.
- Using visualization as a primary tool for data-driven hypothesis generation and testing.
- Navigating the lifecycle of a data visualization project, from data collection to interactive dashboards and visualization agents.
- Communicating technical findings concisely and convincingly to executive audiences.
Learning Outcomes
By the end of this course, students will be able to:
- Clean, transform, and analyze raw datasets efficiently using libraries like Pandas and Polars to prepare them for robust exploratory data analysis.
- Select and construct appropriate static and interactive charts (utilizing Matplotlib, Altair, Plotly, and Folium) specifically suited for complex data formats, including time-series, network, and geospatial data.
- Leverage exploratory data analysis (EDA) as a primary mechanism to formulate, test, and objectively validate data-driven hypotheses.
- Build and securely deploy full-stack data applications using Streamlit, Google Cloud Run, and Identity-Aware Proxy (IAP).
- Augment traditional human-consumed dashboards by integrating autonomous agentic workflows using modern AI development kits.
- Translate exploratory analysis into a compelling business case presentation that adapts technical findings to a business context and drives a clear recommendation for an executive audience.
Prerequisites
CS 313E or equivalent software design course.
Required Textbook
Better Data Visualizations by Jonathan Schwabish (Columbia University Press, 2021).
Recommended Textbooks
Supplementary Materials
Online documentation, tutorials, and videos (Coursera, LinkedIn Learning, etc.)
Course Communication Tools
We will be using the following tools throughout the term:
- Canvas for project submissions and grade reporting.
- Ed Discussion for announcements, questions, and discussions.
- Zoom for office hours.
Tech Stack
Our primary Python tech stack consists of the following libraries:
- Pandas: For data wrangling and cleaning.
- Numpy: For numerical computation.
- Matplotlib & Seaborn: For foundational and statistical visualization.
- Altair, Plotly, and Folium: For interactive and web-based charts.
- Streamlit: For building interactive applications.
- Polars: For high-performance data processing.
Our primary development and deployment infrastructure consists of the following tools:
- GitHub for version control and code repository.
- Colab and VS Code: For development and testing.
- Cloud Run: For deploying Streamlit.
- Identity Aware Proxy (IAP): For securing Streamlit.
Term Project
The coursework will center around one major Exploratory Data Analysis project, which students will adapt into a business case presentation at the end, moving from analysis for themselves to communication for a decision-making audience. More specifically:
- You will work in groups of two, formed during the first week of class.
- Your group will act as data investigators. You will conduct an end-to-end analysis to uncover hidden patterns in a primary dataset and its related counterparts.
- You will perform data wrangling, cleaning, and visualization to test hypotheses.
- You will produce Colab notebooks, Data cards, Streamlit app, AI agent, and a business case presentation to the class.
The project is divided into 7 milestones (M0–M6), each producing a concrete deliverable:
- Milestone 0: Project proposal
- Milestone 1: Loaded and cleaned dataset
- Milestone 2: Static visualization portfolio
- Milestone 3: Interactive Streamlit dashboard
- Milestone 4: AI-augmented dashboard
- Milestone 5: Robust agent and responsive app
- Milestone 6: Business case presentation
Quizzes
There will be weekly quizzes on most week, based on the assigned readings. The quizzes will be done in class, and students are expected to take them by themselves.
Exam
A comprehensive exam will be held during the final week of class. It will consist of three components: questions on the assigned readings, questions covering lecture concepts, and an oral assessment related to your term project.
Code Reviews
Students will participate in regular, live code reviews during class. During these sessions, you should be prepared to answer impromptu questions and clearly explain the logic, design, and progress of your project milestones.
Class Participation
Students are expected to actively participate in discussions and complete hands-on exercises, which will usually take the form of interactive code labs.
Grading Breakdown
- Term Project: 40%
- Exam: 20%
- Quizzes: 20%
- Code Reviews: 10%
- Participation: 10%
The final mapping to letter grades will be determined at the end of the term once all coursework has been graded, and will be based on the overall distribution of scores.
Academic Integrity
This course will abide by UTCS' code of academic integrity.
Generative AI Policy
Your primary goal as a student is to master the course content and develop as a capable engineer. This means engaging deeply with the material, working through assignments, and building your projects with genuine understanding. Generative AI tools can support this learning process, but over-reliance on them often backfires, leaving you with a shallow grasp of the concepts and skills that the course is designed to build.
You may use generative AI to:
- Brainstorm visualization strategies for complex datasets.
- Look up syntax for Pandas, Polars, or specific charting libraries.
- Troubleshoot and debug errors in your Streamlit applications.
- Generate boilerplate code to set up your project structure.
You may not use generative AI to:
- Engage in blind generation where you generate your application without understanding what the code does. You must be able to explain every line of code you submit. During code reviews, oral assessments, or class discussions, "the AI wrote it" is not an acceptable answer.
- Generate an entire project from a prompt and submit it as your own work without verifying the underlying data logic, analytical accuracy, and design integrity. Doing so is a direct violation of academic integrity.
Required attribution:
If you use generative AI to produce a significant block of code, include a comment directly above that block citing the tool used and briefly describing its contribution. For example:
# Data cleaning pipeline generated with assistance from ChatGPT-4
Late Submissions, Extensions, and Make-up Quizzes
You will receive a total of 5 slip days for the semester, which can be used for project milestones, quizzes, and participation assignments.
- Each slip day used extends a project milestone deadline by 24 hours with no penalty, up to a maximum of 3 days late.
- Because milestones are group deliverables, a late milestone submission will deduct slip days from both group members. For example, a milestone submitted one day late costs each group member one slip day.
- For quizzes, using a slip day allows you to make up a missed quiz during the instructor's or TA's office hours, either the same week or the following week. One slip day covers one make-up quiz, regardless of when it is taken.
- For participation assignments, one slip day extends an in-class exercise deadline by 24 hours after the class session.
- Slip days are applied automatically. You do not need to notify the teaching staff to use one; they are calculated based on your submission timestamp in Canvas.
Once you have used all 5 slip days, you will need a doctor's note (or equivalent documentation) to make up a missed quiz or receive an extension on a project milestone or participation assignment. Without proper documentation:
- Late project milestones will incur a 10% grade penalty per day, up to a maximum of 3 days late, after which the milestone receives a zero.
- Missed quizzes and participation assignments will receive a zero.
Students with Disabilities
If you are a student with a disability, or think you may have a disability, and need accommodations, please contact Disability and Access (D&A). Contact and more details are available on D&A’s website.
If you are already registered with D&A, please share your accommodation letter with me as early as possible in the semester so we can discuss how your approved accommodations will be implemented in this course.
Week-by-week Schedule
This schedule is tentative and is subject-to-change based on the needs of the class.
| Date |
Topic |
Milestone |
Reading |
Direct Links |
| June 8 | Course overview and Pandas tutorial (Colab) | M0 | Ch 1 & 2 | |
| June 9 | Altair tutorial (Colab) | M0 | Ch 1 & 2 | |
| June 10 | Group work and quiz | M0 | Ch 1 & 2, Q1 | Milestone 0 |
| June 15 | First Data Exploration (Colab) | M1 | Ch 4 | |
| June 16 | Data load and preparation (Colab) | M1 | Ch 4 | |
| June 17 | Group work and quiz | M1 | Ch 4, Q2 | Milestone 1 |
| June 22 | Data visualizations (Colab) | M2 | Ch 5 | |
| June 23 | Data visualizations (Colab) | M2 | Ch 5 | |
| June 24 | Group work and quiz | M2 | Ch 5, Q3 | Milestone 2 |
| June 29 | Interactive application (Streamlit) | M3 | Ch 6 | |
| June 30 | Interactive application (Streamlit) | M3 | Ch 6 | |
| July 1 | Group work and quiz | M3 | Ch 6, Q4 | Milestone 3 |
| July 6 | Visualization agent (Pydantic AI, Streamlit) | M4 | Ch 7 | |
| July 7 | Visualization agent (Pydantic AI, Streamlit) | M4 | Ch 7 | |
| July 8 | Group work and quiz | M4 | Ch 7, Q5 | Milestone 4 |
| July 13 | Polish and performance | M5 | Ch 8 | |
| July 14 | Polish and performance | M5 | Ch 8 | |
| July 15 | Group work and quiz | M5 | Ch 8, Q6 | Milestone 5 |
| July 20 | Business case brief | M6 | | |
| July 21 | Group work | M6 | | Slides |
| July 22 | Business case presentations | M6 | | Milestone 6 |
| July 27 | Final Exam: Written assessment | | | |
| July 28 | Final Exam: Oral code review | | | |
Acknowledgments
The design of this course draws from conversations with Professor Mitra as well as feedback from former TAs and students who were part of its first edition. Cloud computing resources are provided through the generous support of Google.