Implementation Projects in a Computing Theory Course

Abstract

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

    Similar works