Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .github/workflows/talks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Talk pages

on:
pull_request:
branches:
- main
- master
push:
branches:
- main
- master

jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Check that _talks/ matches _data/talks/
run: python3 scripts/generate_talks.py --check
Comment on lines +15 to +26
11 changes: 10 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: help setup serve build clean
.PHONY: help setup serve build clean talks talks-check import-talks

.DEFAULT_GOAL := help

Expand All @@ -21,3 +21,12 @@ build: ## Build the site for production

clean: ## Remove generated site files
rm -rf _site .jekyll-cache

talks: ## Generate the talk pages in _talks/ from _data/talks/*.toml
python3 scripts/generate_talks.py

talks-check: ## Verify the talk pages match _data/talks/*.toml (used by CI)
python3 scripts/generate_talks.py --check

import-talks: ## Seed new talk records from the seminar Google Calendar
python3 scripts/import_calendar_talks.py
100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,106 @@ The available variables are:

> **_NOTE:_** The subfolders (affiliated, core, and leadership) under `_members` have no effects. They exist only for organizing these files. To show member under a role, set the role variable in its .md file with a right value.

### Talks

Every talk in the Data Science & AI Lecture Series has its own page on the site
(for example `/talks/2026-09-04-george-vega-yon/`). Those pages are **generated**;
the source of truth for each talk is a TOML file in `_data/talks/`.

To add a talk:

1. Copy `_data/talks/_TEMPLATE.toml` to `_data/talks/YYYY-MM-DD-speaker-name.toml`
and fill it in. The file name becomes the page URL, so keep the
`date-speaker` shape.
2. Run `make talks` (equivalently `python3 scripts/generate_talks.py`). This
writes `_talks/YYYY-MM-DD-speaker-name.md`.
3. Commit **both** the TOML file and the generated markdown, and open a pull
request. CI (`.github/workflows/talks.yml`) re-runs the generator and fails if
the two are out of sync.

Updating a talk later (adding slides, a recording link, or a speaker photo) is
the same loop: edit the TOML, run `make talks`, commit both files.

The generated pages are wired into the site automatically:

* `seminar.md` shows the next talk and the next few upcoming talks.
* `/talks/` (`talks.md`) lists everything, upcoming first, then past talks by year.

A minimal record looks like this:

```toml
[talk]
title = "Data Science of Tracking Measles in Utah"
date = 2026-09-04
start_time = "13:30"
end_time = "14:30"
location = "WEB 2250"
zoom = "https://utah.zoom.us/j/85983626630"
abstract = """
What the talk is about, in markdown.
"""

[[speakers]]
name = "George Vega Yon"
affiliation = "Division of Epidemiology, University of Utah"
website = "https://ggvy.cl"
bio = """
A short bio, in markdown.
"""
```

Only `[talk] title`, `[talk] date`, and one `[[speakers]] name` are required;
everything else is optional and simply omitted from the page when empty. Add a
`[[speakers]]` block per speaker for joint talks, and set `canceled = true`
rather than deleting a record for a talk that did not happen.

Why TOML plus a generator? GitHub Pages builds Jekyll in safe mode, so custom
plugins (which could read TOML at build time) are not available: the pages have
to be generated ahead of time and committed.

#### Tags and searching

Each record carries a `tags` list drawn from a fixed vocabulary (about twenty
topics: `machine learning`, `visualization`, `health & medicine`, and so on --
the full list lives at the top of `scripts/tag_talks.py`). The `/talks/` page
uses them for its filters, so free-form tags would only fragment the results:
stick to the vocabulary, or add a term to the vocabulary first.

`scripts/tag_talks.py` fills in tags automatically by matching a talk's title,
abstract, and speaker bio against that vocabulary:

```shell
python3 scripts/tag_talks.py --dry-run # show what it would pick
python3 scripts/tag_talks.py # fill in records with no tags yet
python3 scripts/tag_talks.py --report # tag counts across all talks
```

It never touches a record that already has tags, so anything you set by hand
wins. Tagging by hand is perfectly fine too -- just edit `tags` in the TOML.

`/talks/` searches and filters entirely in the browser, with no index to build
and no service to run: the page ships every talk as a list item carrying its
searchable text in a `data-search` attribute, and the JavaScript at the bottom
of `talks.md` hides the ones that do not match. Readers can search across every
field (title, speaker, affiliation, abstract, location, date), filter by tag,
speaker, or year, and land on a pre-filtered view via a link such as
`/talks/?tag=robotics` or `/talks/?speaker=Anna%20Fariha`. Without JavaScript
the full list still renders; only the filter controls are hidden.

#### Seeding records from the Google Calendar

`scripts/import_calendar_talks.py` reads the series' public Google Calendar and
writes TOML records for talks that do not have one yet:

```shell
make import-talks # or: python3 scripts/import_calendar_talks.py
```

Calendar descriptions are free-form, so this is best effort — imported records
are marked `needs_review = true` under `[meta]` and should be checked (titles,
affiliations, and abstracts especially) before they are considered final. It
never overwrites an existing file unless you pass `--overwrite`.

