AWS Sessions for GSB 5544

Computing and Machine Learning for Business Analytics

This site holds the AWS-focused sessions being developed for GSB 5544. It exists so collaborators can see, in one place, what has been built so far and what students will actually do in each session. Every document is rendered here as a web page and is also available as a downloadable notebook.

NoteHow students reach AWS

Each student uses their own personal AWS account on the AWS Free plan. Per AWS’s documentation, a new account receives $100 of credits (up to $100 more for optional activities), the plan lasts six months or until the credits are used, it incurs no charges, and SageMaker AI is available on it. The pre-class reading walks students through creating the account, the one-time SageMaker Studio setup, and starting and stopping a JupyterLab space. Data comes from the public noaa-ghcn-pds bucket. The only AWS service the required session uses is SageMaker Studio, on an ml.t3.medium in us-east-1. A class session costs a student roughly ten cents of credit if they stop the space when they finish.

Status at a glance

Session Topic Status Student-facing documents
1 Data Bigger Than Your Laptop: process NOAA weather data on a remote machine, download a small summary, visualize it locally in Positron, and compare the two machines Revised 2026-10-05 around one eight-step remote-to-local workflow. Solution notebooks were executed end to end against the live NOAA bucket on a laptop; not yet executed inside an AWS account. See the changelog Pre-class reading, topics notebook, two-notebook practice activity, two-notebook lab, optional extensions.
2+ To be determined Not started

The learning objective

Students will use their own AWS account to process NOAA weather data remotely, download a compact summary for local visualization in Positron, and compare the resources and elapsed time of local and remote execution.

Every document is organized around the same eight steps:

Step What the student does Which computer runs code
1 Signs in to their own AWS account none
2 Opens and starts their SageMaker space none yet
3 Reads NOAA data from the public S3 bucket SageMaker
4 Filters, transforms, and aggregates SageMaker
5 Saves a small summary CSV on the remote machine SageMaker
6 Downloads that summary to their laptop none (a file copy)
7 Opens it in Positron and creates a visualization their laptop
8 Saves their work and stops the remote machine none

Reading S3 data straight into a notebook on the laptop does not count as the workflow. A student who finishes can answer five questions: where the original data is stored, which computer performed the analysis, what was downloaded, which computer created the visualization, and how the two machines compared.

What each document is for

Document Its one job Where it runs
01 · Pre-class reading Explain the concepts, have students measure their laptop, and walk them through account setup Laptop (Positron) and the AWS website
02 · Topics notebook Short. Measure the remote machine, inspect data sizes, read a manageable dataset, make a small summary SageMaker
03 · Practice activity The full eight-step workflow with explicit instructions, plus a fair local-versus-remote timing test Two notebooks: one on SageMaker, one in Positron
04 · Lab Repeat the workflow more independently for a two-market inventory-planning question, and interpret the business implications Two notebooks: one on SageMaker, one in Positron
05 · Athena extension (optional) Preserve the Athena material for a later session SageMaker, with an extra permission step
06 · Extraction strategies and cost detail (optional) The longer extraction exercises and cost tables moved out of the reading Laptop (Positron)

How the documents keep execution locations clear

  • Remote and local work are in separate companion notebooks, so a student is never unsure which computer a cell belongs to.
  • Every code cell begins with # RUNS ON: SageMaker (remote) or # RUNS ON: laptop (Positron). The materials say plainly that this comment is a label and does not move execution; each notebook also calls where_am_i(), which checks the machine it is really on and prints the computer’s name.
  • Every transition (browser setup, remote notebook, file download, local notebook) is its own numbered step.
  • No required notebook plots remotely. The remote notebooks export; the local notebooks plot.
  • Routine boilerplate (human, machine_report, prefix_size, where_am_i) is supplied, not reconstructed by students.

All notebooks are generated from one source file, build_notebooks.py, so student and solution versions cannot drift apart. The build refuses to write a notebook where a code cell lacks a RUNS ON line or carries one that does not belong in that notebook.

Session 1 · Data Bigger Than Your Laptop

Concepts covered

  • Account creation, signing in, opening SageMaker, and starting and stopping the environment.
  • Storage versus computation; disk versus RAM; total versus available RAM.
  • CPU cores: physical cores, logical CPUs, and cloud vCPUs.
  • Bytes through terabytes, and decimal versus binary units.
  • S3 buckets, objects, keys, and prefixes.
  • Four sizes of the same data: source files in S3, the loaded DataFrame in RAM, space on the remote disk, and the downloaded summary.
  • Why NOAA’s public data can be read anonymously while students still need their own account to rent the computer.
  • What computing and storage cost, the difference between open and running, and a shutdown checklist.

