Journal Title

Journal of Computing Sciences in Colleges

Publication Date



Most computer science programs expose students to theoretical aspects of computing, such as discrete mathematics, algorithms, and theory of computation. This paper presents the integration of an implementation project in a theory of computation course, so that students get a chance to grapple with the details of a transformation and/or abstract model in addition to preparing a project and demonstration to help fellow students review topics from the course. Examples of student projects include a deterministic finite automata simulator, determining if the languages of two DFAs are equal, converting a grammar to a pushdown automaton, and creating a regular expression engine. Seventeen of 25 respondents agreed or strongly agreed that the project was a valuable learning experience; six were neutral and one strongly disagreed. Student project topics were reviewed against final exam questions for corresponding language classes. While there was no statistically significant difference between groups on exam questions, the overall averages on exam questions demonstrate student mastery of the material.


Computer Science--Study and teaching

Publication Information

© Tammy VanDeGrift | ACM, 2017.

This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in the Journal of Computing Sciences in Colleges,

Archived version is the accepted manuscript.



Document Type

Journal Article