
By Dr Mun See Chang
Mathematics often provides the theoretical underpinning for computing, which is one of the fundamental requirements of a computing degree (QAA, 2022). Mathematical proofs, in turn, are central in establishing mathematical truths, and so are important in computing to, for example, establishing the correctness of an algorithm. Therefore, learning to write mathematical proofs is often in the curriculum of a computing degree.
This post is not about whether we should teach proof writing or not, but instead, I’m taking an inclusivity angle on the topic. That is, if we are to teach proofs, what inclusivity issues may we face, and how can we break down the learning barriers caused by these issues, using, say, the Universal Design for Learning guidelines (CAST, 2024)?
In the first lecture on proof writing, I like to do a few quick show of hands questions, asking students if the examples shown are proofs or not. Many students do get this wrong, and I believe this is because the “proofs” taught in schools are often just manipulation of equations, which are very different from what we expect at the university level – sequences of logical statements written as complete English sentences. Very often students would hand in a collection of facts with no logical connections, and call it a proof. In accordance with UDL consideration 8.1 (clarify the meaning and purpose of goals), we need to make clear that proofs are there to convince.
Relatedly, mathematical proofs use highly technical vocabulary and language structures (such as “let … be …” or “suppose that …”). (Enström, 2014) observes that theoretical computer science teachers often take the language for granted, assuming that students have the same understanding of technical terms without ever explaining them. This hinders learning as misunderstandings could lead the students down the wrong path. As highlighted in the UDL consideration 2.1, the vocabulary, symbols, and language structures should be clarified explicitly.
Now that the students know what constitutes a proof, how do they even get there? Quite often, proofs are not constructed the same way as they are meant to be read. Therefore, being able to write proofs from having read some proofs is a big cognitive jump. The thought process must be made explicit, else the students will not see value in putting in the effort. This is addressed in the UDL consideration 3.2: highlight and explore patterns, critical features, big ideas, and relationships. I like to make use of (Velleman, 2019), which makes explicit the common patterns in proof writing. I also like to use the whiteboard in coming up with proofs “in real time”, to highlight the non-linear way of coming up with proofs.
The student cohort usually has a very diverse background in mathematical experiences. This diverse cohort may have different ways of understanding the same concept. Overall, there is no one right way of building knowledge, and over-reliance on one will exclude a good proportion of the class. The UDL consideration 3.3 places emphasis on cultivating multiple ways of knowing and making meaning. (Neri, 2021) proposes to use three ways of explaining mathematical concepts to computer science students: in the traditional mathematical way, to encourage the derivation of abstract understanding via examples, and to use systematic, algorithmic approaches.
We have students who have not done any university-level mathematics, through to students who are joint mathematics and computer science majors. Pitching the level of mathematics to the middle of the two extremes will naturally exclude some students. The more mathematically experienced students may find the course boring and a waste of time, while the less experienced ones will struggle to keep up. We need to create an environment where everyone has the opportunity to succeed, and everyone is challenged to maximise learning.
What I feel is an underexplored approach is the use of group work to teach the more mathematical modules. We could ask students to prove statements unbeknownst to their peers, and then ask their peers to rate how convinced are they of the statement after reading the proofs. This would clarify the goal of writing proofs. Working in groups, they have more opportunities to clarify the meaning of the proofs to each other. The students can also learn from the diverse ways of making sense of abstract mathematics and in constructing proofs. Those who have a solid grasp of the subject matter would have the challenge of conveying that understanding to other students. Additionally, group work may foster collaboration, interdependence, and collective learning (UDL consideration 8.3).
Bibliography
CAST, Inc. (2024) The UDL guidelines, The Universal Design for Learning Guidelines. Available at: https://udlguidelines.cast.org/
Enström, E. (2014) On difficult topics in theoretical computer science education. Thesis. Computer Science and Communication, KTH Royal Institute of Technology.
Neri, F. (2021) “Teaching mathematics to computer scientists: Reflections and a study”, SN Computer Science, 2(2). doi:10.1007/s42979-021-00461-7.
QAA (2022) Subject Benchmark Statement: Computing. Available at: https://www.qaa.ac.uk/the-quality-code/subject-benchmark-statements/computing
Velleman, D. J. (2019). How to prove it: A structured approach. Cambridge University Press.