Spring 2013 — UC Irvine — Information & Computer Science — ICS 139W — David G. Kay
Graphics Activity
One picture is worth more than ten thousand words.
—Chinese Proverb
This activity is optional; it does not have to be turned in.
We know that graphics can help get our point across. This activity will give you an opportunity to experiment with different ways of presenting information using computer-based charting tools.
Here's the data: It's adapted from a regular Internet survey (conducted by Richard Reid of Michigan State University and Frances Van Scoy of West Virginia University) of the programming language used by four-year colleges and universities in the first course taken by computer science majors.
Language | Paradigm | 95Q2 | 95Q4 | 96Q2 | 96Q4 | 97Q2 | 97Q4 | 98Q2 | 98Q4 | 99Q2 | 01Q1 | 01Q4 |
02Q1 |
Pascal | Imperative | 153 | 157 | 152 | 151 | 148 | 147 | 144 | 144 | 140 | 97 | 86 |
0 |
C++ | OOP | 27 | 34 | 82 | 87 | 89 | 91 | 100 | 99 | 101 | 88 | 94 |
40 |
Ada | Imp./OOP | 73 | 73 | 75 | 74 | 85 | 85 | 84 | 84 | 84 | 51 | 49 |
2 |
C | Imperative | 36 | 39 | 51 | 51 | 50 | 52 | 56 | 56 | 58 | 42 | 43 |
13 |
Scheme | Func./OOP | 51 | 50 | 49 | 51 | 51 | 49 | 50 | 50 | 50 | 30 | 31 |
11 |
Modula | Imperative | 49 | 50 | 49 | 49 | 49 | 49 | 49 | 49 | 48 | 17 | 17 |
0 |
Java | OOP | 0 | 0 | 0 | 0 | 0 | 3 | 7 | 8 | 15 | 11 | 23 |
51 |
Fortran | Imperative | 9 | 8 | 8 | 9 | 9 | 9 | 9 | 9 | 9 | 6 | 6 |
0 |
SML | Functional | 5 | 6 | 6 | 6 | 7 | 7 | 7 | 7 | 8 | 0 | 0 |
0 |
Oberon | Imperative | 1 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 0 | 0 |
0 |
Turing | Imperative | 6 | 6 | 5 | 5 | 5 | 5 | 4 | 4 | 4 | 0 | 0 |
0 |
Miranda | Functional | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 0 | 0 |
0 |
Smalltalk | OOP | 1 | 1 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 0 | 0 |
0 |
Eiffel | OOP | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 |
0 |
ML | Functional | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
1 |
ISETL | Functional | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 0 | 1 |
0 |
Haskell | Functional | 0 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 1 | 0 |
0 |
ObjPascal | OOP | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 |
0 |
Beta | OOP | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
0 |
Blue | OOP | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
0 |
Orwell | OOP | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
0 |
Prolog | Logic | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
0 |
Simula | OOP | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
0 |
HyperTalk | Imperative | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
0 |
ISETL/C | Imperative | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 |
C++/Pascal | OOP/Imp. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 |
VisualBasic | Imp./OOP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
2 |
(a) Enter this data into a spreadsheet; you can retrieve it from ftp://ftp.ics.uci.edu/pub/kay/firstlang, or by following the "Graphics Exercise" link from the syllabus on the course home page.
Spend some time becoming familiar with the data. Note, for example, that the total number of schools reporting information varies from year to year, so that relative figures will mean more than the raw numbers provided.
The following parts ask you to produce charts of various kinds. If you use color in a meaningful way in your charts (i.e., to convey information rather than just for decoration), that's good; however, if you plan to use a monochrome printer, you should design your charts so the information conveyed by color isn't lost on paper.
(b) Produce a chart that gives the clearest possible picture of the frequency of use of these languages, based on the most current figures (from early 2002). Try one version with every language represented, and one version with an "other" category into which you aggregate the languages that aren't widely used. Think carefully about what form of chart--bar, pie, scatter, whatever--would show this best.
(c) Produce a chart that shows that functional programming languages are more widely used than object-oriented programming (OOP) languages, or vice versa if that's the case.
(d) Using all the data, produce a chart that shows clearly the trends--the increase or decrease in usage--of the popular languages. [Should this be the same kind of chart you used in part (b)?]
(e) Pick your favorite language from the list above, and produce a chart that makes that language look as popular as possible. Don't alter the actual data, but do be "creative" in how you group languages together, which languages you include or exclude, and how you design your chart. Be sure to state along with your chart which language you're trying to emphasize.
(f) Combine all these charts into a single Word document and submit it in the usual two ways.