Every week (except before recess week and at the end of the semester), there will be mandatory exercises, to be solved in groups of 8(ish) and uploaded on Canvas.
The rationale for 8 is that the lecturer will then have 6 handins to correct per week, which is doable with high-quality feedback. In turn, the handins are expected to be of high quality.
Here is a LaTeX template for the reports and a listing package for tCPA, lstcoq.sty. This particular template assumes a .v file “file1.v” that is is in the same directory.
In this course, the attendees are made to realize that mathematics is expressed in a language which can also be formalized with a grammar, and that logical statements and their proofs can be checked. So proofs are neither a subjectively convincing argument and even less a mere social convention, they have a concrete, quantified existence that is rooted in linguistics and mathematical logic and that can be checked independently and objectively. Using the Coq Proof Assistant, which is based on the correspondence between propositions and types and between programs and proofs, the attendees are to write more proofs as well as bigger proofs than they had ever done in their life so far.
This course is very much hands on, and so by the middle of the semester, the attendees are asked to formalize and to prove that the product of two consecutive natural numbers is even, a deceivingly simple exercise that makes them mobilize everything basic they know about programming and proving in a safe setting and in a way that scales beautifully, a testament to sound foundations.
Here is how chatGPT fared with that simple exercise on Monday 6 February 2023, a candid reminder of Ted Chiang‘s Lifecycle of Software Objects:
The answer to the first question is correct, but its argument is incomplete (the claim should be “if you have the numbers n and n+1, then either n or n+1 must be even”).
The answer to the second question is correct, but its argument is off (involving a sum?).
The answer to the third question is incorrect. (The two first numbers are consecutive and therefore their product is even, and likewise for the two last numbers. And multiplying two even numbers (say, 2x and 2y) yields a number that is divisible by four (namely 4xy)).
Halcyon: What is the point of the little romp with ChatGPT just above?
Na-bong: I think it is a cautionary tale.
Halcyon: So we shouldn’t use a generative AI to solve our exercises and to write our reports?
Na-bong: Well, you exercise physically, right?
Halcyon: Yes, and, huh, thanks for noticing.
Na-bong: What do you do?
Halcyon: Jogging.
Na-bong: That’s inefficient. Why don’t you take the bus instead?
Halcyon: Well, that’s not the point. Oh. You mean that we exercise intellectually by solving our exercises and by writing our reports?
Na-bong: Yup. Which is the better gift for your grandmother: a program that solves Sudoku puzzles or a program that generates them so that she can solve them herself?
Halcyon: Regardless, in this evolving 21st century, we also need to learn to ask the right questions.
Dana: And to ask questions, we need to know something about things.
Halcyon: Right. If one can ask questions, one is already half there. The problem is learners who don’t understand enough to ask questions.
Alfrothul: We also need to be able to gauge answers, like in the little romp above.
Mimer: And all of that is the point of your education.
Halcyon: So, no use of a generative AI in this course?
Mimer: No use of a generative AI in this course.
Added lstcoq.sty, thanks to Wong Kok Rui’s eagle eye [24 Jan 2024]
Added the section about generative AI and the postlude [19 Jan 2024]
Created [18 Jan 2024]