Due Sunday Sept 27 at midnight
The original "killer app" for personal computers was an Apple II program called VisiCalc, written in 1978 by Dan Bricklin and Bob Frankston. VisiCalc made it possible to use a computer for the kind of analyses that generations of business people had previously done by hand with paper "spreadsheets": rows and columns of related numbers that could be used to organize data and assess alternatives in a systematic way.
Today, spreadsheets are the quantitative reasoning tool for many people. In terms of market share, Microsoft's Excel is the de facto standard. Lotus 1-2-3 (the lineal descendant of VisiCalc) was discontinued by IBM in 2013. Apple offers Numbers as an alternative. There are also free open-source spreadsheets like Gnumeric and OpenOffice Calc, and there are web-based spreadsheets like the ones from Google and Zoho. All such programs have a common computational model and similar visual appearance, and although we will use Excel in this lab, whatever you see will transfer in spirit, though not necessarily in detail, to the others. You can do this lab on Windows or a Mac.
New in 2020: You can do this lab in Apple Numbers, Google Sheets, or Office 365 (Microsoft's online analog) if you prefer. Almost everything we say about Excel maps directly into those alternatives. When you're done, you will have to export your data into Excel so we have a uniform framework for grading.
Excel is enormously powerful and complicated, so we will investigate only a tiny fraction of its features. As you work through the specific instructions in this lab, take time to leave the official track and experiment on your own with anything that looks interesting. There's little risk in this: Excel's Undo and Redo feature let you back out of something that went wrong, or repeat the steps that got you someplace interesting. Undo and Redo are the small curved arrows near the middle of this screenshot:
If you want to know more about Excel, there are many hundreds of books, some good, and many web pages. John Walkenbach's spreadsheet page provides independent material from the author of several good books.
Part 1: Cells and Formulas
Part 2: Ranges and Functions
Part 3: Importing and Graphing Data
Part 4: How to Lie with Statistics
Part 5: Submitting your work
Take some time now to explore the menus, toolbars, and the like.
The individual elements of a spreadsheet are called cells. A cell is identified by its column (one or two letters) and row (a number); thus the cell in the upper left corner (highlighted when you started Excel) is named A1. The highlighted cell is called the active cell.
Cells can contain numbers (the most common case) or text, and their values can be set by what you type into them, loaded from files or the Internet, or computed by a formula that derives a value from the values of other cells.
Time to do some experimenting.
You can change the format of cell data by "Format | Cells", and then select "Number" to set the numeric display, "Alignment" to control centering, "Font" to set size and color, and so on. The most common reason to adjust cell format is to cause data to be treated as numeric and displayed with the same number of significant digits, or to define the format for data that represent dates. You can instead put text in cells to serve as headings for columns or rows; text can be set in various sizes and fonts as well.
You can use commands under "Edit" to clear cell contents entirely. In all of these, you can select a single cell, a group of cells, one or more entire rows, or one or more entire columns; the action applies to the selected range.
To insert an additional row or column, highlight the row or column before which you want to insert, then use the "Insert" menu.
A formula is typed into a cell just like data except that the first character must be an equals sign =. To experiment with this:
A further experiment:
It takes a lot of typing to enter data values and formulas this way, so Excel provides some convenient shortcuts.
Excel, like Word, uses Visual Basic as a scripting language. All of Excel's myriad capabilities (including anything you can do with keyboard and mouse) are accessible from VB code. This can be used to organize much more complicated computation than would be feasible with simple formulas in cells, to tailor the interface for specific purposes, and to access all of the repertoire of other components on Windows. And of course the bad news is that spreadsheets can be just as much carriers of VB-based viruses as Word documents, so you should run Excel with macros disabled by default.
We won't pursue any of this further, but if you want to explore, VB is waiting for you: Tools / Macro / VB Editor.... One of the neatest features is that you can turn on the "macro recorder"; this will record whatever subsequent actions you perform and convert them into the equivalent VB code. It's a very effective learning tool and a valuable complement to the manual.
Your task is to make a spreadsheet that shows how good the approximation is and find the place where the ratio first becomes greater than 2.
Do this with as little typing and as much use of Excel's extension feature as possible; you can probably do it by typing no more than two or three rows and then extending them. Your table should look like this when done, except that it will have more rows, more data in the graph, a title and axis labels, and a highlighted row towards the end:
Notice that the approximation gets worse at worse than linear rate. To see just how fast it is getting worse, click on the chart, then select Add Trendline from the Chart menu or by right-clicking. Pick the trendline that gives the best fit to the data.
In this lab, you will be using a new sheet for each part, each with its own name. For this part,
You'll be updating this file throughout the lab, so be sure to save regularly.
While we're on the topic of things that grow exponentially, let's take a quick look at another example: how quickly the number of infected people grows as a function of R0, the number of other people that an infected person infects in a situation like ordinary flu or the far more serious Covid-19.
This example shows what happens if there are 1,000 people who are infected over 10 time periods with four different values of R0:
The basic formula here is just N x R0 p, where N is the number of infected people at the beginning and p is the time in days, weeks, or whatever. You can see from the curves that if R0 is less than 1, the number of people shrinks, but if R0 is greater than 1, it grows. (This is of course not a perfect model, but it shows why keeping that number low is important.)
Make a version of the graph above using a similar number of rows and columns, but with somewhat different vaues for R0. You may find it helpful to use the exponentiation operator in some formulas; it is ^.
For example, A1:A10 describes a column range 10 cells high but only one cell wide. The range B2:K2 represents a row of 10 cells starting at B2, and A1:J10 represents an array of 100 cells, 10 by 10, that starts in the upper left corner. As a special case, A2:A2 is a range that consists of a single cell, and that can be abbreviated to the familiar A2.
Excel provides more complicated ranges, but for the most part, simple rectangular arrays are all we need. It is also possible to name a range, which is easier to understand and refer to in a big spreadsheet; we won't be using that facility here.
The range notation gives us a way to specify an arbitrarily large group of cells, and thus write out computations more compactly and clearly. For instance, it's impractical to type a formula like =A1+A2+A3+... if there are more than a few terms in the summation; a range is a lot easier.
Excel provides a great number of mathematical functions that perform operations over a range of cells. The simplest of these is sum, which adds up the numbers in a range: the formula =SUM(range) produces the sum of the values in the cells in the specified range.
What happens if you need another row or column, because your data set has expanded? If you insert a row or a column within a range, Excel is pretty clever about guessing what you mean, and will extend the formula for you. But if you add a row or column at one end of the range, Excel isn't sure what you had in mind, and doesn't change the formula. Verify this behavior:
Have you ever wondered how your performance in a course will affect that most crucial of all numbers, your GPA? Here's your chance to find out while learning something useful.
Make a new sheet. Enter the data for letter grades and their corresponding numeric value in A2:A13, as in the first two columns of this example:
Column C is the number of courses in which you got a particular grade; for example, this person got 4 A's and 4 A-'s. Column D figures out how much each grade contributes to total score, C15 is the number of courses and C16 is the GPA. You have to figure out the formulas for Column D and cells C15 and C16. The GPA should be displayed with exactly 3 digits after the decimal point.
You should be able to enter any hypothetical set of grades to compute a GPA. Note that a P counts as a course but does not affect the GPA. An F does not count as a course or affect your GPA either, but let's hope that never happens to you.
Once you have it all working,
The task is to generate a table that displays stock prices and relative performance for two stocks for the past two or three months. You can choose any two stocks you like; interesting pairs might be selected from among Amazon, Ebay, Google, Yahoo, Facebook, Twitter, IBM, Oracle, Ford, GM, Tesla, etc. Here we will just call the two stocks FOO and BAR.
Now merge the two data sequences into one sheet:
The prices are in most recent first order, which is wrong for graphing. Reverse them:
At this point, if you select columns B and C, you can produce a graph that compares the two stocks, but it won't be very interesting if their prices differ by too much, as in the table above. So the next step is to make two new columns that show how the prices have changed in proportion to the first value.
Now transfer the data and the graphs to your lab3.xlsx.
It's always nice when others recognize one's true greatness, as US News and World Report has done every year since 2000. Lamentably they made an error for the 2009 rankings that came out in August 2008, but this was corrected in 2010 and beyond; here's the top of the list for fall 2020:
But how are these rankings really determined? And just how much do they really mean?
US News reveals a bit about their methodology; basically, they collect data on a variety of factors for each school, weight the factors according to how important they seem, and then sort the results. For example, "undergraduate academic reputation" accounts for 22.5% of the score, "graduation and retention rates" for 22.5%, and alumni giving percentage for 5% (where Princeton is sure to win big).
There are at least two problems with these ranking schemes: the data itself is suspect, and the weighting factors are arbitrary. (We pass over how schools themselves might try to game the system, a tactic that is not unheard of.) In this lab, we'll accept the data values, however flaky they might be, and focus on the weighting factors.
The file usnews.xls contains some carefully fiddled data and a set of weights, loosely based on data from years ago, that almost preserve the original ordering; many factors have been unceremoniously dropped and a few data values have been adjusted, so don't read anything into this, especially not about the merits of individual schools then or now. Here is the display for PC and Mac:
The first two rows show the factors, and the fourth row gives weights that sum to 100% (cell J4). The range J6:J15 shows the computed scores. The formula box shows the formula being used to compute J4; subsequent rows have the same formula except for cell references. A couple of factors are combined (SAT) or complemented (acceptance ratio, since a low acceptance ratio is deemed better than a high acceptance ratio.
Your task is to find several sets of non-negative weights that will rearrange the schools in various ways. Note that the weight percentages in B4:I4 must sum to 100.
Give this a decent effort, not just the first obvious thing that happens to make a change. You should also experiment with Excel's sorting capabilities here; at the end, you should be able to sort the schools by any combination of factors, for example, by decreasing reputation score and within that by increasing acceptance rate.
At this point you should have a workbook with five sheets: Power2, Covid, GPA, Stocks, Rank. Check through them to make sure they look right.
Be sure to save your work as lab3.xlsx somewhere safe. This is your backup in case something goes wrong with the submission or your computer. You could mail a copy of lab3.xlsx to yourself, as another backup. Make sure that it arrives OK, that the attachment is about the right size, etc.
If you used Google Sheets or another Excel alternative, convert your spreadhseet into Excel's .xlsx format. Make sure that it is named lab3.xlsx before you upload it to tigerfile.
When everything is working, then
Upload lab3.xlsx to the CS tigerfile for Lab 3: https://tigerfile.cs.princeton.edu/COS109_F2020/Lab3.Do not put this lab on cPanel.