Introduction to Visual Analytics (IAT355) - Fall 2025Archived
Archived course site for the Fall 2025 offering. Below you will find the structure, policies, and weekly schedule as they were for that term.
Learning Outcomes
- Understanding Visual Analytics Principles: Gain a foundational knowledge of visual analytics, including analytical reasoning techniques, data representation and transformation, and visual representation and interaction techniques.
- Practical Application of Visualization Tools: Develop proficiency in using various visualization tools and coding assignments to analyze and interpret complex data sets.
- Critical Analysis of Visualizations: Enhance skills in critically evaluating visualizations, identifying effective design elements, and recognizing potential misrepresentations.
- Collaborative Project Development: Experience working in pairs to create a comprehensive visualization project, from conception to presentation, fostering teamwork and project management skills.
- Effective Communication of Data Insights: Learn to present data-driven insights clearly and persuasively through written reports and oral presentations.
Through hands-on experience and project work, you will also gain more experience in:
- HTML Fundamentals: Semantic HTML5 elements, document structure, SVG.
- CSS & Styling: Learn modern CSS techniques including Flexbox, Grid, and responsive design principles to create visually appealing visualizations.
- JavaScript Programming: Develop experience JavaScript fundamentals including DOM manipulation, event handling.
- D3.js Data Visualization: Create custom interactive visualizations using D3.js, including data binding, scales, axes, transitions, and event handling.
- Vega-Lite: Build declarative visualizations using Vega-Lite's grammar of graphics, including data transformations and interactive specifications.
- Web Development Workflow: Create a final live web-based project to show off your interactive data visualization skills.
Teaching Team
Course Policies
Contacting us
There will be a Discord channel through which we can all stay connected, ask questions and help each other.
In case you'd like to email us, please allow up to 2 business days for responses though we will typically reply much sooner. We may be able to answer questions about software or code via email. Please arrange a meeting or attend office hours for complex software or code questions. Happy to respond to other questions, but some questions are better asked in person.
To make our responses faster, please include the following in your email:
- Your full name.
- The course number (IAT-355).
- A clear question
Conduct
Please treat our online interactions the same way you would in-person interactions. As a teaching team we are dedicated to providing a harassment-free experience for everyone in this class, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. Harassment of any form is not tolerated. Sexual language and imagery is not appropriate in this class.
If you have concerns with anyone's conduct either in-person or online, email your instructor. If you do not feel comfortable reaching out to your instructor, please contact SIAT's advisors.
SFU's complete student conduct policy is available online.
Illness
If you are feeling ill, you should stay home and get better. Let your instructor or TA know that this is the case, and make sure to catch up with course materials to stay up-to-date.
Late assignments
Late penalties (10% a day for 2 days, 20% after). If you have issues and can't submit on time, please let us know in advance, we are happy to work figure out a way to get you up to speed.
Use of AI for coding
For coding assignments, it is fine if you use AI (ChatGPT or others) to work through your course. But the aim is for you to learn. If you use AI, we ask that you submit your chat as part of your assignment. We will evaluate the prompt and how you dealt with AI's responses to ensure that take the most out of this class.
For presentations and writing assignments. Do not use AI for writing content. Do not copy and paste from AI directly. Feel free to use AI for ideation, and help with writing, but the end result, should be your output, not AI's.
Grading
| Component | Weight |
|---|---|
| Assignment | 38% |
| Midterm Quiz | 15% |
| Final Project Submission | 30% |
| Final Presentation | 12% |
| In-class Quiz and Lab Attendance | 5% |
| Lecture Attendance | 5% (extra) |
The course is part lecture, and part lab. You will need access to a computer, and install some coding tools. We will work with you to figure out coding assignments, and teach you the basics in the labs.
There are several assignments that you will submit through Canvas. Some assignments require coding, some are design based, and most (hopefully) are fun. You will receive information about each assignment as the course moves on.
There will be one midterm exam (quiz) that will be held in class, and will involve critically analyzing a set of visualizations (more details will be discussed in class).
There will be a final project where you will work in pairs to create a visualization, present it to the class, and write something interesting about it. (more details will be shared)
Note: For due dates and details, refer to the syllabus table below (as of the end of the Fall 2025 term).
Assignments
- A1 - Tableau Visualization
- A2 - Make a personal website on GitHub pages
- A3 - Vegalite visualization
- A4 - Make a good and bad visualization
- A5 - Final project proposal
- Milestone 1 - Data Exploration & Prototyping
- Milestone 2 - Prototyping & Initial Progress
- A7 - Map making (due tommorow night - 11 Nov)
- Milestone 4 - Final Integration & Refinement
Acknowledgements
This course and the content was heavily inspired by slides from Professor Lyn Bartram (SIAT), and Professor Emily Wall (Emory University). There were also content used from work by Steven Franconeri and Jessica Hullman from (Northwestern University).
Course Syllabus
2 readings (show more)collapse
1 readings (show more)collapse
2 readings (show more)collapse
3 readings (show more)collapse
3 readings (show more)collapse
2 readings (show more)collapse
2 readings (show more)collapse
- A8 - Multiple view visualizations
- A8 - Multiple view visualizations
- Final Milestone - Submit your final project
- Final Milestone - Submit your final project [link to be updated]
| Week | Date | Type | Topic | Lecture Topics | Lab Activities | Video | Slides | Readings & Prep | Assignment Out | Assignment Due |
|---|---|---|---|---|---|---|---|---|---|---|
| W1 | Sep 8 | Lab | Welcome Week | Introduction to The Course | What is Visualization and why is it important? | Get to know each other | What you should expect from this course | Install the basic tools | — | — | - | - | - |
| W2 | Sep 15 | Lab | Introduction to Visualization | What is Visualization? | Why is it Important? | Install Tableau | Create your first visualization in Tableau | — | — | 2 readings (show more)collapse | - | |
| W3 | Sep 22 | Lab | Data Abstraction for Visualization | Distinction between a dataset's semantics and type | Classify data based on its fundamental components | Review on HTML, CSS, and JS | Setting up your GitHub pages | — | — | 1 readings (show more)collapse | ||
| W4 | Sep 29 | Lab | Perception and Cognition | How the human visual system perceives and processes information, allowing us to effectively think with data by leveraging powerful visualizations | How common cognitive biases can lead to misinterpretations of data | Get familiar with Vegalite | Create charts with Vegalite in Observable | — | — | |||
| W5 | Oct 6 | Lab | Narrative Visualization and Persuasion | Analyzing real-world examples of narrative visualizations | How authors guide the reader through a data story | How misinformation can spread through visualizations | Introduction to D3.js | Create basic visualizations using D3.js | — | — | 2 readings (show more)collapse | - | - |
| W6 | 13 Oct (Thanksgiving Holiday) | Lab | The Human Side of Visualization | How to abstract domain tasks into generic actions and targets | NO LAB (Thanksgiving Holiday) | — | — | - | ||
| W7 | Oct 20 | Lab | Prepare for Final Project | How different audiences perceive and react to data visualizations based on their unique mindsets | Advanced hands-on with D3.js | Create more complex visualizations using D3.js | — | — | 3 readings (show more)collapse | - | - |
| W8 | Oct 23 | Lecture | Uncertainty in visualization | - | - | — | — | - | - | |
| W8 | Oct 27 | Lab | Uncertainty in visualization | Uncertainty in visualization | How to create interactive visualizations using D3 and Vegalite | Discussing project ideas | Troubleshooting groups | Midterm preparation | — | — | 3 readings (show more)collapse | - | |
| W9 | Nov 3 | Lab | Midterm Week | Interaction in visualization | Midterm Quiz | — | — | - | - | |
| W10 | Nov 10 | Lab | Visual Analytics | What is Visual Analytics? | AI and visualization | Project troubleshooting, tool choice, questions, ideas | — | — | 2 readings (show more)collapse | ||
| W11 | Nov 17 | Lab | Geographic Visualization | Maps + Text | Leaflet visualization | — | — | 2 readings (show more)collapse | ||
| W12 | Nov 24 | Lab | Responsive Visualization | Guest Lecturer: (Heyok Kim) | Project troubleshooting | [More details to be provided closer to the date] | — | — | - |
| |
| W13 | Dec 1 | Lab | Final Week | Facets | Multiple views, other fancy vis weird visualizations | Project troubleshooting | — | — | - |
| |
| W14 | Dec 8 | Lab | Preparing for Final Presentations | - | Project troubleshooting | — | — | - |
| |
| W15 | Dec 15 | Lab | Final Presentations | - | Students presentations | — | — | - | - |
|