This is valid also for CS-heavy code such as PLT or graph theory. I find it immensely useful to write ASTs in paper and draw diagrams when thinking about expression evaluation
I know this is a nit, but “I have removed Disqus as it has no free version without ads. You can discuss about this blog on the facebook page.” Just makes me look twice.
That said, I now start all projects of more than sixty minutes duration with a set of Requirements, to help me identify when I have a confirming solution, as well as to help me identify what parts of a solution don’t need to be there. This is I think a step before even solving a problem on paper, just because you need some way to identify a complete solution.