Plotting of and by students

I saw this article at Inside Higher Ed this morning, guided by a Mastodon post from Techmeme. The title of the article is “Brown Professor Suspects Majority of His Class Used AI to Cheat,” so if you’re sick to death of reading about AI—pro, con, or caveated—don’t feel obligated to follow the link. I’m interested in a plot included in the article more than the article itself.

An economics professor gave his class a take-home midterm, and the grades on it were much higher than usual. He suspected the high marks came from the students using LLMs to answer the questions, so the final exam was done in class and the marks were generally much lower. Here’s the plot given in the article:

Test grades by student from IHE

Image from Inside Higher Ed.

Let me start by saying I have no criticisms of the plot, just some comments about things that struck me.

First, the upper portion of the chart made me think the students, S1 through S59, were ordered according to their score on the final exam (the gray dots and figures). But as you go down the list, you soon see that that isn’t the case. After reading past the chart, I saw that the professor decided to throw out the results of the midterm and use the final exam as 80% of the course grade. Presumably, the students were sorted by their course grade.

More important, though, was the chart’s layout. When plotting a pair of scores for every student, the usual convention would be to have the students (the categories) laid out along the horizontal axis and their scores (the values) plotted on the vertical axis. This does it the other way around. There’s nothing wrong with doing it that way; it’s just unusual. Sort of like seeing a time series chart in which time is on the vertical axis. There can be good reasons to do it, but usually people don’t.

I first read the article on my phone, so I wondered if the layout was driven by the aspect ratio of most phones in portrait mode. In fact, since the chart is not actually an image but some sort of JavaScript thingy from Datawrapper. At least I think that’s what it is—I couldn’t select the chart as an image, and when I looked at the page’s HTML, I saw it was in an <iframe> element.

This made me wonder if the chart would flip to a more conventional layout if the aspect ratio of the browser were different. Turning my phone to landscape mode didn’t flip the axes, nor did opening the page on my MacBook Pro with a wide Safari window. Clearly the author of the article, Emma Whitford, thought it was best to have the students running down the vertical axis.

I decided to see what a more conventional layout would look like. I used the link on the page to download the plot’s data as a CSV file—a very thoughtful addition to the article and something I wish more authors did—and whipped out a quick plot in Matplotlib. Here it is:

Midterm and final exam results

Even in a wide browser window, it’s pretty tightly constrained, mainly because I have a width limit on the content portion of ANIAT (that’s to keep lines of text of reasonable length). If you click on the chart, it’ll open to the full width of your browser window, which will make it easier to peruse.

Here’s the code that produced the chart:

python:
 1:  #!/usr/bin/env python3
 2:  
 3:  import pandas as pd
 4:  import numpy as np
 5:  import matplotlib.pyplot as plt
 6:  from matplotlib.ticker import MultipleLocator, AutoMinorLocator
 7:  
 8:  # Read in the exam scores
 9:  df = pd.read_csv('scores.csv')
10:  
11:  # Create the plot with a given size in inches
12:  fig, ax = plt.subplots(figsize=(12, 6))
13:  
14:  # Bar colors are based on whether midterm was higher than final
15:  colors = ['#0571b0']*59
16:  for i in range(59):
17:    if df.Final[i] > df.Midterm[i]:
18:      colors[i] = '#ca0020'
19:  
20:  # Plot the scores as columns between the final and midterm scores
21:  ax.bar(df.Student, df.Midterm-df.Final, bottom=df.Final, width=.5, color=colors, zorder=10)
22:  
23:  # Set the limits
24:  plt.xlim(xmin=0, xmax=60)
25:  plt.ylim(ymin=0, ymax=100)
26:  
27:  # Set the major and minor ticks and add a grid
28:  ax.xaxis.set_major_locator(MultipleLocator(5))
29:  ax.xaxis.set_minor_locator(AutoMinorLocator(5))
30:  ax.yaxis.set_major_locator(MultipleLocator(20))
31:  ax.yaxis.set_minor_locator(AutoMinorLocator(2))
32:  ax.grid(linewidth=.5, axis='x', which='both', color='#dddddd', linestyle='-', zorder=0)
33:  ax.grid(linewidth=.5, axis='y', which='both', color='#dddddd', linestyle='-', zorder=0)
34:  
35:  # Title and axis labels
36:  plt.title('Final to midterm exam result ranges')
37:  plt.xlabel('Student ID')
38:  plt.ylabel('Score')
39:  
40:  # Make the border and tick marks 0.5 points wide
41:  [ i.set_linewidth(0.5) for i in ax.spines.values() ]
42:  ax.tick_params(which='both', width=.5)
43:  
44:  # Add a note
45:  ax.text(5, 25, 'Midterms were higher than finals except for Student 22', va='center')
46:  
47:  # Save as PDF
48:  plt.savefig('20260709-Midterm and final exam results.png', format='png', bbox_inches='tight', dpi=150)

