
1 2 3 4 5
0.1
0.2
0.3
0.11
0.18
0.34
0.21
0.15
0.18 0.18
0.17
0.23 0.23
Score from 1 (Strongly Disagree) to 5 (Strongly Agree)
Proportion of Respondents
Q1 Q2
Figure 7: Empirical data on machine proofs.
Science student. Although the proposed initiative is
based on a programming-based approach to Formal
Languages and Automata Theory, the design steps are
transferable to courses still using a pencil-and-paper
approach. That is, grammar design is not restricted to
programming-based courses.
We are cautiously optimistic that the proposed
initiative can be successful for two reasons. The
first, as mentioned above, is that none of the ver-
ification steps are beyond an advanced undergradu-
ate student that has taken an introduction to Discrete
Mathematics course. The second, is that classroom
work done with verification of state machines has
been successful and well-received by students. To-
gether, these reasons suggests that any Formal Lan-
guages and Automata Theory instructor can success-
fully make grammar verification interesting and palat-
able to Computer Science students.
REFERENCES
Akerkar, R. and Akerkar, R. (2007). Discrete Mathematics.
Pearson Education India.
Blanchard, A., Marché, C., and Prévosto, V. (2024). For-
mally Expressing what a Program Should Do: the
ACSL Language. In Kosmatov, N. and Signoles, J.,
editors, Guide to Software Verification with Frama-
C - Core Components, Usages, and Applications.
Springer.
Felleisen, M., Findler, R. B., Flatt, M., and Krishnamurthi,
S. (2018). How to Design Programs: An Introduction
to Programming and Computing. MIT Press, Cam-
bridge, MA, USA, Second edition.
Flatt, M., Findler, R. B., and PLT (2024). The Racket Ref-
erence. PLT. Last accessed: June 2024.
Gries, D. (1987). The Science of Programming. Springer-
Verlag, Berlin, Heidelberg, 1st edition.
Hopcroft, J. E., Motwani, R., and Ullman, J. D. (2006). In-
troduction to Automata Theory, Languages, and Com-
putation (3rd Edition). Addison-Wesley Longman
Publishing Co., Inc., USA.
Huisman, M. and Wijs, A. (2023). Concise Guide to
Software Verification - From Model Checking to An-
notation Checking, 2. Texts in Computer Science.
Springer, Cham, Switzerland, First edition.
Likert, R. (1932). A Technique for the Measurement of
Attitudes. Archives of Psychology, 140:1–55.
Linz, P. (2011). An Introduction to Formal Languages and
Automata. Jones and Bartlett Publishers, Inc., USA,
Fifth edition.
Martin, J. C. (2003). Introduction to Languages and the
Theory of Computation. McGraw-Hill, Inc., New
York, NY, USA, 3 edition.
Morazán, M. T. (2022a). Animated Problem Solving - An
Introduction to Program Design Using Video Game
Development. Texts in Computer Science. Springer,
First edition.
Morazán, M. T. (2022b). Animated Program Design - In-
termediate Program Design Using Video Game Devel-
opment. Texts in Computer Science. Springer, Cham,
Switzerland, First edition.
Morazán, M. T. (2024). Programming-Based Formal Lan-
guages and Automata Theory - Design, Implement,
Validate, and Prove. Texts in Computer Science.
Springer, Cham, Switzerland, First edition.
Morazán, M. T. and Antunez, R. (2014). Functional Au-
tomata - Formal Languages for Computer Science
Students. In Caldwell, J. L., Hölzenspies, P. K. F.,
and Achten, P., editors, Proceedings 3rd International
Workshop on Trends in Functional Programming in
Education, TFPIE 2014, Soesterberg, The Nether-
lands, 25th May 2014, volume 170 of EPTCS, pages
19–32, Australia. Open Publishing Association.
Race, P. (2001). Using feedback to help stu-
dents learn. https://phil-race.co.uk/wp-
content/uploads/Using_feedback.pdf. Last accessed:
June 2024.
CSEDU 2025 - 17th International Conference on Computer Supported Education
668