I often use the LaserJet emulator as an example of computer "science." I had an HP LaserJet in my lab and was tasked with making the TI laser printer (which we were doing as a PostScript printer in 1986) behave just like the HP. I would formulate theories of how the HP behaved for particular inputs, design and conduct experiments, and see what I learned. It was then that I realized that I learned more if the experiment failed (i.e., the HP doesn't work that way) than if the experiment succeeded (It might work that way, but there could be corner cases that the experiment didn't test). By the time we shipped the TI printer, it was a damn good emulation. After that, it was included in pretty much every PostScript printer that shipped for any OEM (but not for HP ☺).
My other great "computer science" exercise was circa 2000 when I taught Adobe Acrobat how to lay out HTML pages. This was a bit harder since there were at least 4 popular browsers out there and they didn't all render things the same. On the plus side, my rendering could be printed without slicing lines in half at page breaks. Once we could turn an HTML page into PDF, we added cool stuff like putting multiple web pages into a single PDF and fixing all of the links between those pages to be internal links. Links to pages not in the PDF would cause those pages to be opened in the HTML browser. Acrobat still has this capability.
Dick