A few comments on this:

Overall, I think my chart works, and I had fun thinking about how to make it. But it’s not better than the original.

Update 10 Jul 2026 5:07 AM
Sometimes I just want to be done with a post, and I publish it before I should. That’s what happened last night. While it’s true that categories are usually laid out horizontally, I shouldn’t have left the impression that it’s tremendously rare for them to be laid out vertically. There are plenty of good vertical examples.

A clear reason for a vertical layout is a large number of categories, and while 59 categories isn’t especially large, it’s definitely heading in that direction. I made my chart mainly to see if a horizontal layout can work with 59 categories, and I think it can—at least if you can give your plot enough horizontal space.

(Another good reason for a vertical layout is that it works better typographically. Sometimes the categories have long names, and they fit better in a column than in a row. That isn’t the case here, but it happens.)

Thanks to Janne Moren for making me realize that this post was too blunt as originally written.


Old icons

There’s been a lot of talk lately about Mac application icons and “squircle jail.” Inspired by this post from Paul Kafasis on the Rogue Amoeba blog,1 many Mac-adjacent people have taken up his cause to “Free the Icons.”

I agree, but Apple’s 50th anniversary has gotten me thinking a lot lately about the early days of the Mac, so it’s only natural that my mind shifted to the highly constrained icons Mac applications had back then.

In those days, icons were 32×32 pixel images, and every pixel was either black or white. The classic original Mac application icons were the ones for MacWrite and MacPaint.2

MacWrite and MacPaint

You can see that Apple liked the idea of app icons being a tilted rectangle with some image inside the rectangle to indicate what the app did. The hand was Apple’s way of telling you that this icon was for doing things, and the rectangle was tilted to match the orientation of the hand. (If you were left-handed, this was just another injustice inflicted on you by a cruel right-handed world.)

Document icons were typically upright rectangles with dog-eared corners and similar designs inside the rectangle—no hands because documents don’t do anything. But we’re not here to talk about document icons.

Other Apple app icons that fit this pattern were the ones for MacDraw and HyperCard:

MacDraw and HyperCard

The HyperCard icon was a bit of a departure, in that it had a stack of rectangles, but the idea was the same. There was no image on the top card of the stack, probably because there wasn’t enough room.

Many of the complaints about squircle jail are about the loss of icon elements that “stick out” from the rest of the design. As you can see, this idea was there from the very start; the hands stick out from the tilted rectangles.

Most other software publishers followed Apple’s lead. Here are the icons for Aldus PageMaker and QuarkXPress:

PageMaker and Quark XPress

Aldus had a slightly different idea for what the hand should look like.

It’s important to recall that the Mac didn’t have a Dock back then. You launched an app by finding its icon on your disk and double-clicking.3 The icon always had the name of the app underneath it, which was good. If you had both PageMaker and XPress, I imagine it would be easy to confuse such similar icons in a Dock.

The folks at THINK took a slightly different approach for their Pascal editor/compiler. They kept the idea of hands, but because nobody programs with a pencil, they put two hands on a keyboard and showed them generating a flowchart:

THINK Pascal

Other publishers abandoned either the hands or the tilted rectangle or both. As people got more used to working with Macs, these clues for what’s an app and what isn’t became unnecessary, and icon design became less constrained. Even Apple gave up on them for utilities like Disk First Aid and Font/DA Mover:

Disk First Aid and FontDA Mover

And there was, of course, my favorite Apple icon of this era, the one for ResEdit:

ResEdit

This is what old-timers mean when they talk about Apple and whimsy.


  1. As opposed to his wonderful personal blog, One Foot Tsunami

  2. All of the icon images in this post are screenshots taken from an Infinite Mac session. 

  3. Yes, you could also launch an app by double-clicking on the icon of one of its documents. But I told you we’re not here to talk about document icons. 


Indiana jewel box bank

I visited my eighth and final Louis Sullivan jewel box bank yesterday morning. The Purdue State Bank (now a Chase branch) is in West Lafayette, Indiana. As a graduate of the University of Illinois, I have thoughts about Purdue University and its substandard engineering program, but I will keep those thoughts to myself and focus on the bank.

North side of building with addition

This is the north side of the bank. The thoroughly incompatible stone addition to the building was (according to Wikipedia) built in the 50s, but I must say the original brick and terra cotta portion of the building is in excellent shape. I don’t know when Chase took over, but they’ve done a great job with the old exterior.

A fun thing about the bank is that it’s wedge-shaped. Here’s an aerial view I pulled from Apple Maps:

Apple Maps aerial view

The narrow west side of the building used to be the entrance, but it’s now an ATM.

West side and former entrance

