Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

201–210 of 227 posts

Re: If not SICP, then what? Maybe HTDP?

#201

Earlier quoted context omitted.

The motivation for using that example in particular is, I believe, that it's computing a fixed point - which is an idea that came up several times in the course in increasingly general settings. First you do the concrete example of newton's method, then do a more general fixed-point (higher order) function, and a more general newton's method. Later on the Y-combinator is presented as computing the fixed point of an (…

OK, that's interesting. I should go back to it. But it would be good to hint about it's relationship to later material. Perhaps it's the timing/context; I had an very odd lecturer for numerical methods.

The first genralization is in section 1.3.3 and 1.3.4

https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

Unfortunately I couldn't find the material about interpreters - my memory of it is them discussing it in the lectures so perhaps it never actually made it in the book, or was only in the 1st edition. Those lectures are available on youtube if you want to find it.

Re: If not SICP, then what? Maybe HTDP?

#202

Earlier quoted context omitted.

I happen to best learn through video lectures more than reading. Thank you for your effort. I am starting with these.

Could try both, the book (HtDP) is more rigorous than those two MOOCs as they're meant just as an intro where you progress into many more courses (as part of the micromasters on software development) while the book is a full grounding in CS 101. Somebody correct me if wrong but I don't remember any big-O analysis in the MOOCs or the parsing XML chapter, traversing graphs, the content on fixed-size arithmetic, plus th…

Agreed. But I would still recommend those interested to start with the online courses. The reason is that they hammer in the core principles that underlie all of systematic program design, with plenty of hand holding and exercises, and spending the right amount of time on each new concept, which is a lot harder with the book alone. The instructor is so good that in 10 mins one will understand what would otherwise take more than one hour with the book, at least in my case. After completing the moocs one will have a rock solid foundation from which to tackle more ambitious problems, including the ones you mentioned. Only then would I open the book.

Re: If not SICP, then what? Maybe HTDP?

#203

There are two models for CS education. One model is for students who want to learn the theories of computer science and be computer scientists , and the other is for students who want to be programmers. SICP is the foundation for people who want to be computer scientists. That’s not everyone. But from what I’ve found, all the top CS schools create computer scientists, and the other CS schools create programmers. Whil…

> 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 :)

Re: If not SICP, then what? Maybe HTDP?

#204
post #24

I haven't read HTDP and can't authoritatively comment on it /have no idea how it compares to SICP, but I found this statement pretty ridiculous: > While SICP (yes, everybody uses the acronym) is considered a holy grail for serious computer scientists, it's hella hard to figure out. For me, programming "methods" that make me jump through intellectual hoops made of mathematics make it hard for me to learn the actual /p…

HtDP is about systematic program design, not just coding; after reading it one will know how to start any new program, no more staring at a blank screen.

Re: If not SICP, then what? Maybe HTDP?

#205

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…

Google is full of computer science types. I think it is safe to say if all you are is a code monkey you will not make it in. Fortunately for you there are a million other employers that will be happy to hire you to do some crappy programming. But let us not pretend that you are anything but a code monkey in this case.

Rob Pike on Go's simplicity:

> The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

via http://nomad.uk.net/articles/why-gos-design-is-a-disservice-...

Re: If not SICP, then what? Maybe HTDP?

#206

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 anything it’s ocaml.

Re: If not SICP, then what? Maybe HTDP?

#207
post #181

A couple of historical clarifications to Sedgewick Wayne's points: > [SICP] set the curriculum for "beginning" computer science > All [examples and exercises] use complex domain knowledge. ... Some early sections and the last two chapters cover topics from computer science ... Why the square quotes around "beginning"? At the time the course, 6.001, was launched it was quite reasonable to assume that an MIT undergrad…

All very interesting, but what do Sedgewick and Wayne have to do with any of this? Your first quote is from the post's author (Steven Rosenberg says the site header), and the second quote is from the authors of How To Design Programs (Felleisen, Findler, Flatt, Krishnamurthi).

Re: If not SICP, then what? Maybe HTDP?

#208
post #207
post #181

A couple of historical clarifications to Sedgewick Wayne's points: > [SICP] set the curriculum for "beginning" computer science > All [examples and exercises] use complex domain knowledge. ... Some early sections and the last two chapters cover topics from computer science ... Why the square quotes around "beginning"? At the time the course, 6.001, was launched it was quite reasonable to assume that an MIT undergrad…

All very interesting, but what do Sedgewick and Wayne have to do with any of this? Your first quote is from the post's author (Steven Rosenberg says the site header), and the second quote is from the authors of How To Design Programs (Felleisen, Findler, Flatt, Krishnamurthi).

Thanks for catching that. Unfortunately it’s too late for me to edit my misattributions.

Re: If not SICP, then what? Maybe HTDP?

#209
post #127

Earlier quoted context omitted.

I agree with everything you say. Just want to add that SICP had a context: it was designed to be an introductory computer science course designed for university engineering students (including CS), almost all of whom take calulus in their first year, if not earlier. This was probably a valid assumption back in the day, but clearly there is a more diverse audience now. Anyway, I absolutely agree SICP was never about S…

Indeed, the context reflects the origins of CS departments. They are always were part of physics school and later electrical engineering. All the famous CS people over say 60 started in physics or EE.

This might be true in America but in Europe it is common for the CS department to have been an offshoot of the mathematics department.

Re: If not SICP, then what? Maybe HTDP?

#210

Earlier quoted context omitted.

I quote "programs must be written for people to read, and only incidentally for machines to execute" fairly often to students, which is from the 1st ed preface.

That just shows that's as far as people get in the book!

I binged the whole thing on a long bus trip once. Didn't implement much of it, but enjoyed the read.
Post reply on HN