ABSTRACT
Computer systems form the backbone of computing from very small, mobile devices to the huge datacenters that power the digital economy. These systems often exhibit large degrees of variability in their performance that is little understood, but such variability threatens to severely diminish the effectiveness of critical systems upon which society relies. Funded by a large NSF grant, the VarSys project at Virginia Tech researches the sources of variability in computer systems and develops methods to overcome it. We believe it is crucial to raise awareness of the phenomena surrounding variability in computer systems at the undergraduate level. Towards this end, we are connecting the research techniques developed as part of this NSF award to ongoing classroom projects in a core systems course. Our key insight is to expose students to the phenomenon as it occurs in the systems software modules (e.g. a memory allocator, a fork-join thread pool) they are themselves developing in the course. We have implemented a web-based system that allows students to submit their own systems-level code to a specialized cluster which then benchmarks it while systematically varying a number of ordinal and categorical variables. These variables reflect environmental factors that can influence the performance of complex systems. Students are then presented with a visual statistical analysis of the results and asked to interpret those results. We have successfully deployed this system in 2 semesters to over 250 students and collected student data about their experience with this system and are documenting our progress towards these important learning objectives.
Index Terms
- Teaching Variability in a Core Systems Course: (Abstract Only)
Recommendations
Practical Systems Programming in Computer Science Education (Abstract Only)
SIGCSE '17: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science EducationIntroductory curricula, courses, and programming assignments seem to get most of the attention at Computer Science education conferences. This bird-of-a-feather focuses, instead, on upper-level systems courses (databases, networks, compilers, operating ...
Evaluating a communication-intensive core course in the CS curriculum
This is an experience paper that describes the strategies for creating a communication intensive core course within the CS curriculum. The paper covers the evolution of such a course since its inception in 2007 where both oral and written communication ...
Implementing a communication-intensive core course in a CS curriculum: a survey of methods (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationWhile a focus on programming and mathematical skills is second nature to computer science faculty, perhaps equally important should be the recognition of the need for students to master communication skills. This poster presents the measured results of ...
Comments