You may be surprised to learn that I don’t find this sacrilegious. It’s a reasonable reuse of a part of the building that wouldn’t make sense as an entrance anymore, and they’ve preserved the glazed terra cotta around it. The signage, though, is awful. Maybe Chase felt the big empty space above the old entrance—which presumably had “Purdue State Bank” removed long ago—didn’t look right without its branding. Wrong.

There are some very nice details around and above the windows. Here’s a closer look at the north side:

North facade details

And here are essentially the same details on the south side, where the sun didn’t create such harsh shadows:

South side details 1

South side details 2

South side details 3

The shade on the south side also allowed a decent view of the sides of the pillars between the windows.

South side of building

I have no photos of the interior because it was terribly disappointing. I knew the east half of the building would be generic, but I thought they might have preserved something of the original in the west half. But as I turned right after going through the doors, I saw that wasn’t the case. The entire interior is just white painted drywall and LED lighting. The only thing that sets it apart from any other Chase branch is that the offices in the west half are noticeably squeezed together.

Given the care taken to preserve the exterior, I suspect the interior had been defiled before Chase took over, and there was nothing left in there to care for. That’s a shame, and it was an unfortunate way to end my visits. But the exterior was really nice and certainly worth the trip.


One last thing: Are you surprised to see the Sun hitting the north side of the building? I confess I was. But after thinking about it, it made sense. First, my visit was on July 1, less than two weeks after the summer solstice, which means the Sun rises pretty far north of due east. Second, we’re in Daylight Saving Time, which means the bank’s opening time of 9:00 AM is closer to sunrise than it would be if we were on Standard Time. Finally, West Lafayette is just east of the boundary between the Eastern and Central time zones, and I live just west of the boundary. I’m used to sunrise happening nearly an hour earlier (in local time) than it happens in West Lafayette.

Of course I couldn’t leave it at that. I fired up Mathematica and used its SunPosition function to figure out where the Sun was in the sky when I took that photo (9:22 AM EDT) of the north side of the bank:

As you can see, the Sun’s azimuth, the first item of the result, was about 85°, making it slightly north of east. The same calculation (with the same result) can be made on the web using the NOAA Solar Calculator.


Ohio jewel box bank 2

Yesterday I visited the Home Building Association Bank in Newark, Ohio, a Louis Sullivan jewel box bank built in 1914. It’s currently owned by the Licking County Foundation (oh, grow up), which restored it at considerable cost over several years and reopened it to the public last fall.

South and east façades

As you can see from the photo above, the Old Home differs from the other jewel box banks in that its exterior is clad entirely in terra cotta—it’s not mostly brick with terra cotta accents. But the accents still manage to stand out.

Detail of east façade

South façade banner detail

Southwest lower detail

Southwest upper corner detail

Let’s not forget the lions, which we’ve seen before. Like the Sidney and Grinnell banks, this one has a protective lion with wings and a shield.

Lion on south side

And like the Sidney bank, it has a couple of lion heads with pipes in their mouths to drain rainwater.

Lion head drain

The pipes could be a little more subtle.

This is a pretty small building, so when you walk in the door on the east side, you’re put in a fairly narrow space.

Looking west from the doorway

Not as narrow as it used to be for visitors to the bank. Near the entrance is this photo from the early days, showing how the teller areas took up the northern half of the space:

Early photo of interior

The serpentine flooring that runs east-west along the south half of the building is original, which you can see if you compare the vein patterns in my photo and the old one.

The stenciling on the ceiling and walls is mostly original, as evidenced by the discoloration and missing paint in some areas.

Ceiling stencils and lighting

North wall stencils

The colored window panels on the south wall are original, as are the mechanisms that used to open them. The panels don’t open now because we have air conditioning, and it’s better to keep them sealed.

South windows

The benches and check-writing desks along the south wall are original and were found in the building’s basement.

Bench and check-writing desk

I find the detail on the post highly reminiscent of Frank Lloyd Wright:

Detail from check-writing desk

Wright worked for Sullivan early in his career but had been gone for over twenty years by the time the Old Home was designed. I don’t know if this was a typical Sullivan detail or whether he was being influenced by his former apprentice.

The basement currently has a handful of old building artifacts: pieces of broken terra cotta, original lighting fixtures, doorknobs, alarm bells, teller cage grills, and safe deposit boxes.

Artifacts 1

Artifacts 2

Artifacts 3

There’s also an odd panel with wiring (at the bottom of the second photo) that looks a lot like a printed circuit board.

Finally, in the Foundation’s office space on the second floor is this gorgeous Sullivan drawing of the building’s south elevation:

South elevation drawing

Fun fact: the original boiler room was just outside the footprint of the building, under the sidewalk that ran along the east side. Second fun fact: the locker doors shown in the Women’s Room at the west end of the basement are still in the basement but currently decorating a wall.

Locker doors mounted on wall

The building’s drawings are at the Ryerson and Burnham Library at the Art Institute. They’re digitized and available to download, but at a pretty low resolution. Too bad.