View
221
Download
0
Tags:
Embed Size (px)
Citation preview
It was a dark and stormy night at the University of Washington…
90 minutes until latest Data Structures project was to be turned in…
I was the graduate TA…
drizzly
My apartment, 10:30pm…
Nursing the aches of a first year graduate student course load…
Undergraduate TA handling the turnin at midnight…
I decided to check e-mail one last time before bed…
Students could not log in… programs were freezing…
I contacted a student by IM…
I realized I had to handle this personally…
CHAOS! PANIC!
Undergraduate lab, 11:00pm…
All students were panicking …
I managed to find a terminal with ‘top’ running…
I yelled for my students to terminate their programs…
It was too late…
So What?
• An assignment crashed a server… big frickin’ deal right?
• But this assignment had been used before with no problems…
What was different this time?
The Programming Assignment• Word Frequency Analysis Tool:
Implement an unbalanced BST, AVL tree, and a Splay tree where a node <key, value> represents <word, frequency>
• Extra Credit:Use gprof to profile your three trees. Run your trees on two inputs:• Any file from Project Gutenberg• The provided file: words.txt
a.k.a. The Unix Dictionary
Let’s Do The Math…Unbalanced BST + 45,424 ordered words= BAD (1)
(1) + code profiler running= MORE BAD (2)
(2) >6 instances running on the same server= REALLY BAD (3)
(3) all instances running at same priority= SERIOUSLY REALLY AWFULLY BAD
Again… So What?
• The lesson is• Use a smaller file next time or• Teach the students to use ‘nice’
• True, but…• This had not been a problem before• Some students successfully profiled their
code
• Again, what was different?• Something motivated more students to do
the extra credit than in previous course offerings
A New [Better] Grading Policy• Joint decision and effort by myself and
the undergraduate TA• Both of us graded the assignments• I graded the theory side:
• Correctness, • Complexity• Generalizability
• Hannah graded the software engineering side:• Programming style• Documentation
What This Change MeantBefore:
• Summative assessment
• Surface grading of code
• Few grader comments
• Correctness most important element
• Style worth 1-2 pts
• Programs worth 20 pts
• Perfect scores common
Now:
• Formative assessment
• Deep grading of code
• Many grader comments
• All elements weighed equally
• Style worth 20+ pts
• Programs worth 80+ pts
• More points lost
Students panicked about grades!
The Mystery Solved
• We failed to emphasize• Non-perfect scores were expected• Performance would be curved
• Students leapt at chance to recover points• More students doing extra credit• More strain on undergraduate servers