As another semester comes to a close, it’s time to reflect on the journey through the Formal Methods for Software Engineering course. This semester, we embraced change, introducing new teaching methods and tools to enhance the learning experience. One notable addition was the integration of GitHub Classroom for assignments, a decision that brought about unexpected insights and learning experiences.
GitHub Classroom and Automated Feedback
One notable shift this semester was the adoption of GitHub Classroom for assignments. Initially intended for its auto-grading feature, we found its true value in automated feedback generation. Navigating the limitations of GitHub Classroom and the GitHub workflow proved challenging, especially when interpreting the log files. Nevertheless, this exploration led to a wealth of knowledge on crafting more useful feedback and discreetly implementing Test-driven development (TDD) without revealing solutions. I intend to delve deeper into these technical details in a future post, sharing my learnings and experiences.
The Birth of the FM Playground
A significant endeavor this semester was the development of the Formal Methods (FM) Playground. The Formal Methods for Software Engineering course covers four chapters, each involving different tools- SAT solvers, SMT solvers, Alloy, and nuXmv. Recognizing the challenges students faced with publicly available tools—some lacking executables for all platforms—we embarked on creating an integrated platform. This platform, featuring tools like limboole for SAT solving and propositional logic, z3 as an SMT solver for first-order logic, Alloy for relational first-order logic and declarative specification, and nuXmv for LTL model checking, streamlined the learning process. This platform would allow students to access essential tools without the need for complex installations.
An additional layer of innovation was introduced by anonymously storing student-written specifications. Looking towards the future, the intention is to make these specifications public, paving the way for accelerated research and knowledge sharing. By incorporating real-world examples from student work, we aim to contribute to the broader academic community and foster collaborative learning.
Christmas Break Transformation
As of now, the project remains under development with an extensive roadmap ahead. The goal is to make it more interactive and user-friendly, addressing the unique requirements of students engaged in Formal Methods for Software Engineering. The journey has been exhilarating, marked by the fusion of innovation, determination, and a commitment to improving the educational experience for students.
In the coming months, I look forward to sharing more insights into the technical intricacies of GitHub Classroom, as well as providing updates on the continuous evolution of the FM Playground. The commitment to enhancing education through technology is a journey that never truly concludes, and I am excited to see what the future holds for the intersection of formal methods and software engineering education.