Conceptual Models for Teaching and Learning Computer Science Theory
Computer science theory (CST) is one of the most central and challenging courses in the computer science curriculum. CS students often delay their basic theoretical computer science courses, typically algorithms and automata theory, until their third or fourth years. Moreover, students simply do not take away from these courses the three crucial CST literacy skills: (a) formalizing problems crisply and clearly; (b) building (ideally highly efficient) algorithms to solve problems; and (c) when needed, arguing convincingly that a problem is so complex that efficient algorithms are unlikely to, or cannot, exist.
Conceptual modeling has proven to be an effective tool to help students learn challenging material at the secondary level and early collegiate level, e.g., in the introductory computer science sequence. But its usage in more advanced computer science courses, such as CST, is relatively unexplored. We developed and delivered specific model-based projects and lessons, organized thematically into 3-4 week units, which instructors anywhere can obtain and use for their own courses (we will make these available when this manuscript is published). Surveys of students who took the courses show that they view our use of conceptual modeling as having a positive impact on their learning.