My wife got me a binary clock for Christmas. It has a number of settings. It can tell time in 12-hour or 24-hour time and it can tell it in binary coded decimal or true binary. Now I admit that I'm not as up on binary as I should be. The days when I had to program in binary are long gone and even back in the day I used to think more in octal and hexadecimal than true binary. So I've got it telling time in binary coded decimal. I can pretty much recognize zero though 15 on sight. So I can tell time using this clock pretty much as quickly as I can with an analog clock. I suspect that a lot of students, well, perhaps the general population really, would have a harder time with it.
Binary counters and binary clocks make great programming projects. There is one at MainFunction.com for Visual Basic .NET. I'm sure that there are a lot of other programming languages that would also work. The things I like about that project are that is helps teach multiple things.
- Timers and interrupt driven programming
- Graphical displays
- and of course binary numbers
If you want to spend some of your focus on real object oriented design there are some obvious objects to consider in this sort of project. An object that displays in binary from a decimal input for example. A container object that holds several binary display objects is another. There are a lot of possibilities.
[I'm still on vacation so replies to comments and email will be slow. This post was written earlier for display later.]