Dataset

All exercises use NOAA GHCN-Daily in the public noaa-ghcn-pds bucket, read from its Parquet copy, which is split by year and element (parquet/by_year/YEAR=…/ELEMENT=…/). Values are in tenths of a unit, dates are text, and each value carries a quality flag; the notebooks convert units, parse dates, drop values that failed NOAA’s checks, and never treat a missing observation as zero.

  • The practice activity uses the California stations of the U.S. Cooperative Observer network (ids beginning USC0004), daily highs for 2015 to 2024. The materials label this subset for what it is and state that its unweighted average is not a statewide temperature estimate.
  • The lab uses two stations, San Luis Obispo (USC00047851) and Phoenix (USW00023183), daily highs and precipitation for 2015 to 2024.

Sizes observed on 2026-10-05, for orientation only; the notebooks report whatever students observe: one year of TMAX is about 15 MB of Parquet and about 4.4 million rows; the practice workflow reads about 156 MB of source files and returns a summary of under 3 KB.

The timing comparison

The practice activity’s Part B runs one identical job on both machines: the 2024 TMAX slice, the same four columns, the same filter, the same transformation, the same aggregation, defined once in a function that appears verbatim in both notebooks. It measures reading time and processing time separately, runs twice on each machine to expose caching, checks that the two machines produced equivalent summaries before any times are compared, and asks students to interpret their own numbers. It does not promise that AWS is faster. The larger Part A workflow is kept separate and is not used as a timing comparison.

Session 1 documents

Document Purpose Read online Download
01 · Pre-class reading Concepts, laptop measurements, account setup View Markdown source
02 · Topics notebook (student) Short fill-in-the-blank, on SageMaker View Notebook
02 · Topics notebook (solutions) Instructor copy View Notebook
02a · Remote machine reference What the course’s SageMaker space reports about itself, and how to capture your own View Markdown source
03 · Practice, remote notebook (student) Steps 1 to 6 and the remote half of the timing test, on SageMaker View Notebook
03 · Practice, local notebook (student) Steps 7 and 8 and the local half of the timing test, in Positron View Notebook
03 · Practice, remote notebook (solutions) Instructor copy View Notebook
03 · Practice, local notebook (solutions) Instructor copy View Notebook
04 · Lab, remote notebook (student) Inventory-planning lab: analyze and export, on SageMaker View Notebook
04 · Lab, local notebook (student) Inventory-planning lab: visualize and interpret, in Positron View Notebook
04 · Lab, remote notebook (solutions) Instructor copy View Notebook
04 · Lab, local notebook (solutions) Instructor copy View Notebook
05 · Athena extension, guide (optional) What Athena is, its permission step, cost, cleanup View Markdown source
05 · Athena extension, notebook (optional, student) Athena queries from SageMaker View Notebook
05 · Athena extension, notebook (optional, solutions) Instructor copy View Notebook
06 · Extraction strategies and cost detail (optional) Longer laptop exercises and cost tables moved out of the reading View Markdown source
Optional challenge lab · Cloudy with a Chance of Parquet A function-writing lab on the same workflow, for students who want more View Notebook
Changelog What was retained, simplified, moved, and corrected View Markdown source
Build script Generates all twelve notebooks from one source build_notebooks.py

The remote notebooks are meant to be uploaded to JupyterLab in the student’s SageMaker space. The local notebooks are meant to be opened in Positron. Opening a remote notebook locally will run it locally; its first cell says so.

What students need

  • Positron on their laptop, with a Python environment. The first cell of the reading and of each local notebook installs the packages:
pip install boto3 pandas pyarrow fsspec s3fs psutil matplotlib
  • Their own AWS account on the Free plan, created before class by following section 5 of the pre-class reading, with SageMaker Studio set up once. Each remote notebook’s setup cell installs s3fs, pyarrow, and psutil in case the image lacks them.

For collaborators

  • Source repository: github.com/gato365/aws-gsb-5544-sessions
  • This site: gato365.github.io/aws-gsb-5544-sessions
  • Start with the changelog. It lists what was retained, simplified, moved, and corrected in the 2026-10-05 revision, what was tested and how, and what still needs a dry run in a real student account.
  • Every page has a “Source” link in the top right that opens the file on GitHub.
  • To rebuild: run python build_notebooks.py in session_1/, then quarto render at the repository root, and commit the docs/ folder.