CS314: The Musical
Background Information
Credits
Concept:
Walter Chang
Lyrics:
Walter Chang, with Emmanuel Schanzer
Classwork:
Prof. J. Gregory Morrisett, with Mr. Neal Glew
Table of Contents
Act I
- Summer Days
- Lecture: The MIPS Instruction Set
- Lecture: Hexadecimal
- The English Major
- Coding in MIPS Assembler
- Dear Kindly Newsgroup Posters...
- Project 1: Assembler
- Lecture: Digital Logic
- Lecture: Intro to Project 2
- Project 2: Digital Clock
- La Vie CS
Act II
Act I
Scene: Summer Days
[students are returning from summer vacation to swap stories and talk about classes for this semester]
[to the tune of: Summer Nights / Grease]
DAN:
Summer Break time had me a blast
HUBERT:
Summer intern happened so fast
EMMANUEL:
I went to work, made some cash
WALTER:
Partied all break, had a bash
ALL:
Summer days, drifting away, 'cause classes are starting today.
STUDENTS (half):
Tell me more, tell me more
What you did over break?
STUDENTS (other half):
Tell me more, tell me more
What classes you'll take
JEFF:
Last semester kicked some ass
WALTER:
Wonder who will teach this class?
HUBERT:
Three fourteen? Well, I don't know
FALKOV:
Let me know what it says so
ALL:
Summer days, drifting away, 'cause classes are starting today.
STUDENTS (half):
Tell me more, tell me more
Do you know who will teach?
STUDENTS (other half):
Tell me more, tell me more
Is this course out of reach?
WALTER:
So, I'm looking here on the web
Do you know what the roster said?
DAN:
Look at this! Can it be?
EMMANUEL:
I don't believe this what I see
ALL:
Summer days, drifting away, 'cause classes are starting today.
STUDENTS (half):
Tell me more, tell me more
What is the surprise?
STUDENTS (other half)
Tell me more, tell me more
Do you believe your own eyes?
WALTER:
It says here Greg will teach this class
JEFF:
A class with him will be a blast
EMMANUEL:
Why do we wait? Get off our ass
DAN:
Hurry up, let's get there real fast
ALL:
Three fourteen, seems like a dream, when classes started today
[all students head off to class]
Scene: Lecture: The MIPS Instruction Set
[GREG is lecturing on the stage, NEAL stands off to the side, the remainder of the class is in the center looking on]
GREG (spoken):
Now, to write programs for the MIPS architecture, you
need to know the instruction set. The actual one-word
instructions consist of a six-bit opcode, allowing for a
total of sixty-four unique instructions. If you compare
it to, say, the x86 instruction set, it's quite
small. Actually, it's small enough to be completely
memorized in an one hour lecture. So, take good notes,
because you will need to know this:
[to the tune of The Major-General's Song / Pirates of Penzance]
GREG:
There's div and nor and mult and or and sllv, sra
There's xor and swl and beq and sll and bgezal jumps today
And multu, srav, and j combined with lhu and lui
And also slt and bne and instruction mthi
There's sh and sb and lbu and blez and jal and then sltu
And of course there's and and add and srl and sub and
things to do
With the MIPS instructions I am very nimble on my feet
And though I sing assembler but I am really not a geek
NEAL:
There's addu, ori, slti, swr, and bgez and jalr too
And loads of other fun instructions that were put in
just for you
The MIPS instruction set is very simple to be memorized
Which will come in handy when you have your code to optimize!
GREG:
There's addi, divu, lh, rfe, and syscall, jr, mfcz
And mfc1, nop, and break, and bltzal with bczt
And srlv, xori, bltz, and lb, lwl, and addiu
andi, subu, lwr, and lwcz, mtcz, sltiu
There's bczf, bgtz to branch if it's greater than
And mflo and sw, these instructions are not any also-rans
There's mtlo and swcz too, although I don't know what
they're for
And lw - that's obviously load word from mem bytes there are four
BOTH:
And now my song is through and I know all of my words by
the heart
Which will come in handy when we have our projects multi-part
I live and breathe the MIPS instruction set on every
night and day
Because the MIPS assembler will always try and work my
way!
Scene: Lecture: Hexadecimal
[GREG and NEAL are in center stage, ready to lecture. Both have very fake French accents]
GREG:
Ma chere cs major, it is with deepest pride and greatest
pleasure that we teach you MIPS asm for ze project one.
NEAL:
And now we invite you to relax, settle in the seat and
listen to the lecture, because you will be given your
first project - in HEX!
[to the tune of Be Our Guest / Beauty and the Beast]
GREG:
Think in hex, think in hex
Look around you, who needs dec?
You can do anything in base sixteen or I'll go to my rest!
NEAL:
In base sixteen I'm quite keen
I can express bytes lean and mean
GREG:
With only two hex numbers
It's not easy to make blunders
NEAL:
Numbers zero through the nine,
In decimal that's just fine,
BOTH:
But we've also got our digits A through F!
You'll find it's great this way,
Don't take our hex away,
Think in hex, write in hex, we love hex!
NEAL:
Now again, in base ten,
There is no telling when
You will have to memorize two's powers - yes that's all
of them
But in hex, it's a cinch,
You can calculate in a pinch
Just because we have ten digits doesn't mean base ten is with it.
GREG:
Then again, most of them
Have got their fingers ten,
BOTH:
But real hackers don't count with their hands!
So we will laugh at you, those who cannot do
Think in hex, write in hex, we love hex!
GREG:
Now in hex, it's so swell,
All those words we now can spell
This is one of those little things that decimal can't do
well.
We've got BEEF that is DEAD
And BAD BABEs in our BEDs.
NEAL:
And ABBA takes a CAB, goes to Stockholm, sees her DAD.
GREG:
We can FEED our FACE,
But not with DECAF, that's too base
NEAL:
And 'cause our hearing's EBBED we're going DEAF
BOTH:
And so we are glad
It's not just a FAD,
Think in hex, write in hex, we love hex!
NEAL:
We keep time, we can rhyme
We don't complain or whine
Because we're CS people we enjoy pain all the time!
GREG:
Oh my god, my code is broken,
And my partner's outside smoking
NEAL:
We don't use an assembler
'Cause opcodes we remember
GREG:
HLL's are for wimps,
They don't really make you think,
BOTH:
Which is why we write our programs all in hex!
It's more fun this way,
Because it takes all day,
Think in hex,
Take our tests,
See why we're better than all the rest,
Please say yes
To our hex
We love hex!
Scene: The English Major
[Two CS students are in a dorm room. The clock flashes 3:30 in the morning. One of the students is pacing, mumbling to himself with a worried expression on his face. The other, seated at the computer, is staring at the errors messages as they scroll down his monitor. The seated student suddenly smashes his head on the keyboard with a loud *thunk*. Snoring follows.]
[The door to the room opens, a drunken, thick-boned student stumbles in, wearing only black velvet. It is the ENGLISH MAJOR.]
ENGLISH MAJOR:
Hey guys, what are you doing working at 3:30 on a Saturday night?
PACING CS MAJOR:
Mumblefumblegrumble...compiler-shimler biler...
ENGLISH MAJOR
(raising a bottle of wine to his
lips):
COME AND PARTY! There's no reason to work! Classes are easy!
[SLEEPING CS MAJOR wakes up, throws P&H book at English major.]
SLEEPING CS MAJOR:
Get out of here... we're only one third done with this
problem set, and it's due tomorrow afternoon! And,
following that, we have a prelim!
[PACING CS MAJOR continue to mumble]
ENGLISH MAJOR:
Ha! You guys must be stupid... I'm taking 5 English
classes, and I do no work at all!
[ENGLISH MAJOR pulls out grapes and eats them]
[exit ENGLISH MAJOR]
PACING CS MAJOR:
Can you believe that?
SLEEPING CS MAJOR:
He's been partying since WEDNESDAY OF LAST WEEK! He has
it so easy!
[PACING CS MAJOR pulls guitar out of closet, strums it firmly]
[to the tune of Pinball Wizard / The Who's Tommy]
PACING CS MAJOR
It was 3am this morning, the room across the hall
I was up late and debugging, my code would always stall
But I looked across the hallway, I couldn't believe his gall
That damned English major sure doesn't work at all!
He reads his plays and poems, his Buck and Silverstein
He hasn't worked till morning since he was seventeen
Plays with himself all evening, buys pornographic dolls
That damned English major sure doesn't work at all!
He's an English major, there has to be a twist,
That English major's only stress involves his wrist
He says he takes 20 credits. That's bullshit
I'm dying with 18
If he took CS classes, you know he'd be in hell
Don't learn no topics slowly, don't wait for things to
"gel"
Thirty hour projects, and we fail 'em all
That damned English major sure doesn't work at all!
I bust my ass so I can get a job
He sleeps till noon, that worthless f---ing slob.
While I code until my hands bleed, he just takes a rest
Drinks grenadine and gin, while I go fail a test
But after graduation, we'll nail him to the wall
That damned English major sure doesn't work at all!
Scene: Coding in MIPS Assembler
[PACING CS MAJOR walks home over the suspension bridge to North Campus.]
CS MAJOR:
Wow, I'm sooo tired. I'm going to fall right asleep. But goodness,
assembly code offers so much control, so much POWER!
[CS MAJOR trudges up stairs to his dorm room]
CS MAJOR:
I can barely lift my legs, I'm so tired. Hmm... there
are some funky that could be played if I just bitmask in
the right way... mmm... this would be so fast... so
optimized! So... beautiful... she's... so...
beautiful... I think I'm in love
[CS MAJOR climbs under covers, and tries to sleep. He tosses and turns, unable to rest.]
CS MAJOR:
Shift left by 2... ori $3, $2, 0x1F...
[CS MAJOR leaps out of bed, rose clenched in teeth. A Latin beat starts.
[to the tune of Living La Vida Loca / Ricky Martin]
CS MAJOR:
Her code is so efficient
Her programs never crawl
She's on a debugging mission
That girl's code is off the wall
(guitar solo)
This is her occupation:
Make code run fast and light
She brings a strange affliction:
Coding into the night!
She'll make you code, then re-fine.
Mem'ry dancing brings you pain
She'll change reg-ister 29
Her tricks are so insane!
Like crack-rock in the brain!
Shift right then shift back
She's coding in MIPS assembler
She'll push and pop the stack
She's coding in MIPS assembler
She'll branch if greater than
Increment the program counter
Load im-med-i-ate
She's coding in MIPS assembler
Coding in MIPS assembler
Woke up and went to my class
smelling funky and like hell.
Debugged till 6am, it's not funny
She's like a process that you can't kill.
She don't believe in easy
Never comments any code
And when you trace a register
Can't tell from where it loads
Not enough addressing modes!
Shift right then shift back
She's coding in MIPS assembler
She'll push and pop the stack
She's coding in MIPS assembler
She'll branch if greater than
Increment the program counter
Load im-med-i-ate
She's coding in MIPS assembler
Coding in MIPS assembler
(guitar solo)
But you will learn to love her:
Take abuse and not complain.
Store registers defensively,
Debugging code for fame,
All high-level stuff is lame!
Shift right then shift back
She's coding in MIPS assembler
She'll push and pop the stack
She's coding in MIPS assembler
She'll branch if greater than
Increment the program counter
Load im-med-i-ate
She's coding in MIPS assembler
Coding in MIPS assembler
Coding in MIPS assembler
Scene: Dear Kindly Newsgroup Posters...
[STUDENT is frantically looking around for help. He starts first in NEAL's office]
[to the tune of: Gee, Officer Krupke / West Side Story]
STUDENT:
Dear kindly Mr. Glew
My program's all messed up
My registers got clobbered
My stack frame just blew up
The project's due tomorrow
I don't know what to do
Holy Jesus, help me Mr. Glew!
NEAL:
Gee, my little student, some trouble you've got
Finish it in three hours? Well, I just think not
That's why you start early,
So you can get done.
But now you've just failed project one!
ALL:
He's not done, he's not done, no way he'll be done
He's got three hours to get done
NEAL (spoken):
If you can finish the project in only three hours, I'll buy you a
steak dinner.
STUDENT (spoken):
What am I going to do with a steak dinner when I'm
worrying about this project?
NEAL (spoken):
Ask Greg, see what he has to say.
GREG (spoken):
Moooooo....
[in GREG's office]
STUDENT:
Please kindly Dr. Greg
I know that you like cows
I need to learn assembler
I just am not sure how
Neal has made an offer
If I finish I get steak
Let's hope my code's not full of mistakes!
GREG:
Well, my little hacker, you've just done me wrong
My cows - they are my people - and may they live long
You can't just flambe them
And eat them for lunch
Cows - they are not for us to munch!
ALL:
Let's eat lunch, let's eat lunch, let's all munch on lunch
Let's all have some burgers for our lunch!
GREG (spoken):
I hope you're working with a partner on the project. It could take
some time.
STUDENT (spoken):
But who is familiar with assembler?
GREG (spoken):
You might want to ask Dan Dickinson, he does stuff with emulators.
[in DAN's room on West Campus]
STUDENT:
Please emulator Dan
You gotta help me out
I've only got three hours
I'm about to shout!
You dig this emulation
What does it all mean?
I'm not getting output on my screen!
DAN:
Well, sorry, my comrade, I can't help you here
It's not that I don't like you, I just have a busy year
Although emulation
Can be lots of fun
They will not help your project run!
ALL:
Will not run, will not run, his code will not run
Try as he might his code will not run
DAN (spoken):
You might want to ask Emmanuel, he and Walter have designs on the
hot314 simulator and CP/M.
STUDENT (spoken):
I'll ask.
[in EMMANUEL's room, Risley Hall]
EMMANUEL (spoken):
Well, well.
STUDENT:
Dear kindly Mr. Schanzer
Your wireframe renders fast
I need help with my program
I need help in this class
You like to optimize things
Your code is very tight
Help me, homework's coming due tonight!
EMMANUEL:
Well, I learned assembler, it's really not bad
Although our java software is making me mad
It doesn't print errors
It isn't worth crap
I think I'm going to take a nap.
ALL:
It is crap, it is crap, hot314 is crap
Like all java code it's slow as crap
EMMANUEL (spoken):
Maybe you should ask Walter, he has much painful x86
experience that is now largely repressed as
post-traumatic stress disorder.
STUDENT (spoken):
Ok... but I'm getting desperate.
[in WALTER's room, West Campus, Baker Tower]
WALTER (spoken, mumbling):
Yeah... West Side Story! I need to parody Bernstein!
STUDENT:
Please crazy Walter Chang
The bard of Upson Hall
You have way too much free time
While I'm up against the wall
Your musicals are crazy
You program while you're drunk
Help me, please, I don't want to flunk!
WALTER:
Now, there, take it easy, it isn't so hard
A little bit of vodka will make a good start
Trouble's in typing
When you can't see keys
But I've got songs to write now, if you please.
ALL:
Press some keys, press some keys, press the any key
If the program crashes press random keys.
STUDENT (spoken):
Now I've only got two hours left!
WALTER (spoken):
Have you asked Jeff Vinocur? He's a pretty smart guy.
[STUDENT heads down to other section of Baker Tower, to find JEFF]
STUDENT:
Please help me out here Jeff
I like your marching band
You read a thousand newsgroups
I know that you're the man
I read all your postings
I always look up to you
Please now, tell me what I have to do!
JEFF:
I see now you've posted, decided to unlurk
But sucking up to me isn't going to work.
You'd better get started
There's one hour left
(Now I'll go back to my treble clef!)
ALL:
Treble clef, treble clef, what's a treble clef?
Tell us Jeff, what's a treble clef?
JEFF (spoken):
Well, in music, it's a symbol that denotes...
STUDENT (spoken):
I don't have time, who should I see?
JEFF (spoken):
Go see Brandon, maybe he can help.
STUDENT (spoken):
Right, I'm off!
[STUDENT on a plane to Microsoft at Redmond, WA]
STUDENT:
Please kindly Brandon Bray
I've got two hours left
No one here will help me
Of ideas I'm all bereft
I flew out to Seattle
And thanks to time zone change
Right now, buys me half another day!
BRANDON:
Well, I'm glad now to see you
Way out here this way
But I cannot tell you much
I'm under NDA
So here's your plane ticket
You'd best hurry back
Go home, boot up, and begin to hack!
ALL:
Start to hack, start to hack, he has to start to hack
He's got just two hours left to hack!
STUDENT:
Ok, now I'm getting really desperate! Who haven't I seen?
[in FALKOV's room, Risley Hall]
STUDENT:
Please help me Danny Falkov
Visual Basic man
I'm not done with my project
My grade is in the can
What good is Visual Basic?
Can it compile to MIPS?
Golly Moses, I'm just such a dip!
FALKOV:
Visual Basic is all you will need
Hacking in a real language makes your nose bleed
It's easy to use
And hard to screw up
Unlike our emacs, which just sucks!
ALL:
Emacs sucks, emacs sucks, emacs really sucks
Control and Meta they do suck
ELI (spoken):
[curses in Hebrew]
I heard that! Emacs does not suck! Take any text
processing task, and any application, and I can show you
how emacs can do it faster and better...
STUDENT (spoken):
Only a half hour left... and I haven't even started!
ELI (spoken):
... just look at any development system. What other
programmable text editor gives you the capability to...
STUDENT (spoken):
Hmmm... Hubert is on this group a lot. Maybe he can help.
[in Mennen lounge, with Hubert]
STUDENT:
Please help me with my project
Kindly Hubert Chao
I haven't even started
Because I don't know how
It's due in fifteen minutes
At the UG lab
Damn it, this just make me very mad!
HUBERT:
Too late to work now, to finish on time
And it looks like dear old Walter's running out of his rhymes
If this were 280,
I might help you through
But now it looks like you are screwed!
ALL:
He is screwed, he is screwed, up the ass he's screwed
He just got himself so thoroughly screwed!
GREG:
The trouble is he's lazy
NEAL:
The trouble is he's mad
WALTER:
The trouble's he's NOT crazy
JEFF:
The trouble is he's bad
FALKOV:
The trouble's not using VB
EMMANUEL:
The trouble is it's slow
ALL:
Look here, we've got troubles of our own!
If you wanna get started
To work on it now
It's much too late to finish it, I just don't see how
If you always work hard, and know what to do,
Well then, lazy slacker, screw you!
Scene: Project 1: Assembler
[WALTER and EMMANUEL are standing in front of a computer with long assembly language listings on the screen. The projector in the background slowly scrolls the source code as the song goes on, with a billowing Cornell flag in the background. WALTER and EMMANUEL place their hands over their hearts and stand to attention]
[to the tune of: America the Beautiful / Katherine Lee Bates]
OFFSTAGE VOICES, LOW HUMMING:
To compress a twenty four bit
pixel into sixteen
We used three registers as temp
And drank a bottle clean!
Assembler, Assembler!
God shed his grace on thee
And crown thy good with brotherhood
We wish we'd code in C!
From $4 we read, to $5 we write
our pixel when complete!
In $6 we store our end address
For comparisons sweet!
Assembler, Assembler!
God mend thine every flaw,
With careful, precise stack control,
We'll type our fingers raw!
To calculate register six
we shift left by just two
One word per element for kicks
And now we'll start the loop!
Assembler, Assembler!
May God thy gold refine
Till offsetting by an address
Is ingrained in our minds!
Compare $4 with our end address
Branch if equivalent
If not, then $4 has failed the test
Load the next pixel in!
Assembler, Assembler!
Bestow thy grace on me.
And crown thy good with brotherhood
Maybe we don't need C!
Shift right: chop garbage blues from $8
Shift right again and store,
And by 1F to filter straight
What's not blue we ignore!
Assembler, Assembler!
God shed his grace on thee
Till souls wax fair as earth and air
Which registers are free?
Shift $9 by seven right and store
The red bits into $10
Filter by three-E-zero, $9
Shift $10 left A and then....
Assembler, Assembler!
God shed his grace on thee!
Till paths be wrought through
wilds of thought
By hacker foot and knee
Or $9 and $10 (that's red and green)
Then or them with our blue
Now $8 contains only 16
We store our pixel new!
Assembler, Assembler!
God shed his grace on thee
Till mem'ry hits no longer bring
Instruction latency!
Add to $5 sixteen bits: that's two
To $4 add a whole word
Jump back and we shall start anew
We're done and have you heard...
Assembler! Assembler!
God shed his grace on thee
Till nobler men keep once again
We'll never code in C!
Scene: Lecture: Digital Logic
[GREG is again lecturing from center, Phillips 101]
GREG:
So, how did everyone like project 1?
CLASS:
[muffled laughter]
GREG:
Well, project 2 involves, I believe, designing a simple
digital clock. To do that, we need to consider the
physical representation of various components.
Obviously, we need to represent zeros and ones using
voltage, say, 5 volts for 1 and 0 volts for 0. We can
construct simple gates like NAND and NOR and build other
components from that. So, we have here...
[GREG looks around for his pointer and cannot find it. He spies the umbrella in the corner and grabs it. He continues to lecture]
GREG:
ah yes, we need to abstract the physical representation,
consisting of transistors, grounds, voltages, and that,
into the logical gates.
[to the tune of: A Spoonful of Sugar / Mary Poppins]
GREG:
To get all our programs to run
There must be compilation done
Into ones and zer-os:
Seems rather tame.
But how do ones and zeros make
Our hardware bump and shake?
Trans-..is-..tor.. gates!
It won't be hard to see.
We Use...
Digital logic: inputs, switches...and grounds.
inputs, switches...and grounds.
inputs, switches...and grounds.
Just by abstracting voltage, into zer-o's and ones.
We can hack all night and day.
In simplicity we'll rate,
The effectiveness of gates
Bits of silicon
Form nand and nor
Half-adders are not trivia:
A and not B or vice versa
That answer's it
And we keep the carry bit
We Use...
Digital logic: inputs, switches...and grounds.
inputs, switches...and grounds.
inputs, switches...and grounds.
Just by abstracting voltage, into zer-o's and ones.
We can hack all night and day.
From the bus that fetches data
From the cache into the chip
The system clock keeps things working without a blip
Because every gate that does flip
Does so at a rapid clip
And hence
And hence
It's fun
It's fun
All our programs run.
Scene: Lecture: Intro to Project 2
[In Phillips 101. GREG and NEAL will now inflict Project 2 on the students.]
GREG:
So, in Project 2 you will be building a clock - a
digital calendar with flip flops to store a day, month
and year. When running in normal mode, the days will
increment on each clock edge. There is a setcal line as
well, so when the user wants to set the day, month, or
year, each tick of setcal will increment the appropriate
counter and no others.
NEAL:
So, the digital circuit I showed you last time in class
counts up to 12 hours and loops back. Your project will
be similar, so you might want to start with that.
GREG:
It's really quite simple - everybody should get this. So:
[to the tune of: Rock Around the Clock / Bill Haley and the Comets]
GREG:
One, two, three o'clock, four o'clock, rock!
Five, six, seven o'clock, eight o'clock rock!
Nine, A, B o'clock, C o'clock rock!
We're going to rock - build a clock tonight!
NEAL:
Clock turns on, day starts one
Setcal's off, just let it run!
We're gonna rock and build a clock tonight
We're gonna clock that clock till it's alright
Put some thought, then I got to build a clock tonight
GREG:
Day counts up, to hex 1C
Then month goes up accordingly
We're gonna rock and build a clock tonight
We're gonna clock that clock till it's alright
Put some thought, then I got to build a clock tonight
NEAL:
Month counts up, to December
Change the year so we'll remember
We're gonna rock and build a clock tonight
We're gonna clock that clock till it's alright
Put some thought, then I got to build a clock tonight
GREG:
Setcal's on, have some fun
A tick each time will add to one
We're gonna rock and build a clock tonight
We're gonna clock that clock till it's alright
Put some thought, then I got to build a clock tonight
NEAL:
Lecture's through, Project Two
Hand them in to me, Neal Glew
We're gonna rock and build a clock tonight
We're gonna clock that clock till it's alright
Put some thought, then I got to build a clock tonight
Scene: Project 2
[in WALTER's room, Baker Tower, finishing up Project 2]
WALTER:
God, I love this! Our design is BEAUTIFUL. There it is,
gleaming in fiendish brilliance... screw gated clock
inputs!
EMMANUEL:
Word. So, we're pretty much done. Just that write-up to do.
WALTER:
We have to do a write-up? That sucks...
EMMANUEL:
Well, let's see, how bad can it get?
WALTER:
Let's find out. But first, more vodka
[takes a shot]
[to the tune of: One Week / Barenaked Ladies]
WALTER and
EMMANUEL:
It took four shots and some Triple Boch
To make a calendar that runs on only one clock.
Flip-flops used to store the date, and then
Read lines cycle to remember the state.
Three sets of counters to track
The years, months and days, with logic to loop back.
Increments are halted by blocks,
And all the tricky stuff sits in the magic box.
Clock ticks 1: Day's incremented
It's so demented.
The value's read into the magic box.
The next bit's clock is current's not
Although the current bit's next slot
Is opposite what it is now. Binary logic rocks!
Day overflows, to month we carry.
But we be wary,
Cause if we're setting day we block this.
If not, month ticks one forward
And we don't store-word, this is silicon
Not assembler.
We all get our kicks: macros are bricks
Except we all hate Xilinx
Its bad programmers should be cut with crusty razors.
WIN16 apps blow, and we all know
To Neal and Greg you know we'll show
A working cpu
Or we'll get shocked by tazers.
When a counter is reset the next one increments,
Now I present to you, Ladies and Gents
Our reset logic is compact and quite chill
Wanna know how it works?
Well, you soon will.
If the day's 32 resetting is a safe bet
Short months with 31's are also resets
If it's leap year and February,
Feb 30th is wrong: we reset and carry
One less for a normal year
(We figured this all out when drinking lots of beer.)
It's an AND gate for each condition
When we OR 'em all together we're done with our mission.
Any date gets read right inside
And the magic box determines if the loop flag is high
Couldn't be finer, the plot it thickens,
Counters don't care if the clock is tickin'
Tough simulation causes a fuss,
We're asynchronous
We hope the graders won't impale us.
The next question is how to mode set
Carries to suppress
And which counters clock should pass-by?
Another macro handles the code
Decides what's the mode,
When setting anything the clock dies
And instead we set Cal Increment
Anytime it's set mode it goes and gets
The right counters and increments them casing for overflow
If mode is double-zero have no fear-o
'Cause our hero cuts off SetCal from the circuit
And only clock tick's a go.
Our reset logic is compact and quite chill
Wanna know how it works?
Well, you soon will.
If the day's 32 resetting is a safe bet
Short months with 31's are also resets
If it's leap year and February,
Feb 30th is wrong: we reset and carry
One less for a normal year
(We figured this all out when drinking lots of beer.)
It's an AND gate for each condition
When we OR 'em all together we're done with our mission.
Any date gets read right inside
And the magic box determines if the loop flag is high
And the magic box determines if the loop flag is high
And the magic box determines if the loop flag is high
Hard-wired logic sets alarm to high..
Act I Finale: La Vie CS
[EMMANUEL, ALEKSEY, WALTER, JEFF, BRIAN, DAN, FALKOV, BIG TALL SCARY MATT, and other CS geeks are present in EMMANUEL's room, abusing his computer(s) and generally behaving very geeky. The ENGLISH MAJOR walks in.]
[to the tune of: La Vie Boheme / RENT
Note: most of the scene from RENT is loosely reproduced
here, from the start in the Life Cafe to the end of Act
I, except for the dialogue between Benny and Mimi, and
"I Should Tell You."]
EMMANUEL:
Oy vey...
ENGLISH MAJOR:
I would like to propose a toast
Now that your brains are fried
That's swell.
BIG TALL SCARY MATT:
Go to hell.
ENGLISH MAJOR:
Was the problem set stomped?
Walter, I'm surprised
A bright and fun writer like you
Hangs out with these hackers
Who don't know what do to.
They make fun - Yet I'm the one
Attempting to have a life
Or do you really want an education
Where people have to stay up every night?
Computer Sci, Computer Sci,
What's wrong with your head?
This is insanity
Your social life is dead.
JEFF:
Dearly beloved, we are gathered here to say our goodbyes...
ALEKSEY and
EMMANUEL (background)
Pie Jesu domine
[hits self over head with
P&H book]
Dona eis requiem
[hits self over head again,
repeat]
JEFF:
Here it lies
Our lives on standby
Our brains by projects completely fried
While we're just a bunch of some crazy guys
Here in Cornell we are blessed
We raise our glass - You bet your ass to -
La vie CS
ALL (except ENGLISH MAJOR)
La vie CS
La vie CS
We love CS
We love CS
JEFF:
To times of inspiration
Playing Quake 2, making something
Out of nothing, the need
To program -
To communicate,
To exercising our brains
Going insane
Going mad
ALEKSEY:
To doing recursion, any version
To doing data conversion
Interrupts get attention
Calling convention, and new inventions
Not to mention of course
Hacking all night and day
EMMANUEL:
To getting new Macs
With the cute little fruit
To boot - to address absolutes
WALTER (interjecting):
To Absolut!
EMMANUEL:
To C
To counting binary
To all the latest toys
To having some fun - for once
We love to hack
ALL (except ENGLISH MAJOR):
We love CS
We love CS
WALTER:
When is the equipment coming in?
EMMANUEL:
Soon, Walter
BIG TALL SCARY MATT:
This computer doesn't have a case
Don't give me that face
[enter DP DOUGH delivery guy]
DP DOUGH:
So that's five calzones, four liters of Jolt, three
cheese Danish, two mozzarella sticks, and one really
huge check. And fifteen paper cups. Is that it here?
ALL:
Wine and beer!
[exit DP DOUGH]
JEFF and EMMANUEL:
To fast little Macintoshes running with G3's
To Linux, to Unix, to telnet, VNC
To hacking, to writing, to coding assembly
To subnets, to routers, to IP's that are free
BRIAN and WALTER:
To show tunes, and lab rooms, to writing things in Scheme
Atari, to Sega
DAN:
To emulating Bleem!
WALTER and FALKOV:
To PC's, to Palm III, to software that is new
ALEKSEY:
To fractals
JEFF:
To practical
BIG TALL SCARY MATT:
To death screens that are blue!
ALEKSEY:
Turing, Neumann, Kerninghan and Ritchie
DAN:
Larry Wall
FALKOV:
Bill Gates
GEEK #1
To compilers!
EMMANUEL:
To TI!
GEEK #2
To mem high!
GEEK #3
Computers to buy, too
JEFF and WALTER:
Why do we here hackers
We're not really slackers
Choose to do comp sci?
ALL (except ENGLISH MAJOR):
We love comp sci!
JEFF, EMMANUEL, DAN, ALEKSEY:
To compilers, decompilers, Perl and Larry Wall
To alcohol, function calls, falls
In lecture halls
C++, and data bus, features must
To binary, Henessey, Patterson
Computer organization!
ALL (except ENGLISH MAJOR):
PowerPC, to hacking C, to VPC, VNC
Alonzo Church - Lambda calculus, computability
To no shame - to always playing RPG games
EMMANUEL:
To marijuana!
ALL (except ENGLISH MAJOR):
Now finally
This major's just for me
EMMANUEL:
Chains and whips!
ALL (except ENGLISH MAJOR)
We hack in MIPS!
ENGLISH MAJOR (spoken):
You guys are just getting too scary...
[exit ENGLISH MAJOR]
WALTER (spoken):
In honor of all things geeky an all-night hacking
session will immediately commence following the
calzones... Jeffrey Vinocur, using only an Apple G3,
will VNC into his Linux box and then to his desktop Mac,
to run VPC and telnet back into Linux to run ASCII
Quake.
EMMANUEL (spoken):
While Walter Chang will model the latest fashion trends
in duct tape clothing, featuring an all new casual
menswear line by the master of fashion himself.
ALEKSEY (spoken):
As Danny Falkov demos Win2k and tries to prove to the
world that he does in fact know what he's talking about.
EMMANUEL:
And you should see
All these comp sci majors
And hacking into things with their PC's
The English Major called the cops
FALKOV:
That fuck
BIG TALL SCARY MATT:
They don't know what they're doing
The cops are saying we're too loud
But no one's quieting
We're all sitting here, mooing!
[large Holstein cow bolts across stage for no apparent reason]
ALL:
Hack!
FALKOV:
It's a way to make a living
EMMANUEL:
Masochism, pain, sadism, riding crops, bondage lady,
Mistress Xilinx, always crashes
ALL:
Code!
WALTER:
Musicals, insanity, crazy family, shot on location
Songwriting, perfect programs, Scheme
Talk, Turing complete, and fun!
ALL:
Circuits!
JEFF:
Computation, CS theory, mathematics, proxy server
Logic, designing, gates, pipelining, and heavy competition
ALL:
Insanity!
BIG TALL SCARY MATT:
Revolution, justice, looking for solutions
Veganism, 3 act plays
Making noise and doing well!
ALL:
To hackers, emacs, vi, professors too
JEFF:
To me!
EMMANUEL:
To me!
FALKOV:
To me!
ALL:
To you, and you and you, you and you
To people coding with, hacking with, living with
And playing with PC's
Let he among us without a brain
Be dumb enough to condemn
La vie CS
We love CS
We love CS
[repeat in background as ALEKSEY speaks]
ALEKSEY:
Anyone out of the mainstream?
What good is the mainstream?
Computers are alive - with 10 gig hard drives
Write up some code
Addressing modes
And what do we all love to study?
Computation!
ALL:
We love CS
[much frolicking and geekery]
ALL:
Viva la vie CS!
Act II
Scene: Lecture: Intro to Project 3
[In Phillips 101. Not content with having inflicted Xilinx upon the students in Project 2, GREG launches the mother of all projects on the class - the MIPS CPU]
[to the tune of King Herod's Song / Jesus Christ Superstar]
GREG:
Now you must be overjoyed to have finished project two
Now I'm going to show you what you have to do
Build a pipelined CPU to run
And I will know that you will find this project lots of fun
So, let's start the fun, yes, begin the phase 1
Show to me an ALU - let us see what you can do
You do that for me to start project three
A pipelined MIPS CPU
And when that's done and finished up phase two will yours
Pipeline stages all around, latches and much more
Oh, I'm waiting, to see your datapath
Your write up and your logic and control signal math
So, now you will do, oh yes, it's phase two
Show to me a datapath - built efficient so I won't laugh
That's all you need do, and you're done with phase two
A pipelined MIPS CPU
And when that's done you'll be ready to start on phase three
Control and data hazards all around you'll see
Mem and write-back, flush the data cache
I just know your extra credit's going to be a smash!
So, now, from you to me, you'll give me phase three
Write-back data forward along - you can do it in a song
Then demo for me, and you're done with phase three
A pipelined MIPS CPU
Hey, aren't you scared of me, class? CS three fourteen class?
Just you wait for the workload! Your free time will then
explode!
So, wipe off that smirk, and get down to work
A pipelined MIPS CPU!
Scene: Tango 314
[In the Computer Science Undergraduate Lab, Upson Hall, DAN and HUBERT are finishing up their project , cursing loudly at the software.]
[enter WALTER and EMMANUEL]
EMMANUEL:
Hubert, Dan, how is the project coming?
HUBERT:
Not good. Xilinx sucks.
WALTER:
Oy... I know what you mean. Using Xilinx has been a real
bondage and discipline experience.
EMMANUEL:
We must have spent 80% of our time just screaming at the
software and only 20% doing actual thinking.
HUBERT:
Tell me about it... let me know if you have any more luck.
WALTER:
Yeah, right, will do.
[exit EMMANUEL and WALTER]
[HUBERT and DAN simulate the circuit, and find that it does not work when it worked only a few minutes ago]
[to the tune of: Tango: Maureen / RENT]
HUBERT:
This is weird
DAN:
It's weird
HUBERT:
Very weird
DAN:
Fuckin' weird
I'm so mad that I don't know what to do
HUBERT:
Locked up here in the lab
And Xilinx makes me mad
NT crashed and the screen just turned blue
DAN:
I think I'm going insane
I'm in serious pain
Just tie me up and make me scream
HUBERT:
I am failing this class
DAN:
Xilinx can kiss my ass
BOTH:
Ah yes, the Tango 314
[enter MISTRESS XILINX, in full leather bondage gear with the Xilinx logo on her black form fitting outfit]
MISTRESS XILINX:
The Tango 314 [cracks whip]
Watch me delete half of your files
As you stay up all night
Your schematic won't work right
And you scream and you cry but you just won't get by
Then you'll cry as my whip cracks down
[cracks whip]
HUBERT:
I think I'm going to scream
DAN and HUBERT:
The Tango 314!
MISTRESS XILINX
Have you ever hooked up a pin
That got disconnected?
Has a bus line ever gone flat
And was unexpected?
Have I ever refused to load up your work
Just to spite you?
Has the simulator ever gone wrong
Just to smite you?
[piano solo]
[while the piano plays, MISTRESS XILINX ties up and handcuffs various students in the lab to their computers]
DAN:
It crashed!
HUBERT:
Xilinx crashed!
DAN:
We got bashed!
HUBERT:
Work got smashed!
DAN:
We're defeated
We should submit right now
HUBERT:
Our spirits are shattered
Our souls battered
DAN and HUBERT:
She's still my mistress somehow
We're all bound and gagged
Macro hit a snag
And I've got bags under my eyes
HUBERT:
So I think this is swell
Mistress Xilinx is Hell
DAN:
At least I've tried it at all
MISTRESS XILINX:
The Tango 314
I will dominate your little minds
You can try to escape me
[someone tries to break free]
But I'll dominate thee
[she kicks him with her boot]
But in the end you will come
When I whip up your bum
Till you're dumb and you're numb and give in
DAN:
Why is our mistress so mean
HUBERT:
'Cause she likes to hear screams
ALL:
The Tango 314!
Scene: The Project 3 All Nighter
[in the Computer Science Undergraduate Lab, the night before the project is due. Everyone is there, pulling all nighters to get the work done. JEFF, WALTER, EMMANUEL, DAN are there, as well as the TA, VICTOR.]
[to the tune of: The Heat is On in Saigon / Miss Saigon]
GREG (spoken):
Allez, allez, everyone - welcome to - CSUG!
ALL:
The stress is on in Upson
The work is harder than hell
Some of these computers just won't turn on
God, the tension is high
I hope I'll do well!
The stress is on in Upson
The projects are long
Bedtime? I know I can't tell
WALTER:
How are you doing there, E?
EMMANUEL:
I can't wait for the phase three
We should get drunk and then hack
The deadline is near
DAN:
I tell you, Xilinx, I've had it -
I don't want to hear
ALL:
The stress is on in Upson
But till the work here is done
I'm gonna stay up and work
EMMANUEL:
You can get me a beer
JEFF:
See my printout, it's just the right size
Virtual wiring is good for the eyes
If only Xilinx won't give a surprise
WALTER:
I'll show you, my printout's A4
Extra credit, I'll do more
So I'll bump up my score
ALL:
The stress is on in Upson
Don't tell me Xilinx won't run
All that fucking shit sucks
Staying here ain't no fun
Not to mention I'm fucked!
[a student shows VICTOR his circuit schematic]
VICTOR
If this is your circuit, you won't pass this class
You'll just get it shoved right back up your ass
You'd better get started, and work real fast
And time's up, you've got to submit by three
GREG (interjecting):
Expect more homework from me
For this here project three
WALTER:
The stress is on in Upson
Why can't I just play with swords
We should have left long ago
What here is going wrong?
You tell me, I don't know
STUDENT:
It's three fourteen, middle of the night
And gradually I'll be losing my sight
Pull an all-nighter? Well, I just might!
But I know... I'll finish project three
Whatever it takes from me
GREG (interjecting):
Or else you might just get a C
ALL STUDENTS:
Now Greg is tightening the noose
Is it a week or a day or an hour we've got
Tonight could be our last shot
Got to put it to use
Tonight I bet that CS will get long
Forget about my sleep, forget the words to this song
IFETCH, OPFETCH, write-back along
Gonna stay up all night
And stress in Upson
GREG:
Mem stage... write back... hazards... branch... delay slot
Attention, all the class!
At your own request
We give you the best
Xilinx 2 in Upson!
ALL STUDENTS:
The stress is on in Upson
And things are not going well
But still by sunrise the party goes on
A all-nighter born in hell!
Scene: Prelim 2
[GREG watches all the students enter. WALTER is dressed in a tuxedo made entirely out of duct tape, carrying a bottle of vodka, EMMANUEL is dressed as, well, EMMANUEL, and there is much nervous anticipation in the air. GREG greets the students as they walk in]
[to the tune of: Master of the House / Les Miserables]
GREG:
Welcome, students, sit yourselves down
And meet the best instructor in town
As for the rest, all of them profs
Come take the test and points I'll take off
Seldom do you see
Wicked profs like me
A regular old gent
Who's content to be -
Teacher of the course
Maker of the tests
I'll keep you busy and you'll get no rest
Make a state machine
Draw me a graph
I see your answers, then I start to laugh
Don't expect me any favors
Don't expect me to be nice
Wrong answers get you nothing
I won't even think twice
Teacher of the course
Keeper of the zoo
[pointing to EMMANUEL and
WALTER]
Bastards in the front row there have gone cuckoo
Looking at your work
Giving you a grade
Looking at the processor that you guys made
Ev'rybody loves professor
Everybody's CS friend
I do whatever pleases
Jesus! I'll fail you in the end!
ALL:
Teacher of the course
Quick to catch your bug
Gives a little smacking if you're feeling smug
Hardcore as can be
Xilinx simulates
Nothing's ever working, so ain't it great?
Everybody's favorite pastime
Everybody's source of stress
GREG:
So write up your thesis
Jesus! Aren't I always just the best?
[the prelim begins. A lone student (preferably female with a young girl's voice, if you want to stay close to the original) starts to sing]
[to the tune of: Castle on a Cloud / Les Miserables]
STUDENT:
Here is a prelim come from Hell
After a project; got no sleep
Look at the test and start to weep
I only hope that I'll do well
Here is a test that's got me screwed
My grade will be low with the points I'll lose
Everyone cries and looks so glum
Failing the prelim, one by one.
There is a teacher who likes cows
Tests me and fails me here and now
His lecture's fun
Cool stuff and such
So still, this class, I love it very much
I know a place where no one fails
I know a place where there's no stress
Where, you may ask, is this place? Well,
I know for sure it's not Cornell!
Scene: The Revelation
[the ENGLISH MAJOR is tossing and turning in bed, agonizing over the thought that his major will be worthless upon leaving college.]
ENGLISH MAJOR (mumbling):
Pointless... futile... nihilistic
existence... dialectical materialism... what is the
point of it all? Why am I doing this? Why do I not
understand the way, the lambda the... the...
[he thinks about his friends, the CS majors]
[to the tune of Who Am I? / Les Miserables]
ENGLISH MAJOR:
He makes binary trees
And can calculate chance
Connects circuits to grounds
BDSM romance...
Why should I be like him?
What am I doing wrong?
I am an English Major
And have been for so long
If I switch, I am condemned
If I stay English, I am damned
I am the envy of hundreds of students
They're jealous of me
I sit on my ass all day
They work till sunrise
While I read stories
If I switch, I am condemned
If I stay English, I am damned
P-C-I
Linux, Mac, Windows, and Be
All stir the geek inside of me
The hardware always obsolete
My machine never is complete
P-C-I
I went down to the campus store
And bought myself a Voodoo-4
And I'll play Quake until I die
At more frames than an SGI
P-C-I
Pop in an Ultra SCSI 2 and then
I'll never wait for apps to load again
My soul belongs to Microsoft
Like poor old Dmitri Falkov
A little sneak I've been all week
Coding late - and cannot speak
Who am I? Who am I?
I'm a CS Geek!
And so to English, hell with you!
Your bullshit and myself are through!
Who am I?
I'm a CS Geek!
[the stage is enveloped in a blinding light. As our eyes recover, we see the LADY OF THE LAMBDA emerge, a beautiful, angelic apparition. The ENGLISH MAJOR welcomes her with open arms and she takes him into her warmth and light]
Scene: Lady of the Lambda
[a STUDENT cries at the horror of Xilinx and remembers fondly the joys and happiness of CS212 and all the good times spent with the LADY OF THE LAMBDA]
[to the tune of: Wishing You Were Somehow Here Again / Phantom of the Opera]
STUDENT:
You were once my true companion
You were all that mattered
You were once my light and guardian
Then my world was shattered
Wishing you were somehow here again
Wishing you were somehow near
Sometimes it seemed
If I just dreamed
Somehow you would be here
Wishing I could write Scheme code again
Hoping that I someday shall
But dreaming of you
Won't help me do
This Xilinx project hell!
Memory faults, schematic edit
Slow and temperamental
Seem, for me, inferior software
You were fun and gentle
Too many days
Crashed many ways
Why can't this shit just work?
Wishing you were somehow here again
Knowing that it all must end
Hardcore 212
Gosh, it was swell
Why does it have to end?
No more function calls
No more Tiny Scheme
No more of the Lambda, so it seems
I hate to say goodbye.
[the LADY OF THE LAMBDA emerges from the shadows and embraces the student. Fade out]
Scene: Mistress Xilinx Tango / Final Confrontation
[in the Computer Science Undergraduate Lab, CSUG. The scene is no longer the bright happy computer lab it once was, but a dark dungeon full of the cries of the damned. All around, CS majors are tied up and restrained with handcuffs, leather straps, ball gags, chains, spiked collars, leashes, and all the other trappings of bondage and discipline and sadomasochism. In center stage is Mistress Xilinx herself, the CS dominatrix, Master over all the Slaves in CSUG. She sings and taunts the students who, as a result of her evil work, have been unable to work on their projects]
[to the tune of The Masochism Tango / Tom Lehrer]
MISTRESS XILINX:
You can't finish up your homework
Because Mistress Xilinx won't work
I like to crash
Your work I will smash
As you dance to the Mistress Xilinx tango
Let your bus pins become disconnected
And simulate errors unexpected
Throw down a latch
And wires get detached
As you dance to the Mistress Xilinx tango
At my command
Before me here you stand
Your errors are so grand
It's me that you must see
And you entreat
And get down on your feet
To get the project beat
But you'll have to come through me!
My interface will torment you
Your Windows will crash and turn blue
Xilinx just died
Your work just got fried
As you dance to the Mistress Xilinx tango
I found your work
Backed up to the hard drive
As well as the net drive
I deleted them both
[reaches over and deletes files]
STUDENT:
Noooo!
[sobs]
MISTRESS XILINX:
And your CPU
Will stop to work, love
Yet another quirk, love
That I love to show.
You'll never finish any projects
I'll introduce bugs to break your logic
What once worked just fine
Won't work this time
As you dance to the Mistress Xilinx tango
Bash in your brain
I'll make you scream with pain
And whip you once again
And pull out all your hair
You know too well
In CSUG you will dwell
And you will start to smell
While you're strapped here in a chair!
Drag your project from it's folder
And watch me as it crashed the loader
Don't try to whine
Everyone here is mine!
Because they dance to the Mistress Xilinx tango!
[enter ENGLISH MAJOR]
ENGLISH MAJOR:
I have seen the light! I realize now what I want to do
with my life! I want to be... a CS Major!
STUDENT:
Too late for that now, Mistress Xilinx has all of us in her vile
clutches...
ENGLISH MAJOR:
Not so! For I have brought with me... the Lady of the Lambda!
[enter LADY OF THE LAMBDA]
LADY OF THE LAMBDA:
Not so fast, Mistress Xilinx. I have come to free my people.
[MISTRESS XILINX turns around. Music comes on - the Duel of the Fates by John Williams. The LADY OF THE LAMBDA draws out her sword. MISTRESS XILINX calmly pulls out her double ended dildo and glares menacingly. A long choreographed martial arts fight scene ensues.]
[Much evil power flows through MISTRESS XILINX. The fight seems to be even, but the LADY OF THE LAMBDA slowly loses ground. Finally, MISTRESS XILINX, fueled by the power of Bad Software, knocks the sword from the LADY OF THE LAMBDA's hand. She falls to the ground. MISTRESS XILINX points her dildo at her.]
MISTRESS XILINX:
Now, you too are mine. Bugs and crashes and general
protection faults will descend upon the world!
STUDENT (shouting):
It's the Holy Sword of Barzilay!
[a spotlight shines upon a beautiful sword, with an ethereal glow and a hilt in the shape of a lambda. The LADY OF THE LAMBDA sees the sword and calls out to it. It flies into her hand. She then leaps up, somersaults over MISTRESS XILINX's head, and runs her through.]
MISTRESS XILINX:
Ouch... ouch... don't stop...
[MISTRESS XILINX has an orgasm and dies]
[the LADY OF THE LAMBDA proceeds to free all the students]
Scene: Final Lecture
[GREG prepares to address the class one last time before study week and finals]
[The GEEKS rise and present GREG a present in a box]
WALTER:
Of all the professors in all the world, you had to be
mine. Maybe the pranks of a few merry geeks don't amount
to a page block in this crazy world. But we'll always
remember this course.
EMMANUEL:
We'll always have CS314. It's a part of us, what keeps
us going. If we took this course and you weren't
teaching it, you'd regret it. Maybe not today, maybe not
tomorrow, but soon... and for the rest of your life.
JEFF:
Say it again, Greg... say it for old time's sake.
[to the tune of: As Time Goes By / Casablanca]
GREG:
You must remember this
A cache will sometimes miss
And Windows always dies
The basic theories still apply
As time goes by
And when you leave this class
Of you I'll only ask
No matter what your grade
Remember the MIPS you made
As time goes by
Logic and theory, never out of date
Caches and pipelines, made with simple gates
Chips will get fast, and compilers will be great
That no one can deny
It still is lots of fun
The code you write and run
The theorems you derive
No matter what the future brings
As time goes by.
[the entire class rises and applauds. There is much hugging and tears flowing.]
[a large black car pulls up. Two large men in dark suits pull HUBERT kicking and screaming out of the classroom. No one notices.]
Scene: Study Week
[in this scene, we cut rapidly between scenes of students working in front of various computers at various locations, running in and out of Upson, and all the other things that CS students do during Study Week]
[to the tune of It's the End of the World As We Know It / R.E.M.]
OFFSTAGE:
That's great, it starts with net Quake, files to make,
an assembler, and Morrisett to teach today. N variable
Karnaugh maps, logic circuits start to burn, simulator
won't run, I start to look glum. Copy on a net drive,
curse, no, crash, denied access retried, NT sucks
me. Wire all are mired, representing logic gates, some
software expired and a down website. State machine and
prelim, eyes are blurry with the Xilinx saying GPF. Team
by team students got baffled, stumped, weathered,
stopped. Look at that cool waveform! Fine, then, uh oh,
overflow, stack protection, pipelining,
forwarding. Branch hazard, write hazard, instruction
reorder, superscalar, more, more, carry with the look
ahead runs faster and so? Right? Right! You narcoleptic,
gone psychotic, hack, bright, daylight, feeling pretty
psyched.
It's the end of the term as we know it
It's the end of the term as we know it
It's the end of the term as we know it, and I feel fine.
Six AM - up all night, screen never looked so
bright. Hack and learn, return, simulate starts to
burn. Lock the bus, cache snooping, block grouping, code
working. Every prelim escalate, our grades
incinerate. Draw a circuit, without a motive, oh no, oh
no, watch your work crash, crushed, uh oh, this means
too late, simulate, Xilinx ain't so great. A travesty, a
travesty, a travesty of code. Offer me new versions,
offer me the 2.0 and I don't know.
It's the end of the term as we know it
It's the end of the term as we know it
It's the end of the term as we know it, and I feel fine.
The other night was not all right, Xilinx won't run
divide. Printouts sit in a line, prelim 2 is not so
fine. Victor Tao, Panos, Ali S and Rob Cronin. CS party,
Woodchuck, White Russian, bam! You alcoholic, gone
psychotic, want to hack drunk, right? Right.
It's the end of the term as we know it
It's the end of the term as we know it
It's the end of the term as we know it, and I feel fine
(It's time I had some time alone)
Scene: Finale
[Entire cast - in the CSUG Lab. Students have finished the demos of their final projects and will never have to face the pain that was Xilinx again]
[to the tune of: Do You Hear the People Sing? / Les Miserables]
GREG:
Do you hear the students sing?
Singing the song of happy men.
It is the music of a people who won't use Xilinx again
When the simulator runs
And the netlists all load fast
You can congratulate yourself 'cause you've passed this class!
STUDENT 1:
Will you join us here today?
Will you be geeks and stand with me?
Here in the CSUG lab
There's fun things to code in Scheme
So join in the fight and the software you write shall be free!
ALL:
Do you hear us CS geeks?
Hacking as we stay up all night
On our projects we have spent weeks
In the lab here late at night
Do you hear us CS geeks?
We're all as hardcore as can be
This major's not for the weak
As you have seen!
[students carrying flags and banners with the yin-yang and the lambda insignia march triumphantly onto the stage]
Do you hear us CS geeks?
Hacking as we stay up all night
On our projects we have spent weeks
In the lab here late at night
Do you hear us CS geeks?
We're all as hardcore as can be
This major's not for the weak
As you have seen!
[curtain]