### progrmas
Add/delete/edit .md files in `_progrmas` folder to add/delete/edit members.

Expand Down
9 changes: 9 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,18 @@ encoding: utf-8
# Disable the default primer theme from github-pages
theme: null

# Talk pages are dated in the future by design (that is what "upcoming" means),
# and Jekyll hides future-dated documents unless this is set.
future: true

collections:
programs:
output: false
members:
output: false
# One page per talk, generated from _data/talks/*.toml by scripts/generate_talks.py.
talks:
output: true

defaults:
-
Expand All @@ -34,6 +41,8 @@ exclude:
- README.md
- Gemfile
- Gemfile.lock
- Makefile
- scripts
# - node_modules
# - vendor/bundle/
# - vendor/cache/
Expand Down
34 changes: 34 additions & 0 deletions _data/talks/2020-01-09-chris-musco.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "Randomized FunctionalAnalysis"
date = 2020-01-09
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["algorithms & theory", "machine learning", "statistics"]
abstract = """
Sketching and subsampling are central algorithmic tools in scaling statisticalmethods to very large datasets. These techniques seek to quickly compress datadown to a compact set of informative features or examples, which can then beprocessed in place of the original data, at much lower computational cost. Thecentral question of this talk is what sketching methods can teach us abouteffective machine learning and data analysis in the small data regime. Inapplications where high quality data examples remain a rare luxury, can ourknowledge of data sketching guide more efficient initial data collection?

We study this problem by focusing specifically on techniques for large matrixcomputations. In the field of randomized numerical linear algebra, importancesampling has emerged as an important tool for dataset compression. Statisticalleverage scores and related measures are used to judge the importance of rowsor columns in a matrix, which are then non-uniformly subsampled, leading tofaster algorithms for regression, low-rank approximation, kernel methods, andmany other data problems.

I will introduce a simple generalization of leverage score sampling to infinitedimensional linear operators and show the potential of this generalization indeveloping sample efficient algorithms for small data applications.Specifically, I will survey a number of recent results on robust polynomialcurve fitting, bandlimited function interpolation, off-grid sparse Fouriertransforms, and sample efficient covariance estimation. I will illustrateconnections between these new results and classical tools in approximationtheory and signal processing, and will discuss several open researchdirections.
"""

[[speakers]]
name = "Chris Musco"
affiliation = "NYU"
website = "https://www.chrismusco.com"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba@google.com"
imported_on = 2026-08-18
needs_review = true
28 changes: 28 additions & 0 deletions _data/talks/2020-01-16-alexander-lex.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "Literate Visualization: Making Visual Analysis Sessions Reproducible and Reusable"
date = 2020-01-16
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["visualization"]
abstract = "Interactive visualization is an important part of the data science process. It enables analysts to directly interact with the data, exploring it with minimal effort. Unlike code, however, an interactive visualization session is ephemeral and can’t be easily shared, revisited, or reused. Computational notebooks, such as Jupyter Notebooks, R Markdown, or Observable are a perfect match for many data science applications. They are also the most popular embodiment of Knuth’s “Literate Programming”, where the logic of a program is explained in natural language, figures, and equations. In this talk, I will sketch approaches to “Literate Visualization”. I will show how we can leverage provenance data of an analysis session to create well-documented and annotated visualization stories that enable reproducibility and sharing. I will also introduce early work on semi-automatically inferring mid-level analysis goals, which allows us to understand the analysis process at a higher level. Understanding analysis goals enables us to speed up interactions and even re-used visual analysis processes."

[[speakers]]
name = "Alexander Lex"
affiliation = ""
website = "https://vdl.sci.utah.edu/team/lex/"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba_R20200116T191500@google.com"
imported_on = 2026-08-18
needs_review = true
34 changes: 34 additions & 0 deletions _data/talks/2020-01-23-harish-maringanti.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "Data Science projects in Marriott Library"
date = 2020-01-23
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["machine learning"]
abstract = """
At research intensive universities, libraries have traditionally supported data science activities in various ways including acquiring datasets that researchers need, hosting workshops and training sessions on data science tools, and offering data support tools for creation of persistent identifiers(dois), etc. At Marriott Library, in addition to supporting data science programs on campus, we have embarked on a suite of data science projects to add value to our culturally-rich collections. Our efforts are focused on enriching our collection data, and making this collection data available for computational use (collections as data [1]) so that developers, scientists, and digital humanists can programmatically interact with the data in myriad ways and undertake projects related to data mining & text analysis, advanced visualizations, and geospatial analysis. In this presentation, I will talk about two specific projects - Utah Digital Newspapers [2] and machine learning meets archives [3] - to highlight these efforts.

Utah Digital Newspapers (UDN): Marriott Library was an early pioneer in digitizing newspapers and making the content available to historians, researchers, and lifelong learners. UDN program has been operating since 2002 and is recognized as one of the leaders in newspaper digitization in the United States. We have continued to partner with universities, colleges, state agencies, county and city libraries, and other agencies to digitize, deliver, and archive historical newspaper collections; As of 2019, UDN has well over 22.5 million newspaper articles and 3.5 million pages in the repository platform. In this presentation, we will talk about the importance of looking at collections as data, our API work with UDN and demonstrate the usefulness of this approach with specific examples.

Machine learning meets archives: Metadata is the bedrock of library archives and Digital Library systems, as it helps in users discovering the unique content in various collections housed in digital libraries. But creating metadata is a time-intensive process. We are working with machine learning algorithms to generate descriptive metadata for digital images. I will share the results of our work, and also lessons learned from working with digital library data.
"""

