Case Study: From Spreadsheets to Scripts — Elena's Story

Elena Vasquez is a composite character based on common experiences of data analysts who learn programming. Her specific story is fictional, but the patterns she illustrates are drawn from widely reported industry experiences.

The Problem

Elena Vasquez works as a data analyst at Harbor Community Services, a nonprofit that provides social services across three counties. Every Friday, she spends four hours producing the Weekly Impact Report — a summary of services delivered, clients served, and resources allocated.

The process looks like this:

  1. Download CSV files from three different database systems (one per county)
  2. Open each file in Excel
  3. Manually check for obvious errors (negative numbers, impossible dates, missing fields)
  4. Copy the cleaned data into a master spreadsheet
  5. Write formulas to calculate totals, averages, and year-over-year comparisons
  6. Create three charts
  7. Copy the charts and key numbers into a Word document template
  8. Email the report to 12 stakeholders

Elena has been doing this every Friday for two years. She's fast at it — she's gotten it down to four hours. But it's four hours of tedious, error-prone work. Last month, she accidentally swapped two county columns, and the executive director cited incorrect numbers in a board meeting. Nobody caught the error for a week.

The Turning Point

Elena's colleague mentions that a friend at another nonprofit wrote a Python script that generates their reports automatically. "It takes about 30 seconds to run," the colleague says.

Elena is skeptical. She's never programmed before. She took a statistics course in college, and she's comfortable with Excel formulas, but code seems like a different world — something for "tech people."

But four hours a week is 200 hours a year. That's five full work weeks. And the column-swap error still stings.

She signs up for a CS1 course.

Computational Thinking Applied

Without realizing it, Elena has already been using computational thinking in her Excel workflow:

Decomposition

Her 8-step process is a decomposition of "produce the weekly report." Each step is a sub-task. When she learns to program, she'll turn each step into a function.

Pattern Recognition

Steps 2-4 (open file, check for errors, copy to master) are the same process repeated three times — once per county. In programming, this pattern becomes a loop. Instead of manually doing the same thing three times, she'll write the instructions once and have the computer repeat them.

Abstraction

Elena's Excel formulas are abstractions. =AVERAGE(B2:B100) hides the complexity of adding up 99 numbers and dividing by 99. When she learns Python, she'll use higher-level abstractions — entire libraries designed for data analysis — that hide even more complexity.

Algorithm Design

The 8-step process is an algorithm (an imprecise one, but an algorithm). When Elena writes a Python script, she'll make it precise: instead of "check for obvious errors," she'll specify exactly what constitutes an error and exactly what to do about each one.

What Changes

By Chapter 10 of this course, Elena will have the skills to: - Read CSV files automatically (csv module) - Validate data programmatically (no more manual checking) - Calculate statistics in code (no more copy-pasting between sheets) - Generate reports (formatted text output)

By Chapter 21, she'll add: - Reading from APIs instead of downloading CSV files manually - Generating charts with matplotlib - Sending the report by email with a single command

Her four-hour Friday task becomes a 30-second script execution. More importantly, the script doesn't make column-swap errors. It applies the same validation rules every time. When the executive director has a question about the data, Elena can trace exactly how every number was computed.

The Bigger Picture

Elena's story illustrates a pattern that plays out across every industry: professionals who learn basic programming don't become software engineers (usually). They become better versions of their existing role. The data analyst who can code is more accurate, more efficient, and more valuable than one who can't.

This is what "CS is for everyone" means in practice. Elena didn't change careers. She added a tool to her toolbox — and that tool happened to give her five weeks of her life back every year.

Discussion Questions

  1. Elena was skeptical about learning to program because she didn't see herself as a "tech person." What might be the costs — personal, organizational, and societal — of this kind of self-exclusion? Who benefits from the myth that programming is only for certain people?

  2. The column-swap error cost Elena's organization credibility. In your field of interest, what's an example of a manual process that could introduce errors? How might automation help?

  3. Elena's eight-step manual process maps directly onto programming concepts you'll learn in this course. Try to match each step to a CS concept (even if you don't know the details yet): - "Download CSV files" → ? - "Check for errors" → ? - "Repeat for each county" → ? - "Calculate totals and averages" → ? - "Generate charts and report" → ?

  4. Elena's script replaces four hours of work with 30 seconds of runtime. But writing the script took time to learn and build. When is automation worth the upfront investment, and when is it not? What factors would you consider?

Mini-Project

Think about your own life — academic, professional, or personal. Identify a repetitive task that takes you at least 30 minutes per week. Decompose the task into steps. Which steps are repetitive (and could become loops)? Which involve patterns (and could become functions)? You don't need to write code yet — just analyze the task through the lens of computational thinking.

References

  • This case study is a Tier 3 illustrative example. Elena Vasquez and Harbor Community Services are fictional, but the pattern of manual reporting automation is extremely common in nonprofit and corporate settings.
  • Research on programming adoption among non-engineers consistently finds that data analysts are among the fastest-growing segments of new Python users. (Tier 2 — widely reported in Python community surveys, e.g., JetBrains Developer Survey and Stack Overflow Developer Survey)