Skip to content

Innovation and Complexity Management Course in the Health Informatics Program at THD

Notifications You must be signed in to change notification settings

dominikb1888/INCO

Repository files navigation

INCO

This class is about exploring complexity and innovation through the lens of advanced interactive data visualization. Understanding how to co-evolve complex ecosystems and how to allow for distributed organizing to happen demands a thorough understanding of data visualization techniques. The course builds on basic knowledge in calculus and software development. It builds the basics for developing smart interactive web-based healthcare data displays.

Reading

Recommended Reading:

Course Materials

The course closely follows the main reading, which offers vast additional material online:

Python and D3.js

Deliverables

  • As part of the course you need to prepare an individual data visualization project based on publicly available healthcare dataset.
  • The form of delivery is a two-tier architecture with a backend emitting fhir-compliant json and a frontend using d3.js to visualize and interact on the data.

DO... (Principles to excel in the class)

  • ...focus on very specific user group and their core job to get done. Understand or imagine every little detail.
  • ...think about the ways your user needs to receive, transform and send data. Try to automate or simplify their lives.
  • ...optimize on all little details and behaviour in your frontend. Make it a joy to use the app.
  • ...use an iterative and cloud-enabled development process. Make it easy to build everywhere, again and again.

DON'T... (Recipe to fail the class)

  • ...try to make the app targeted at too many users and too many of their tasks. One user with one task is enough.
  • ...use a visualization framework other than D3.js. High-level frameworks (Plotly, Charts,js, etc.) do not allow for enough customization. You can use frameworks like React, Vue or Svelte for state management though.
  • ...submit a jupyter notebook. Build a Backend and have it produce a good selection of data for you to use in the frontend
  • ...use an exotic or complicated build processes. I will try to automatically get data from Github Codespaces. If your app does not automatically build there, I cannot look at it.

Sessions

  • Lecture: 30min
  • Hands-on: 90-150min
  • Project Presentation/Feedback (in 4 Sessions): 60min

Session 1 - Why Data Visualization and How?

Lecture

  • Introductory Example using Python Matplotlib
  • Review on Progress Board and Discussion

Project

  • Project Ideation

Session 2 - What: Data Abstraction

Hands-on

  • Introductory Example using Matplotlib (Recreating Progressboard V 0.1)

Lecture

  • Why Visualization Analysis and Design? (Slides 2-15)
  • Framework for Visualization Analysis and Design (Slides 16-39)

Session 3 - Why: Task Abstraction

Lecture

  • Data Types in Visualization and their implementation in Python (Slides 39-93)
  • Theory and Research Findings on Visualization

Hands-on

Session 4 - Analysis: Four levels of validation

  • Understanding the need and a framework for validation
  • Application to own project
  • Preliminary planning of iterations, definition of roadmap

Hands-on

Session 5 - Data and Task Abstraction

Lecture

Slides: https://www.cs.ubc.ca/~tmm/talks/vad/VAD-2021.pdf (pp. 39-121)

Project Tipps:

Session 6 - PROJECT PRESENTATIONS

  • Share an initial picture and a message for your project (1 min / per Project)

Session 7 - Marks and Channels

Lecture

  • Tabular Data

Session 8 - Introduction to JavaScript and D3.js

Lecture

  • Networked Data

Exercise

  • A Basic Barchart:
    • Charts
    • Scales
    • Axes
    • Selections and Joins

Slides: https://www.cs.ubc.ca/~tmm/talks/vad/VAD-2021.pdf (pp. 122-177)