The education of to-be physicians at Akademiska sjukhuset, Uppsala, includes practical services. The students are divided into groups that each has its own goals. The goals specify (1) what services that group's students should perform, and (2) for each service, a minimum number of times each student should attend that service.
It is only possible to perform any service at certain occasions: each occasion offers slots, to be filled by students. The occasions make up a calendar.
The challenge is to distribute the students over the calendar, so that the goal isa chieved for each student and service. No occasion is overpopulated, and no student is due to attend two (or more) occasions that collide in time.
The algorithm to solve this sets up a table with occasions (expanded horizontally by their number of slots) as the x-axis, and dates (expanded vertically by two: the day parts) as the y-axis. Then, distribution of students is done top-down, left-right. Collision is avoided by having students only appear once per row. Overpopulation won't happen as the allocation of students is done explicitly to slots, not to occasionsin general.
MS Access forms make up the UI. My thoughts when I set them up was that each form should boil down to a single purpose, but include everything to fulfill that purpose (and nothing else). Also, I setup an intuitive flow of movements between forms, and I made an effort to setup mnemonic shortcuts (and tab chains) as to minimize mouse use