Introduction to Visual Analytics (IAT355) - Spring 2026Archived
Archived course site for the Spring 2026 offering. Below you will find the structure, policies, and weekly schedule as they were for that term.
Final Projects
Final projects from the Spring 2026 cohort (SFU Project Hub gallery).
View Final ProjectsLearning 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 Spring 2026 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 - Project Proposal & Dataset
- Milestone 2 - Prototyping & Initial Progress
- Milestone 3 - Minimum Viable Version
- 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
- Final Project Presentation (On Exam Day)
| Week | Date | Type | Topic | Lecture Topics | Lab Activities | Video | Slides | Readings & Prep | Assignment Out | Assignment Due |
|---|---|---|---|---|---|---|---|---|---|---|
| W1 | Jan 5 | Lab | Introduction to Visualization | What is Visualization? | Why is it Important? | - | — | — | - | - | - |
| W2 | Jan 12 | Lab | Data Abstraction for Visualization | Distinction between a dataset's semantics and type | Classify data based on its fundamental components | Get to know each other | What you should expect from this course | Install the basic tools | — | — | 2 readings (show more)collapse | - | - |
| W3 | Jan 19 | 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 | Install Tableau | Create your first visualization in Tableau | — | — | 1 readings (show more)collapse | - | |
| W4 | Jan 26 | 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 | Review on HTML, CSS, and JS | Setting up your GitHub pages | — | — | |||
| W5 | Feb 2 | Lab | The Human Side of Visualization | How to abstract domain tasks into generic actions and targets | Get familiar with Vegalite | Create charts with Vegalite in Observable | — | — | 2 readings (show more)collapse | ||
| W6 | Feb 9 | Lab | Mindsets and Visualization | How different audiences perceive and react to data visualizations based on their unique mindsets | Introduction to D3.js | Create basic visualizations using D3.js | — | — | - | - | - |
| W7 | Feb 16 | Lab | Family Day - No Class, No Lab | - | - | — | — | - | ||
| W8 | Feb 23 | Lab | Uncertainty in visualization | Uncertainty in visualization | Advanced hands-on with D3.js | Create more complex visualizations using D3.js | — | — | 3 readings (show more)collapse | - | |
| W9 | Mar 2 | Lab | Midterm Week | - | Midterm Quiz | — | — | - | - | |
| W10 | Mar 9 | Lab | Prepare for Final Project | Interaction in visualization | Discussing project ideas | — | — | 3 readings (show more)collapse | ||
| W10 | Mar 16 | Lab | Geographic Visualization | Maps and text visualization | Interactive visualizations using D3 and Vegalite | — | — | - | - | |
| W11 | Mar 23 | Lab | Using AI in visualization | A review on design principles | Project troubleshooting | Leaflet visualization | — | — | 2 readings (show more)collapse | - | |
| W12 | Mar 30 | Lab | Responsive Visualization | How to use AI in implementing visualization pipeline | Project troubleshooting | — | — | 2 readings (show more)collapse | ||
| W13 | Apr 6 | Lab | Final Week | Facets | Multiple views, other fancy vis weird visualizations | Using AI for visualization pipeline | — | — | - | ||
| W14 | Apr 13 | Lab | Preparing for Final Presentations | - | Project troubleshooting | [More details to be provided closer to the date] | — | — | - | - | |
| W15 | Apr 20 | Lab | Final Presentations | - | Project troubleshooting | — | — | - | - |
|