## Teaching Theoretical Computer Science at the Undergraduate Level: Experiences, Observations, and Proposals to Improve the Status Quo

### BibTeX

@MISC{Robins_teachingtheoretical,

author = {Gabriel Robins},

title = {Teaching Theoretical Computer Science at the Undergraduate Level: Experiences, Observations, and Proposals to Improve the Status Quo},

year = {}

}

### OpenURL

### Abstract

Theoretical computer science is a difficult subject to teach at the undergraduate level for several reasons. Although it is often a required course for graduation, theoretical computer science has the reputation of being a "tough course, " so most undergraduates postpone taking it until absolutely necessary, namely, during their senior year. To compound the problem, many students who enter the course have very little theoretical or mathematical background. If the material is not motivated enough in its presentation to the students, the students quickly drown in the terminology and the abundant technical notation, loosing their interest and patience in the process. Since theoretical models constitute an extensive infra-structure upon which rests much of computer science, it is crucial that undergraduates acquire an appreciation of these concepts before they leave school. Based on observations I made while being involved in teaching this course at UCLA for several quarters, I have developed and used some teaching techniques which have been quite successful, both in increasing student interest, as well as in enhancing their understanding of the material. Finally, to help combat declining academic standards, I propose and describe a new course to be added to existing computer science curricula, namely mathematical maturity and problem solving.