Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

151–160 of 227 posts

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

#151
post #145

I think programmers reaction to the mathematics in SICP is completely hysterical - in the sense of hysteria, not comedy. For example, the author-professors who wrote HTDP, quoted at length in this article complain about using 'complex domain knowledge' and the author of the blog post does as well, but the running example used is literally arithmetic . In particular: Section 2.1 starts by building a data type of ratio…

"already understands these relationships so well" Is that true for complex numbers?

Perhaps the thing people potentially already understand well is the arithmetic?

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

#152

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 depressed in a "real" programming job.

Whether it's hard to go the other way doesn't really matter. There's no pressure to go the other way. The only healthy place for computer scientist types is academia, or maybe certain R&D positions. These are few and far between.

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

#153

> 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."

CTM isn't an intro to program design concepts. It's a survey of programming language concepts, which presumes more knowledge of programming techniques and problem modeling and formal CS theory than a CS1 course should.

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

#154
SICP is not just a book. They are lectures you can freely watch on the Internet.

For me is one of the most interesting lectures I ever watched. Requires effort because it makes you think, and this is one of the great things about it.

Not for beginners? Yeah, like structural engineering, physics, biology,chemistry, writing, or anything worth something in life you need to work on it, have interest and abilities doing that if you want to become a professional.

Some people want to make University so easy that the title becomes worthless, like happened with University titles inflation in the UK.

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

#155
post #145

I think programmers reaction to the mathematics in SICP is completely hysterical - in the sense of hysteria, not comedy. For example, the author-professors who wrote HTDP, quoted at length in this article complain about using 'complex domain knowledge' and the author of the blog post does as well, but the running example used is literally arithmetic . In particular: Section 2.1 starts by building a data type of ratio…

"already understands these relationships so well" Is that true for complex numbers?

Complex numbers as 'cyclic numbers' is not widely understood. What is understood is how they fit into the arithmetic 'hierarchy': how the real numbers embed into the real axis, and how the operational rules for addition and multiplication work. However SICP also asks us to implement the polar form of C to illustrate multiple representations of the same data type, so I have to admit that part might require some additional explanation for many students.

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

#156

I think programmers reaction to the mathematics in SICP is completely hysterical - in the sense of hysteria, not comedy. For example, the author-professors who wrote HTDP, quoted at length in this article complain about using 'complex domain knowledge' and the author of the blog post does as well, but the running example used is literally arithmetic . In particular: Section 2.1 starts by building a data type of ratio…

I agree. Currently working through the book in Javascript [1], and there isn't a crazy amount of math.

Newton's method in the first chapter was a little rough for me, but after that it's much more about exploring ways of representing data. (At least so far... I'm almost through chapter 2).

1. https://github.com/ahuth/sicp

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

#157
post #127

"that make me jump through intellectual hoops made of mathematics" There is actually surprisingly little mathematics in SICP. What is does have are mechanisms that are then analysed and modelled, after which the mental model is adapted so it can be turned into computational model that is a faithful representation. Some of the presented mechanisms are mathematical in nature, but you don't need a mathematical backgroun…

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…

Well said.

I'm reading the book now (and watching the lectures), and can't imagine trying to go through it as an undergrad.

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

#158
post #9

I can fully recommend HtDP for beginning programming - tried various options for my 11 year old. I needed it to involve very little help from me - tried some scratch, mit50x, both which helped but did not spark and sustain interest. Then we came across https://www.edx.org/course/how-code-simple-data-ubcx-htc1x - love it and does not need any help from me :) planning to move on to https://www.edx.org/course/how-code-c…

Do you mean the online HarvardX CS50 course? I started it when MOOCs were first appearing, and it includes Scratch. It looked very enthusiastic and buzz-worthy to me (which can be very good for a lot of people). However, past students doing a music and dance routine on stage about how exciting it had been, and the first lectures concluding with announcements of pizza parties with Facebook recruiters was too much for me, in that I felt too old.

Alternatively, the MITx 6.002 course on Computational Thinking is also for undergraduate students, but it had a greater focus on programming being integral to the sciences and other fields. I don't recall the the curriculum exactly, but even though the course is an introductory one I think some of the concepts might be a little daunting for a young teenager.

In addition to the UBC courses, another introductory treatment that won't overwhelm to a committed young learner is the DartmouthX C Programming with Linux. One of the instructors, Petra Bonfert-Taylor, taught a very accessible introductory complex analysis course on Coursera, and seems especially interested in first experiences students have with topics so that they are not discouraged. She has written a number of articles on teaching an introductions to new subjects.

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

#159

Earlier quoted context omitted.

Honestly, there's just a tiny bit too much of real number knowledge required in SICP. I wasn't good enough to really derive newtonian method on my own. For someone looking to develop applications I believe it's completely off the map. HtDP requires no arithmetic from what I recall. Which makes it more focused. Now SICP was for EE doing software. I suggest to everyone to learn EE, even partially, it's surprisingly use…

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

This comic is brilliant!

I ended up being a programmer but I graduated with an Electrical Engineering degree.

What's interesting is that I generally don't recall fundamental physics or applied coursed having this attitude, i.e. nobody expects students to understand theories without proper context set up. Physics is generally taught from experiments.

I believe math is mostly guilty here :-) For some reason most of school math is taught as a bunch of soulless abstract sybmol manipulation. No proofs, no reasoning, pure memory-based excersises.

Then you come to a university and they just go on. Proofs-proofs-proofs, but with the same mechanical approach. No motivation, no context, just endless calculus variation.

Yes, this really showed how much information I can put into my memory. But I only started to get math many years and books later.

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

#160
post #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 wh…

I will say that the people who develop HTDP are the some of the people who spend the most time writing about pedagogy in computing education. Felleisen in particularly has written a lot on the subject: http://www.ccs.neu.edu/home/matthias/Thoughts/Developing_Dev...

> The curriculum is too artificial and disjoint from the rest of their CS degree

I would then argue the problem is the rest of the CS degree. Whether HTDP "works" or not, the principles espoused in the course are the same ones you'll encounter over and over again throughout your professional career. As far as I can tell, the only difference is the HTDP (and SICP) folks are introduced to them from day one while others learn through years of experience. And this is the problem about the CS101 course "working for everyone": does it work because you're only delaying the introduction to the difficult concepts endemic to software development? If a student can pass CS101 just by virtue of being able to string together a compilable C++ program, is that really for the best?

Anecdotally, I got a 2 on the CS AP test, which was enough to make me second-guess my major. Luckily, I went to an HTDP school where the professor assured me not to worry about it -- and sure enough, I aced the CS101 course and went on to have a successful career writing code.

Post reply on HN