And that problem is where the input can be modelled as a stream of structured events.
This may sound too abstract, but it includes, for instance, pretty much any file. But the value lies more in that it makes it trivial to design a file format that is easy to parse, and process.
For me the value lies in that in the old days techniques were developed to systematically solve programming problems that will always we relevant, in this case processing a stream of events.
It is very well explained in the follwing MIT ocw lecture (it uses Java, but is actually language agnostic):
"Designing stream processors
Stream processing programs; grammars vs. machines; JSP method of program derivation; regular grammars and expressions"
https://ocw.mit.edu/courses/electrical-engineering-and-compu...
To practice it, you could try "Project 1: Multipart data transfer" in the link below:
https://ocw.mit.edu/courses/electrical-engineering-and-compu...