Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

81–90 of 227 posts

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

#81

Earlier quoted context omitted.

> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce…

So that’s where Google- and all of the tech companies aping Google- got their interviewing style from.

Hah! I do wonder if it isn't simply human nature though, something we actively have to unlearn.

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

#82

Earlier quoted context omitted.

I grew up bothered by this on many levels. Not only some of us feel negatively for the struggle. I believe that ~learning the results teaches less than learning how to solve it. I does accelerate learning and allow people not to reinvent all 4 wheels... but reading old papers (there's a video on Newton's very own notebook, it is so damn different from anything I've ever read about physics) tickles another part of you…

Similarly, a lot of James Clerk Maxwell's writing can be found on Archive.org, and it's amazing: https://archive.org/search.php?query=maxwell%2C+james+clerk&...

It's not unusual that original scientific works are more clear than the later works of people trying to explain them.

The original author has to persuade people, and convince people who aren't familiar with them. The "pedagogical" author later is in a more clear position of authority and doesn't need to work as hard.

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

#83

When I started my Bachelor in Italy (Bologna) I had actually not enrolled yet to the degree, and I was instead following both Computer Science and Philosphy. My plan was to continue both of them, or to choose one. We had this first year programming course taught by a fairly younger teacher (39), Ms Busi: I was expecting not much from it because I thought it would be an introductory course on programming OOP stuff wit…

"Indeed, the course did upset people. I remember how people constantly complained how shitty this decision was, how "people in the 1st year engineering classes are doing real Java programming while we do this shit no employer asks for", some noted how the language was stupid, or in the best case just a toy, useless in "the real world". Thing got worse when some people realized that, contrary to their expectations, they did not know how to program, since they could not do eg. graph traversals once that was stripped of its OOP or Java-like envelope - "I will fail the year because of the bloody scheme!", they would say."

This is a perennial problem with computer science programs everywhere. The irony is that the department will have employers banging on the doors trying to hire graduates while the students complain no one will hire them because they're wasting their time on "toys"; no one seems to notice the relationship.

Hopefully, the problem will go away with the removal of things like SICP and the introduction of Python as you mention.

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

#84
Everyone on here is very excited about HTDP. You are mostly very smart people, and not representative of the typical CS student starting off. Many of you are driven and have rich STEM backgrounds that you draw upon. Therefore, I want to point out that there is no substantial evidence to prove most of the claims of "success" that the HTDP community claims, with regards to novice learners. There are certainly people who HTDP works amazingly for - I have met many brilliant folks who it resonates with. But I have met far more students who it does not work well for (I would describe them as having almost low-key PTSD from their CS1). The curriculum is too artificial and disjoint from the rest of their CS degree. I have met instructors who make it work fabulously, and their students apparently really buy into it. But overall, the claims that HTDP leads to better students is not proven by any literature I can find.

The closest thing I can find for good evidence is Fisler '14 [1], which did indeed suggest that HTDP teaches Functional Decomposition in such a way that CS1 students are better able to tackle short-but-complex problems by the end of their CS1. I find this work compelling, and I look forward to applying the ideas inherent to my own courses. However, in the decade-plus that HTDP has been around, I have not been able to find any long term studies that back up the slew of claims made about how we "should" teach CS1. Language and paradigm arguments in general have not really born out any evidence[2].

I'm not saying HTDP is bad or Python is good or C++ is ideal. I'm saying we don't know much about any of this stuff. Relying on theoretical arguments is dangerous when it comes to pedagogy. For every positive experience you can share about HTDP, I can share a negative experience. It's great if you found a curriculum that works for you. But be very, very careful about whether you believe that curriculum should work for everyone.

[1] https://dl.acm.org/citation.cfm?id=2632346

[2] https://www.researchgate.net/publication/329544316_Introduct...

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

#85

> If not SICP, then what? Maybe HTDP? I can recommend "Concepts, Techniques, and Models of Computer Programming" (CTM or CTMCP). Book's page: https://www.info.ucl.ac.be/~pvr/book.html Quote from www.c2.com: "Like SiCp, CTMCP is first and foremost a book on programming, not on Oz or Scheme or anything else. And if SiCp is the reigning king of such books, CTM is a worthy challenger to that particular throne."

On https://teachyourselfcs.com/ CTM is recommended if you find SICP too easy

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

#86
Working through SICP my main issue was the almost unbounded time commitment- like it will take you between a month to two years. I remember there was a trivial problem that took 5 minutes then apropos nothing the next problem bascially required you to invent the concept of numbers as functions in lambda calculus and required a two day diversion just to understand the answer. Even the best programmers I’ve known who’ve done it have said its been a multi month process and without a teacher its so easy to get bogged down.

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

#87

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

Knuth's math textbook has commentary from his students in the margins. Some of it is hilarious.

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

#88

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

The Feynman Lectures on Physics is an amazing second book for each course. The usual combination in my university for a Physics course for a degree in Physics is

* The "main" book of the subject

* The Landau book about it

* The relevant chapters of The Feynman Lectures on Physics

* The Shaum's Outline book about it.

The idea is that you study from the main book, and use the Landau book as an auxiliary short version with only the important points. The Shaum book has a lot of exercises. [Some people don't like to recommend Shaum's book.]

After that, you can read the relevant chapters of the Feynman book. It's like a book with fairy tales for physicist [or physicist students] that you read before going to bed. Each chapter is amazing and you enjoy it a lot, but it is very difficult to study using it as the first read about the topic. It's very useful to have a deep understanding of a few difficult key topics, after you are familiar with the subject and the mathematical part.

[I really grok the difference between phase velocity and group velocity reading the Feynman. The definition of each velocity is easy so it's not so difficult to pass the exam, but understanding what they really mean took me a few years.]

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

#89
post #39

Both SICP and HTDP are very good books. SICP has little more 'attitude' in it, but I think its neutral feature. If you want to learn programming as something between algorithms and programming languages, I suggest these four 'Lisp' books: 1. SICP (Structure and Interpretation of Computer Programs) 2. HTDP (How to Design Programs) https://htdp.org 3. LiSP (Lisp in Small Pieces), 4. PAIP (Paradigms of Artificial Intell…

There are several more books. For example:

https://www.goodreads.com/book/show/1032517.The_Schematics_O...

Also in that league, but using a different language Mozart/Oz:

https://www.info.ucl.ac.be/~pvr/book.html

German: Schreibe Dein Programm

http://www.deinprogramm.de/sdp/

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

#90
post #79

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

> 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…

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. I’m not reading the book to learn the theory of compilers; I’m reading to book to write a compiler.
Post reply on HN