- A "spreadsheet" is an easy way to do simple computations
- Everyone should be able to make a basic spreadsheet
- "paradigm" .. fancy word, but it applies here
- Numbers and formulas on paper is one paradigm
- Numbers in computer code is another paradigm
- A spreadsheet puts your computation in a paradigm of rows and columns
- The spreadsheet paradigm supports common math without requiring programming .. a truly world changing invention
- History: Visicalc (1979), then Lotus, then Excel
Spreadsheet software - many options: Google docs has a free spreadsheet in the browser, and now Microsoft has a free browser one too with skydive. There's also the free application you can install LibreOffice. And the famous Microsoft Excel spreadsheet products which work great and are kind of expensive. Any of these will work for all our examples and homeworks.
Aside: Design History
- The creators of the spreadsheet knew paper spreadsheets and finance math
- They had some computer knowledge
- Theory: knowing the domain creates great software more than knowing CS
- -What problem to solve
- -How users look at the problem
- -The user's priorities
- e.g. Perhaps a working biologist will think up the next great biology program, not a CS person dabbling in biology
Monster example spreadsheet in google docs. Below we'll use this as a running first example.
To edit above: either (a) In google docs: File > Make Copy to edit. or (b) File > Download As > .xlsx file, and then edit using any program.
For references here is the monster spreadsheet in completed form
1. Spreadsheet Cells and Naming
- A spreadsheet is a rectangle of individual cells
- Each cell can contain number, date, text, .. whatever
- Addressing: columns are named: A, B, C, D, ...
- Addressing: rows are numbered: 1, 2, 3, 4, 5, ...
- So one cell can be identified like: B3, C12, A1, ..
Experiment: click on a cell, note its "address" B1 or whatever, type in a word or number
2. Columns of Numbers
- Very common to have a few columns of numbers
- e.g. the Red Castle and Blue Castle numbers here
- These are just raw numbers without computation
3. Add Computation: sum()
- Compute the total number of monsters in the blue castle
- Click on the B8 cell, a couple rows below the last blue castle number
- Type in the following "formula" (with the equal sign): =sum(B1:B6)
- The equal sign = at the start means this cell is computed from other cells
- The sum() adds up all the numbers in a range of cells
- The B1:B6 means the whole vertical group of cells from B1 down through B6 (lowercase letters like b1:b6 work too)
- Type in "Total Count" in the cell to the left (A8) to serve as a label
- Notice: once you type in the =sum(...) in the cell, it is replaced with the computed sum number (28 in this case)
- Notice: when you change a number up above, the sum is automatically updated
- Notice: the cell just shows 28, but if you click it, you can see the full formula
- Using =sum() to add up a bunch of numbers is probably the single most common use of spreadsheet
- Famous Reinhart/Rogoff bug
From the headlines: Reinhart and Rogoff had a popular economics paper supporting austerity, but it had a significant spreadsheet bug. Essentially they wrote something like sum(a1:a8) when they intended (a1:a11), so they left out some numbers. This bug was significant in the paper's results. The subsequent history of the great recession has shown austerity to be a bad idea. Note when you double-click a cell, it shows you what it depends on to help avoid this sort of bug. It's amusing that such high level research can have ordinary bugs just like the rest of us, although of course this should be no surprise. Bugs are a common part of software.
4. Add Computation: + - * /
- Suppose every monster pays $100 per night and we want to compute the $ income per night, i.e. count*100
- We can write an arithmetic formula like =B1 * B2 in a cell to compute a number based on the values of other cells
- Click the B9 cell just below the sum
- Type in the formula (with the equal sign): =B8 * 100
- Probably the easiest way to edit an existing formula such as in B8 and B9 is double clicking the cell
- Trick: while typing in the formula, instead of typing "B8", just click the cell you mean
- Type in "Total $/night" as a label to the left
- This is similar to the earlier sum() computation, but with basic + - * / type arithmetic
5. Extreme Magic: Fill Right
- Once you have the B8 and B9 formulas working the way you want, how to replicate them for the Red Castle?
- Click on B8 and drag right to highlight C8
- Type ctrl-R, the Fill Right command .. this is extreme magic
- Fill Right duplicates the formula over to the right
- The formulas are all spatially relative, so when copied to the right, they work on the Red Castle data
- Notice: click on the C8 sum. Notice that it refers to C1:C8 but the original referred to B1:B8
- The Fill Right operation copies over the sum() part, but updates the cell references to refer to the new column (changing B to C basically). Complex to explain, but actually the most intuitive way for the sheet to work.
- Do Fill Right for the Total $/night formula as well
6. Chart Magic
- Finally we'll add a chart
- Click on A1 (the upper left of the data) and drag down to the lower right of the data (C6)
- Don't include the totals, just the raw numbers at the top
- Select Insert Chart
- There are many types of chart available
- Experiment with bar vs. line chart, or maybe add a title, resize it a bit
- Position the chart below all the numbers
- Notice: changing a number updates the chart
- Making pretty charts with your data is pretty easy
Here's a picture of it in done form:
Compute average with average(a1:a10)
- Above sum(a1:a10) computes the total sum of range of of numbers
- Similarly, average(a1:a10) compute the average of range of numbers
- sum() and average() are probably the two most commonly used functions
2. Cell Phone Example - You Try It
- Say we are studying how many times each person check's their cell phone per day
- Here it is in google docs:Cell Phone Example
- To edit above: either (a) File > Make Copy to edit in google docs. or (b) File > Download As > .xlsx file, and then edit using any system
- At the bottom of the numbers
- 1. Compute in separate cells the sum and average for each person (use sum() and average() and fill-right)
- 2. Off to the right, compute a single grand-total number of all the sums. You can just use = and + to make the grand total.
- 3. Make a line-graph chart of the raw data. Are the graphs in agreement with the computed averages?
- -Select upper-left (emily), drag down to the lower right (550). Click Insert > Chart