Computer science faculty must attract and retain students by offering innovative courses that spark student interest, yet still teach core, computer science concepts. These efforts have become particularly important as computer science enrollments have declined, thus increasing concerns for attracting and retaining students. We describe an innovative course that leverages students' interest in computer security issues to attract and retain technically-oriented students. Our initial vision was to offer a course covering computer viruses - a subject that even a novice computer user has some familiarity. To avoid the controversy associated with teaching students how to write malicious software, we focused the course on techniques for defending against viruses, so we named the course Defense Against the Dark Arts. In teaching the course, we have found the subject matter provides an engaging way to introduce and reinforce many important computer science concepts that other courses often cover, most particularly, the traditional compiler course. We have taught the course three times at two separate institutions, with a third school soon to follow. The course has been well received by students - completely filling each semester with enrollments that are four to five times greater than the compiler course. Furthermore, student surveys indicate that the course raises students' awareness of computer security while introducing students to important program translation and analysis concepts.
[1]
Akim Demaille,et al.
Making compiler construction projects relevant to core curriculums
,
2005,
ITiCSE '05.
[2]
Jack W. Davidson,et al.
Safe virtual execution using software dynamic translation
,
2002,
18th Annual Computer Security Applications Conference, 2002. Proceedings..
[3]
Mark N. Wegman,et al.
Efficiently computing static single assignment form and the control dependence graph
,
1991,
TOPL.
[4]
Amer Diwan,et al.
Design and implementation of a modern compiler course
,
2006,
ITICSE '06.
[5]
Patricia Y. Logan,et al.
Teaching students to hack: curriculum issues in information security
,
2005
.
[6]
Daniel Lazenby.
Cygwin: For Windows NT
,
2000
.
[7]
Andrew Meneely,et al.
Fifteen compilers in fifteen days
,
2006,
SIGCSE '06.
[8]
William M. Waite,et al.
The compiler course in today's curriculum: three strategies
,
2006,
SIGCSE '06.
[9]
Carl Stephen Guynes,et al.
Teaching the undergraduate CS Information Security Course
,
2006,
SGCS.
[10]
John Aycock,et al.
Viruses 101
,
2005,
SIGCSE '05.
[11]
Doug Baldwin.
A compiler for teaching about compilers
,
2003,
SIGCSE.
[12]
Brian Walters,et al.
VMware Virtual Platform
,
1999
.
[13]
Saumya K. Debray.
Making compiler design relevant for students who will (most likely) never design a compiler
,
2002,
SIGCSE '02.
[14]
E. Schmidt,et al.
Lex—a lexical analyzer generator
,
1990
.