Data Science for Human-Centered Systems (IAT 461 / IAT 882, 4 units) – Summer 2026Archived

Welcome! This course follows the spirit of SFU SIAT's IAT 461 data science pipeline — carrying analyses from questions and data through cleaning, modeling, and interpretation for human-centered and interactive systems. Teaching happens online, over Zoom. Videos will be recorded and posted on YouTube, with downloadable slides on this site.

This page summarizes structure, outcomes, policies, grading, and the weekly schedule. When in doubt, the official SFU outline and Canvas announcements win if they ever differ from a draft here.

Format

  • Lectures — Live Zoom sessions and asynchronous video on YouTube; slides (and sometimes links/references) are published on this website. CHECK THIS WEBSITE REGULARLY.
  • Labs — online support / exercises aligned with each week.
  • Expectations — plan roughly 6–8 hours/week beyond lecture viewing for readings, tutorials, and assignments (aligns with prior offerings of this course).

Learning Outcomes

On successful completion, you should be able to:

  • Carry out the data analytics process for human-centered systems end to end, using appropriate terminology.
  • Understand types of data and common pitfalls in analyzing each.
  • Identify which techniques fit each stage of the pipeline and when they apply.
  • Execute cleaning, feature engineering, method selection, and interpretation of results.
  • Apply core models — including linear and logistic regression, k-means and hierarchical clustering, and methods such as decision trees, random forests, NLP, Topic Modeling, and Agentic Systems.
  • Reason about integrating data into system design from needs analysis.
  • Use the Python ecosystem (e.g. pandas, scikit-learn, stats-focused libraries) to implement analyses in notebooks.

Resources

  • Required text: Steven S. Skiena, The Data Science Design Manual (2017). Access via SFU Library (Skiena e-book permalink from prior syllabus)
  • Readings are required.
  • Environment: we standardize on VS Code + Python; you may use Google Colab if you prefer, but support may be limited — export .ipynb and PDF as required for hand-ins.

Session videos & slides

Each week's YouTube link will appear in the syllabus table in the Video column as recordings go public. The Slides are hosted on this site; links appear in the same table when available.

Teaching Team

Instructor

Dr. Alireza Karduni

Email: akarduni@sfu.ca

TA

Mehdi Jahani

Email: mehdi_jahani@sfu.ca

Course Policies

Contacting us

We use Discord for community Q&A; use SFU email for anything official (concessions, grading disputes with the instructor, etc.). Please allow up to about two business days for email replies — we'll often be faster.

To speed up replies, include: your full name; a subject line starting with "IAT461:"; and a clear question. For logistics specific to labs/tutorials, start with TA Mehdi; escalate to the instructor if needed.

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-assisted tools

Tools like ChatGPT, Copilot, and similar can help with syntax, debugging, or small code patterns — and learning to use them well is part of modern practice. For this course, disclosure and academic honesty matter.

In general: do not paste whole assignment solutions or full interpretation paragraphs from a model without doing your own analytical work. When AI informs a block of code, mark it clearly in the notebook (tool, link, prompt, and the adapted code) so we can see your judgment — a pattern like the #BEGIN/#END blocks used in prior offerings works well.

For written reports and presentations, your analysis should be your own words and reasoning; do not submit synthetic prose as if it were unchanged human insight.

Grading

ComponentWeight
Assignment38%
Midterm Quiz15%
Final Project Submission30%
Final Presentation12%
In-class Quiz and Lab Attendance5%
Lecture engagement5% (extra)

This offering is online: you need a reliable computer, Python, and a notebook environment. Lecture ideas are introduced in the YouTube videos and readings; labs and assignments are where you practice the pipeline end to end.

You will submit work through GitHub. Instructions, rubrics, and due dates for each item are posted there — this site holds the week-by-week plan and slide decks.

There will be at least one midterm-style quiz.

The final project applies the full data-science workflow — implementation, communication, and often a short presentation or recording.

Note: For due dates and details, refer to the syllabus table below; we will keep Canvas aligned with this schedule.

