Skip to content

Between Factual Knowledge and Understanding: On Learning in Computer Science

Dominik Herrmann

This is a translation. View original (Deutsch)

Yesterday in the Inf-Einf-B Study and Code Space: A student asks about “identifying characteristics” of sorting algorithms. Clearly formulated, exam-oriented.

This encounter highlighted a core dilemma in computer science education. We often reduce complex algorithms to retrievable facts: Bubble Sort - linear runtime in the best case, quadratic in the worst case. Correct, but superficial.

This situation reveals a fundamental problem in computer science education. We package complex algorithms into boxes. We reduce them to bullet points and runtime classes. Students memorize these. They write them down in exams. And forget them afterward.

What remains? Not much.

Instead of answering the student’s question with more facts, I took my time. We worked through the algorithms with simple examples. Step by step. Element by element. Bubble Sort with an already sorted array? Selection Sort with reverse sorting? This hands-on approach makes abstract concepts tangible. This way, I can derive the runtime intuitively without having to memorize it.

Was this approach successful? Hard to say. The student listened. He nodded. Whether genuine understanding emerged or just polite interest remains open. The exam will show – if a question about sorting algorithms comes up 😜

As educators, we face this tension daily: promoting deep understanding while simultaneously preparing for exams that often reward factual knowledge.

Our “Study and Code Space” was an attempt to defuse this conflict - a space for both: exam-relevant facts and genuine understanding.

30 students benefited from this, some spending up to seven hours with us yesterday. Over 200 are registered for the exam. How do we reach the others?

We’ll keep at it.


This post first appeared on LinkedIn.