computing students and exam questions: addendums

This commit is contained in:
Wouter Groeneveld 2023-07-01 19:36:49 +02:00
parent f3fc9d007d
commit 9f68d572d2
1 changed files with 11 additions and 1 deletions

View File

@ -7,7 +7,9 @@ tags:
- students
---
The recurring pattern dutifully repeated itself this academic year: exam questions we predicted that would be badly answered have been badly answered, and questions that students performed well on in previous years were all right this year too. That means the system is consistent, but we'd rather see _all_ questions filled in adequately instead of some. If you take a closer look at the kinds of questions, a few things become clear. I'll go over a small selection of questions and let you figure out whether or not those were the difficult ones. These are part of our second year _Software Engineering Skills_ and _Operating Systems and C_ courses.
The recurring pattern dutifully repeated itself this academic year: exam questions we predicted that would be badly answered have been badly answered, and questions that students performed well on in previous years were all right this year too. That means the system is consistent, but we'd rather see _all_ questions filled in adequately instead of some. If you take a closer look at the kinds of questions, a few things become clear. I'll go over a small selection of questions[^qs] and let you figure out whether or not those were the difficult ones. These are part of our second year _Software Engineering Skills_ and _Operating Systems and C_ courses.
[^qs]: The questions have been translated from Dutch and are presented in a tightly compressed form for this blog post. For most of them, more context was present during the examination.
**Question**: Explain the following concepts/statements:
@ -37,6 +39,14 @@ Answering trend: _bad_. At this point, students don't know the principles behind
It gets worse: most students are not very good at thoroughly _reading the question_. We hinted that `add()` returns `false` if an element is already present, yet 90% of the answered signatures did not return anything. Why? Those were basically free points you just squandered!
---
Edit: I've got some lovely feedback from Michael, a first-year student computer science that was confused with the `TreeSet` thing. It's the go-to `Set` interface implementation in Java, and totally does not matter here. Time complexity of algorithms don't either---the point is just to present a data structure that's new to students and ask them to represent it in a `struct {}` C-style fashion using pointers. Admittedly, without [the context of our curriculum](https://www.kuleuven.be/opleidingen/master-industriele-wetenschappen-informatica/index.html), the question does sound weird.
Michael correctly points out that perhaps due to examination stress, one could read over the `// returns false` comments. My response is that carefully reading what's there and what's being asked is an important part of any university program. We had no intention to hide functionality. A return value is in 95% of all conventional programming languages part of the method signature.
---
- How would you conceptually implement a `set.remove("Cat")` function? Elaborate all steps, again no need to write the code.
Answering trend: _good_. `remove()` isn't anything special compared to a linked list remove they've been practicing, but we do expect pointer relinking and memory cleanup mentions---which most students dutifully do.