A Functional Introduction To Computer Science
This is a very mathematically inspired introduction, as they say in the initial chapter.<p>What I would like to see is a <i>logical</i> introduction to computer science, or at least theoretical computer science.<p>Start with combinational logic [1], i.e. with Boolean circuits. They are both conceptually simple and relatively close to physical transistors, unlike any functional / mathematical approach. Then move on to sequential logic[2] which allows the introduction of memory/states, e.g. via flip-flops. From this, more complex circuits and even a primitive GOTO language would be introduced. What I would be interested in is how these circuits relate to the traditional models of computation, i.e. finite state machines, pushdown automatons and Turing machines. Not very cleanly, I suspect.<p>[1] <a href="https://en.wikipedia.org/wiki/Combinational_logic" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Combinational_logic</a><p>[2] <a href="https://en.wikipedia.org/wiki/Sequential_logic" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Sequential_logic</a>