I am the Very Model of a Cornell CS Sophomore

Written by Emmanuel Schanzer

To the tune of: The Major-General's Song, from Pirates of Penzance

Note: sophomore should be said with ALL its syllables pronounced, as in "Soph-o-more"

SOPHOMORE:
I am the very model of a Cornell CS sophomore,
I've taken Java, Scheme or Dylan, now I'm learning whole lots more.
I've seen Barzilay crash when writing algorithms on the board
And Vinocour has flamed me when his rules for posting I ignored.
With Morrissett and Eli, too, their questions so rhetorical,
Like halting problems, Turing machines, languages historical.
About Dr. Swindle I am teeming with a lot of news:
OOP, continuations, and pesky pass-by-values.

ALL:
OOP, continuations, and pesky pass-by-values!

SOPHOMORE:
But now I'm taking 314 so I can build a processor.
I'll take a word from memory and store it to a register.
Shift left, xor, precise exception, increment the state counter,
Boolean logic sure is fun when singing in assembler!

ALL:
Boolean logic sure is fun when singing in assembler!

SOPHOMORE:
My chip's so fast, my mem'ry too - my hard drive's what is bugging me.
My old Seagate drive's on IDE with slow rotation latency.
I use abstractions, minimizing my processor's design sprawl,
My requesters fetch at any time with split-transaction protocol.
I push and pull from stacks with ease, I think in hexadecimal,
MIPS API is such a breeze, my GPA's incredible!

MORRISETT (chiming in):
Out of order executions cause your CPU to stall.

SOPHOMORE:
Make sure my next instruction waits? Are pipelines really worth it all!?

ALL:
Make sure my next instruction waits? Are pipelines really worth it all!?

SOPHOMORE:
My cache controller's full of bugs. But you just sit and wait and see,
I'll have it fixed by implementing snooping cache coherency.
My multi-tasking operating system uses semaphores,
I am the very model of a Cornell CS sophomore.

ALL:
His multi-tasking operating system uses semaphores,
He is the very model of a Cornell CS sophomore!

SOPHOMORE:
I've wired transistors together deep inside my ALU,
With branch-prediction my controller drops instructions very few,
My partner makes the worst mistakes with memory allocation.
The solution was to search for relocation information.
When I always keep the maximum amount of memory free,
When I'm careful not to use sequential access memory,
When I've stored 3D instructions to subroutine libraries,
You'll say a better CS Sophomore has never sat a gee.

ALL:
You'll say a better CS Sophomore has never sat a gee.

SOPHOMORE:
Though I haven't slept in days and though my hand is jittery,
And instead of learning opcodes I've been working on this litany.
I'll type until my hands are unrecognizable blood and gore,
Cuz I'm the very model of a Cornell CS sophomore.

ALL:
He'll type until my hands are unrecognizable blood and gore,
Cuz he's the very model of a Cornell CS sophomore!

Back to the Cornell CS Songbook