[[speakers]]
name = "Harish Maringanti"
affiliation = "Associate Dean for IT & Digital Library Services, Marriott Library"
website = "https://collectionsasdata.github.io/"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba_R20200116T191500@google.com"
imported_on = 2026-08-18
needs_review = true
28 changes: 28 additions & 0 deletions _data/talks/2020-01-30-qingyao-ai.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "Unbiased Learning to Rank: Theory and Practice"
date = 2020-01-30
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["fairness & ethics"]
abstract = "Implicit feedback (e.g., user clicks) is an important source of data for modern search engines. While heavily biased, it is cheap to collect and particularly useful for user-centric retrieval applications such as search ranking. Therefore, a learning-to-rank algorithm that can effectively learn from implicit user feedback without affected by its inherent biases could fundamentally change the design of ranking systems and significantly improve the quality of modern search engines. To develop an unbiased learning-to-rank system with biased feedback, previous studies have focused on constructing probabilistic graphical models (e.g., click models) with user behavior hypothesis to extract and train ranking systems with unbiased relevance signals. Recently, a novel counterfactual learning framework that estimates and adopts examination propensity for unbiased learning to rank has attracted much attention. In this talk, we aim to provide an overview of the fundamental mechanism for unbiased learning to rank. We describe the theory behind existing frameworks, and give instructions on how to conduct unbiased learning to rank in practice."

[[speakers]]
name = "Qingyao Ai"
affiliation = "Utah SoC"
website = "http://ir.aiqingyao.org/"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba_R20200116T191500@google.com"
imported_on = 2026-08-18
needs_review = true
28 changes: 28 additions & 0 deletions _data/talks/2020-02-06-gail-zasowski.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "Big Data, Big Universe: Data-Driven Discoveries in Astrophysics"
date = 2020-02-06
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["physics & astronomy"]
abstract = "The stars in the night sky have inspired questions about our place in the Universe throughout history. The development of telescopes showed us that the stars visible to the naked eye are but a tiny fraction of their vast numbers within our own Galaxy, and revealed energy signatures invisible to the human senses. We now know that there are billions of stars in our galaxy, billions of galaxies in our Universe, and nearly 14 billion years of cosmic evolution that have led to where and what we are today. As the volume of astronomical data grows at an ever quickening rate, new discoveries increasingly come from careful mining and analysis of existing data, often used in unforeseen ways. This talk will describe some of the major unanswered questions in astrophysics, and how new data-driven analysis techniques are uncovering new insights into solving them."

[[speakers]]
name = "Gail Zasowski"
affiliation = "Utah Physics & Astronomy"
website = "http://www.physics.utah.edu/~zasowski/"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba_R20200116T191500@google.com"
imported_on = 2026-08-18
needs_review = true
28 changes: 28 additions & 0 deletions _data/talks/2020-02-20-bei-wang.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Imported from the seminar Google Calendar -- please review and complete.

[talk]
title = "TopoAct: Exploring the Shape of Activations in Deep Learning"
date = 2020-02-20
start_time = "12:15"
end_time = "13:30"
series = "Data Science Seminar"
location = "MEB 3147"
zoom = ""
slides = ""
recording = ""
canceled = false
tags = ["deep learning", "machine learning"]
abstract = "Deep neural networks such as GoogLeNet and ResNet have achieved superhuman performance in tasks like image classification. To understand how such superior performance is achieved, we can probe a trained deep neural network by studying neuron activations, that is, combinations of neuron firings, at any layer of the network in response to a particular input. With a large set of input images, we aim to obtain a global view of what neurons detect by studying their activations. We ask the following questions: What is the shape of the space of activations? That is, what is the organizational principle behind neuron activations, and how are the activations related within a layer and across layers? Applying tools from topological data analysis, we present TopoAct, a visual exploration system used to study topological summaries of activation vectors for a single layer as well as the evolution of such summaries across multiple layers. We present visual exploration scenarios using TopoAct that provide valuable insights towards learned representations of an image classifier."

[[speakers]]
name = "Bei Wang"
affiliation = "Utah SoC, SCI"
website = "http://www.sci.utah.edu/~beiwang/"
photo = ""
bio = ""

[meta]
source = "google-calendar"
calendar_uid = "42t5o0blhd85v46a8f5h2s2dba_R20200116T191500@google.com"
imported_on = 2026-08-18
needs_review = true
Loading
Loading