Live data from Hacker News

A Functional Introduction To Computer Science

cs.uwaterloo.ca

21–30 of 40 posts

Re: A Functional Introduction To Computer Science

#25
post #22

Can this be considered a modern version of SICP? https://en.wikipedia.org/wiki/Structure_and_Interpretation_o...

That would be https://htdp.org/2023-5-12/Book/index.html (see https://users.cs.northwestern.edu/~robby/pubs/papers/htdp-si...) which also uses Racket

Re: A Functional Introduction To Computer Science

#26
post #19

Ragde is an excellent CS prof. I really enjoyed the functional approach Waterloo takes in first year CS, especially in the optional more advanced version of the course where they go a lot deeper into the math connections and interpreters

Had him 25 years ago for Digital Logic. His enthusiasm was far beyond most of the other profs. Warms my cockles to see he’s still keeping it real.

Re: A Functional Introduction To Computer Science

#27
post #13

This is a very mathematically inspired introduction, as they say in the initial chapter. What I would like to see is a logical introduction to computer science, or at least theoretical computer science. 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…

I agree with you, which is why I’ve found nand2tetris to be a joy to read and work through.

Re: A Functional Introduction To Computer Science

#29
post #13

This is a very mathematically inspired introduction, as they say in the initial chapter. What I would like to see is a logical introduction to computer science, or at least theoretical computer science. 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…

Side note to this: I noticed that a smart friend had trouble learning anything outside of trivial programming due to unfamiliarity with boolean algebra and boolean logic. She only seemed to begin to understand the concepts when relating them to patterns used in knitting. If those were more commonly taught in basic math, it might make programming generally more approachable.

Re: A Functional Introduction To Computer Science

#30
post #20

Earlier quoted context omitted.

It makes sense that it's a mathematical approach because Computer Science is ultimately a Mathematical discipline, the Church-Turing intuition aligns these machines to mathematics (and I would argue us too, but that's controversial). Lots of elite CS courses start there, Cambridge did even when I was applying thirty years ago, Oxford does these days (back then it didn't acknowledge CS as a "real" subject, you were ba…

> It makes sense that it's a mathematical approach because Computer Science is ultimately a Mathematical discipline The fact that the abstraction "logical circuits" is much closer to actual computers than any "mathematical" or "functional" abstraction casts doubt on this claim.

"Computer Science" comes in two flavours, systems and theory. Each of you is talking about a different flavour.

(most CS departments cater to a single flavour: yes, it would be easier for everyone involved if theoretical computer science was called "informatics", but that'd probably be funding-sub-optimal)

Post reply on HN