ABSTRACT
Students in computing disciplines need a strong basis in the fundamentals of discrete mathematics, but traditional offline approaches to teaching this material provide limited opportunities for the kind of interactive learning that computing students experience in their programming assignments. We have been using the Alloy language and analyzer to teach concepts in discrete structures (relational algebra, logic, and graphs) in an exploratory, programming-oriented way. Alloy, however, constitutes a new programming paradigm for introductory students, and careful mediation is needed to keep students on track. We use the familiar programming lab format, where students work on small-scope problems co-located with instructors, to provide guidance as students wrestle with the languages of relational algebra and predicate logic through Alloy. We describe selected lab exercises, and report on initial findings based on our experiences with students.
- T. Ball and B. Zorn. 2015. Teach Foundational Language Principles. Commun. ACM 58, 5 (2015), 30–31. Google Scholar
Digital Library
- D. Barker-Plummer, J. Barwise, and J. Etchemendy. 2007. Language, Proof and Logic. CSLI Publications. Google Scholar
Digital Library
- Patrick Blackburn, Hans van Ditmarsch, María Manzano, and Fernando Soler-Toscano (Eds.). 2011. Tools for Teaching Logic: Third International Congress TICTTL 2011. Springer Berlin Heidelberg, Berlin, Heidelberg. Google Scholar
Digital Library
- R.C. Boyatt and J.E. Sinclair. 2008. Experiences of Teaching a Lightweight Formal Method. In Proceedings of Formal Methods in Computer Science Education.Google Scholar
- Fabienne M. Van der Kleij, Remco C. W. Feskens, and Theo J. H. M. Eggen. 2015. Effects of Feedback in a Computer-Based Learning Environment on Students’ Learning Outcomes: A Meta-Analysis. Review of Educational Research 85, 4 (2015), 475–511.Google Scholar
- Darina Dicheva, Christo Dichev, Gennady Agre, and Galia Angelova. 2015. Gamification in Education: A Systematic Mapping Study. Journal of Educational Technology & Society 18, 3 (2015), 75–88.Google Scholar
- Kees Doets and Jan van Eijck. 2004. The Haskell Road to Logic, Maths and Programming. College Publications.Google Scholar
- Ludmila Dostalova and Jaroslav Lang. 2011. ORGANON: Learning Management System for Basic Logic Courses. In Tools for Teaching Logic, Patrick Blackburn, Hans van Ditmarsch, María Manzano, and Fernando Soler-Toscano (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 46–53. Google Scholar
Digital Library
- A. Duckworth, C. Peterson, M. Matthews, and D. Kelly. 2007. Grit: Perserverence and Passion for Long-Term Goals. Journal of Personality and Social Psychology 9 (2007), 1087–1101.Google Scholar
Cross Ref
- Wolfgang Effelsberg and Stefan Göbel. 2014. Serious Games 2014: International Workshop on Serious Games. In Proceedings of the 22Nd ACM International Conference on Multimedia (MM ’14). ACM, New York, NY, USA, 1265–1266. Google Scholar
Digital Library
- W. Grassman and J-P. Tremblay. 1996. Logic and Discrete Mathematis: A Computer Science Perspective. Prentice Hall. Google Scholar
Digital Library
- D. Gries and F. Schneider. 1993. A Logical Approach to Discrete Math. Springer-Verlag. Google Scholar
Digital Library
- Cordilia Hall and John O’Donnell. 2000. Discrete Mathematics Using a Computer. Springer. Google Scholar
Digital Library
- Mohamed Hamada. 2009. Pushdown Automata Simulator. In Learning by Playing. Game-based Education System Design and Development, Maiga Chang, Rita Kuo, Kinshuk, Gwo-Dong Chen, and Michitaka Hirose (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 328–338. Google Scholar
Digital Library
- Eileen Head. 1998. ASSIST: A Simple Simulator for State Transitions. Ph.D. Dissertation. http://www.cs.binghamton.edu/~softwareGoogle Scholar
- Maxim Hendriks, Cezary Kaliszyk, Femke Van Raamsdonk, and Freek Wiedijk. 2010. Teaching logic using a state-of-the-art proof assistant. Acta Didactica Napocensia 3, 2 (2010), 35–48.Google Scholar
- D. Jackson. 2012. Software Abstractions: Logic, Language and Analysis. MIT Press. Google Scholar
Digital Library
- Joint Task Force on Computing Curricula. 2013. Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. ACM and IEEE Computer Society. Google Scholar
Digital Library
- O. Korkmaz and H. Altun. 2014. Adapting computer programming self-efficacy scale and engineering students’ self-efficacy perceptions. Participatory Educational Research 1 (2014), 20–31.Google Scholar
Cross Ref
- Eric Lehman, F. Thomas Leighton, and Albert R. Meyer. 2017. Mathematics for Computer Science. Samurai Media Limited. Google Scholar
Digital Library
- Q. Li and X. Ma. 2010. A meta-analysis of the effect of computer technology on school studentsâĂŹ mathematics learning. Educational Psychology Review 22 (2010), 215–243.Google Scholar
Cross Ref
- Maria Virginia Mauco, Enzo Ferrante, and Laura Felice. 2014. Educational Software for First Order Logic Semantics in Introductory Logic Courses. Information Systems Education Journal 12, 6 (2014), 15–23.Google Scholar
- Mark McCartin-Lim, Beverly Park Woolf, and Andrew McGregor. 2018. Connect the Dots to Prove It: A Novel Way to Learn Proof Construction. In Proceedings of the ACM Technical Symposium on Computer Science Education. 533–538. Google Scholar
Digital Library
- Beseme Project. 2003. http://www.cs.ou.edu/~beseme/index.htmlGoogle Scholar
- C. Rakes, J. Valentine, M. McGatha, and R. Ronau. 2010. Methods of instructional improvement in algebra: A systematic review and meta-analysis. Review of Educational Research 80 (2010), 372–400.Google Scholar
Cross Ref
- Susan Rodger and Thomas Finley. 2006. JFLAP — An Interactive Formal Languages and Automata Package. Jones and Bartlett. Google Scholar
Digital Library
- K.H. Rosen. 2012. Discrete Mathematics and Its Applications (7 ed.). McGraw-Hill.Google Scholar
- Christian D. Schunn and Mellisa M. Patchan. 2009. An Evaluation of Accelerated Learning in the CMU Open Learning Initiative Course “Logic & Proofs”.Google Scholar
- Wilfried Sieg. 2007. The AProS Project: Strategic Thinking & Computational Logic. Logic Journal of the IGPL 15, 4 (2007), 359–368.Google Scholar
Cross Ref
- S. Tarkan and V. Sazawal. {n. d.}. Chief Chefs of Z to Alloy: Using a Kitchen Example to Teach Alloy with Z. In Teaching Formal Methods. Number 5846. Google Scholar
Digital Library
- Springer Lecture Notes in Computer Science, 72–91.Google Scholar
- Leo C. Ureel and Charles Wallace. 2016. Discrete Mathematics for Computing Students: A Programming Oriented Approach with Alloy. In Frontiers in Education.Google Scholar
- Thomas VanDrunen. 2011. The Case for Teaching Functional Programming in Discrete Math. In Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion (OOPSLA ’11). ACM, New York, NY, USA, 81–86. Google Scholar
Digital Library
- Charles Wallace. 2018. Learning Discrete Structures Interactively With Alloy. In Proceedings of the ACM Technical Symposium on Computer Science Education. 1051. Google Scholar
Digital Library
- E. Wiebe, L. Williams, K. Yang, and C. Miller. 2003. Computer science attitude survey. http://www4.ncsu.edu/~wiebe/www/articles/prl-tr-2003-1.pdfGoogle Scholar
Index Terms
Lab exercises for a discrete structures course: exploring logic and relational algebra with Alloy
Recommendations
Uniform proofs and disjunctive logic programming
One formulation of the concept of logic programming is the notion of an abstract logic programming language. Central to its definition is a uniform proof, which enforces the requirements of inference direction, including goal-directedness, and the ...
A CS0 course for the liberal arts
This paper describes a non-major introductory course in computer science, specifically for students at a liberal arts institution. College-wide writing and speaking requirements across the curriculum are supported through a variety of assignments. The ...
A discrete structures course for a small college
It is generally accepted that a course in discrete structures such as Course B3 in Curriculum 68 recommendations [1] is an important part of a Computer Science program. In many institutions a Discrete Structures course is offered in the Computer Science ...






Comments