From Citizendium, the Citizens' Compendium
, being a rather abstract science, likes to teach some of its principles using more or less concrete problems. These Scholary problems
used for teaching in computer science
are often not only intended as examples but also serve to lighten the mood and improve the recollection of the students. Often these problem appeared in a text book or article before becoming famous. Some of them (e.g. the Byzantine generals problem
) even coined new terms (here: Byzantine error
). Some of these problems are:
- Hello World
- Write one of the smallest possible programs printing "Hello World" on the screen. Simple problem to show syntax.
- Eight queens problem
- Arrange eight queens on a chess board so that none can capture the others. The implementation of this problem uses recursion and backtracking.
- Dining philosophers problem
- Five philosophers want to eat spaghetti with five forks but each one needs two of them. Shows the concepts of deadlock and starvation(!).
- Byzantine generals problems
- A number of locally distributed byzantine generals try to reach a consensus on when to attack a superior enemy. But there are traitors amongst them. Demonstrates failure scenarios where fault tolerance becomes difficult.
- Is a square a rectangle?
- Most object-oriented programming languages just say "No"! Example used to explain why combining inheritance and specialization relationships into the subclass relationship might not have been such a good idea after all.
- Bus paradox
- Does a bus (with wheels) with poisson-distributed inter-arrival times arrive every λ or every two λ? Shows the fallacies of not seeing the trap in the professor's logic in probability theory.