Earlier quoted context omitted.
> While it’s easy for a computer scientist to make the jump to programmer with just a little guidance, it’s much harder to go the other way. I don't think it's actually that easy for a computer "scientist" to unlearn all the idealistic stuff that can actually be counter-productive in a real-world programming environment, particularly if they're enamored with languages like LISP or Haskell. These people easily get dep…
Rust is becoming very popular. What is Rust though, if not a strict (i.e., non-lazy) Haskell with different syntax, linear types, and less polymorphism? I think a CS type who loves Haskell will be right at home with Rust. Or modern C++. Just as a CS type who loves Lisp will also be able to make the move to Rust or modern C++. Java, maybe not so much :)
If not SICP, then what? Maybe HTDP?
221–227 of 227 posts
Re: If not SICP, then what? Maybe HTDP?
#222Re: If not SICP, then what? Maybe HTDP?
#223Earlier quoted context omitted.
That’s very well put. I’ve actually really wanted a “cookbook” for compilers. Basically small, self contained lessons for writing a particular part of a compiler. I.e. here’s how to write a typechecker, or how to write a garbage collector. The closest to that I’ve found is Crafting Interpreters. A lot of the compilers textbooks focus on the theory or general concepts, which is great, but I want to get my hands dirty.…
There is a great paper by Abdulaziz Ghuloum, An Incremental Approach to Compiler Construction, that is pretty much the cookbook you want: http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf "We show that building a compiler can be as easy as building an interpreter. The compiler we construct accepts a large subset of the Scheme programming language and produces assembly code for the Intel x86 architecture, the dominant…
The main roadblock I'm having right now is typechecking. I've implemented Hindley Milner in Haskell and played around with Turnstile, but I still don't know enough theory to invent my own type rules for an imperative language. Something like "Type Theory for the Working Programmer" would be excellent. I just got a copy of TaPL, so maybe I'll just use that.
Re: If not SICP, then what? Maybe HTDP?
#224Earlier quoted context omitted.
> people with prior knowledge, yet disliked by actual students This is the key!. I was about to say SICP was great then, yeah, I read it only when get interest in build compilers and after 20 years on the craft. I think you need a progression on material: 1- Start with a highly practical book more alike build little experiments/programs "Build a pacgam game" "Make a calculator", etc... ie, do a single pass for the mi…
This made me think about how I learned to program on the Commodore 64: By typing in listings from magazines on little games, like Snake or a little text adventure game etc. When teaching kids I think that could be a great method: Usually, kids are also not afraid to start experimenting and tweaking what they typed in, while perhaps adults lack the patience needed to just copy an example. Now that I typed that out, I…
Re: If not SICP, then what? Maybe HTDP?
#225Earlier quoted context omitted.
> Why are you enrolled in the degree course if you are critical of it instead of wanting to learn the material? Maybe you want to learn why it is true? Since Euclid, mathematics is about proof i.e. being convinced. If you really understand the material, you see it must be true - and need not blindly accept it. What is taught in high school and many university courses is not mathematics, but how to use it. Like how to…
> Maybe you want to learn why it is true? > Since Euclid, mathematics is about proof i.e. being convinced. If you really understand the material, you see it must be true - and need not blindly accept it. I agree. Learning mathematics means learning the proofs. This is pure learning and has nothing to do with critical thinking (at least to me and I am a mathematician).
To me, an essential part of a proof is checking that it is correct yourself... as opposed to "learning" it i.e. taking it on faith, believing it is correct because someone said it was. (Of course, in practice you can't verify everything yourself... but nonetheless that's the idea of mathematics, in theory).
Is that not the purest form of critical thinking?
OTOH I suppose when a proof uses a clever change in perspective, to show that it must be true (such as non-constructive proofs), it refutes many possible objections without ezplicitly considering them. So formulating those objections (or "criticisms") isn't needed.
Re: If not SICP, then what? Maybe HTDP?
#226Earlier quoted context omitted.
As I remember it, the book SICP itself wasn't really the core of CS61A... the lectures and slides were, and they drew off the concepts in SICP. No one read the book, but we learned from the (fairly good) lectures and explanations of the concepts, and especially the projects of course. Those concepts were and remain a foundation for how I think about programming—at the level of elegant structure and short modular thin…
Are you guys talking about an older iteration of 61A? It doesn’t really make sense to read SICP nowadays if the course is taught in Python.
Re: If not SICP, then what? Maybe HTDP?
#227Earlier quoted context omitted.
> Why are you enrolled in the degree course if you are critical of it instead of wanting to learn the material? Maybe you want to learn why it is true? Since Euclid, mathematics is about proof i.e. being convinced. If you really understand the material, you see it must be true - and need not blindly accept it. What is taught in high school and many university courses is not mathematics, but how to use it. Like how to…
> Maybe you want to learn why it is true? > Since Euclid, mathematics is about proof i.e. being convinced. If you really understand the material, you see it must be true - and need not blindly accept it. I agree. Learning mathematics means learning the proofs. This is pure learning and has nothing to do with critical thinking (at least to me and I am a mathematician).
Please keep in mind that you therefore have an inevitable non-zero amount of survivor bias there, and may have some trouble seeing why everyone else had trouble with the material.