Acknowledgements

The weekly structure, outcomes, and many pedagogical ideas trace to SIAT colleagues who developed IAT 461 before this offering — including Marek Hatala and Dilky Felsinger.

Course Syllabus

W1
Lecture May 11
Lab May 12
Topic:
Introduction to data science, Course structure — human-centered pipelines & repurposed data
Lecture topics:
How the course runs | What counts as data science — questions, goals
Lab activities:
NumPy arrays and Pandas DataFrames — indexing, slicing, and vectorization (programming exercises).
W2
Lecture May 18
Lab May 19 (self-paced)
Topic:
Math for data science
Lecture topics:
Mathematical foundations used across DS | Probability and relationships
Lab activities:
Optional Python exercises on distributions and correlations.
Slides:
W3
Lecture May 25
Lab Jun 2
Topic:
EDA, Data Cleaning and Visualization
Lecture topics:
Why and how to clean data | Choosing and interpreting plots — extracting insight visually
Lab activities:
Rigorous cleaning with Pandas | Plot distributions with Seaborn | EDA-focused programming work tied to logging-style data.
W5
Lecture Jun 8
Lab Jun 9
Topic:
Feature engineering
Lecture topics:
Feature construction in the project lifecycle — scaling, encoding
Lab activities:
Sklearn.preprocessing — prepare a behavioral dataset for modeling (programming exercises).
W6
Lecture Jun 15
Lab Jun 16
Topic:
Statistical analysis, Regression, Significance testing
Lecture topics:
Statistical significance testing | Linear regression — specification and interpretation
Lab activities:
Statsmodels and Sklearn for regression on continuous human-centered metrics.
W7
Lecture Jun 22
Lab Jun 23
Topic:
Classification and Logistic regression
Lecture topics:
Midterm + a deep dive into logistic regression, coefficients, and classification evaluation
Lab activities:
Classification and evaluation using SKLearn
Readings & Prep:
1 readings (show more)collapse
W8
Lecture Jun 29
Lab Jun 30
Topic:
Unsupervised Learning ,Clustering, and Dimensionality reduction
Lecture topics:
Unsupervised learning, Kmeans, DBScan, dimensionality reduction, PCA, UMAP
Lab activities:
Unsupervised learning, and dimensionality reduction exercise.
Readings & Prep:
1 readings (show more)collapse
W9
Lecture Jul 6
Lab Jul 7
Topic:
Natural Language, Text representation & Naive Bayes
Lecture topics:
Vector spaces | TF–IDF | Text Classification
Lab activities:
Build a small semantic similarity calculator with NumPy and Sklearn.
W10
Lecture Jul 13
Lab Jul 14
Topic:
Embeddings & modern topic modeling
Lecture topics:
Transformers and contextual embeddings | BERTopic-style topic discovery
Lab activities:
Hugging Face transformers to pull semantic themes from text (programming exercises).
Slides:
W11
Lecture Jul 20
Lab Jul 21
Topic:
Transfer learning — zero-shot & few-shot
Lecture topics:
Pre-trained models | In-context learning with LLMs
Lab activities:
Evaluate LLM zero-shot classification vs. a simple baseline.
Video:
Slides:
Assignments Out:
W12
Lecture Jul 27
Lab Jul 28
Topic:
LLM agents & structured outputs
Lecture topics:
Prompt engineering for function calling and retrieval-style (RAG) workflows
Lab activities:
Streamlit — single-page app that talks to an LLM agent (programming exercises).
Video:
Slides:
W13
Lecture Aug 3
Lab August 3 (flex)
Topic:
BC Day — university closed; flex project consulting
Lecture topics:
No formal lecture | Use the flex window for integration and deployment prep
Lab activities:
Final project consulting and Streamlit deployment troubleshooting.
Video:
Slides:
Final showcase
Lecture Aug 10
Lab Aug 10
Topic:
Final project showcase
Lecture topics:
Presentations — showcase expectations and format
Lab activities:
Final data project demonstrated as a hosted Streamlit app.
Video:
Slides: