Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

101–110 of 227 posts

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

#101
post #94
post #68

Earlier quoted context omitted.

Domain knowledge vs. programming "in isolation" is a false dichotomy. Indeed, the programmer's business is to think about the domain in terms of computer science in the programming language of choice. It is sometimes a very complicated translation process, and the complexities do not necessarily come from the domain per se but often from requirements concerning the target platform, efficiency, precision, user interfa…

The "important part" is that the code solves the end user's problem while creating the minimum possible amount of new problems for them. Everything else is an implementation detail. Everything else that we hold so dear about computer science is only important insofar as it solves someone's problem.

It's not just about solving the end user's problem, it's about anticipating future problems and features. If all code was write-and-forget you'd be right, but in general you have to maintain and upgrade codebases over a rather long timespan. That's where "implementation details" matter a whole lot.

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

#102

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

[deleted]

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

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

So what is your point precisely?

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

#104
I have found that the best way of learning the HtDP approach to program design, at least for me (I find the book itself a bit dry), are the EdX "How to Code" free moocs [1] [2]. The instructor is fantastic. It completely changed the way I program and design.

If you like the approach and want to learn more, like, for instance, how to extend it to OO design, I list below links to several courses (most, except for the last one, offer enough material to complete them on your own, but I couldn't find any videos) at the university where HtDP's main author, Matthias Felleisen, is tenured (North Eastern). The courses are listed in the order in which they should be taken, and the rationale is explained by the professor in the paper "Developing Developers" [3]:

* CS 2500 - Fundamentals I [https://course.ccs.neu.edu/cs2500/]

* CS 2510 - Fundamentals II - Introduction to Class-based Program Design [https://course.ccs.neu.edu/cs2510/index.html]

* CS 2800 - Logic and Computation [https://course.ccs.neu.edu/cs2800/index.html]

* CS 3500 - Object Oriented Design - Spring 2018 (scaling up the 3 previous courses) [https://course.ccs.neu.edu/cs3500/]

* CS 4500 - Software Development [http://www.ccs.neu.edu/home/matthias/4500-f18/index.html]

[1] https://www.edx.org/course/how-code-simple-data-ubcx-htc1x

[2] https://www.edx.org/course/how-code-complex-data-ubcx-htc2x

[3] http://felleisen.org/matthias/Thoughts/Developing_Developers...

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

#105
post #61

Earlier quoted context omitted.

HtDP or none of them. Functional paradigm has two flavors: 1. Functions as first class objects in the language and enabling the functional style programming. 2. Pure functional programming. Not a style, its functional programming. IMHO learning the first kind helps relatively little when you want to learn second kind and vice versa. Lisp is multi-paradigm language or "Lisp paradigm" language family. Because functions…

So for second flavor, what would you recommend with focus on smallness of language?

I have no idea.

I have only read Thompson's Haskell: The Craft of Functional Programming and some old ML books I can't name. I have no idea if it's a good compared to other FP books.

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

#106
post #23

Earlier quoted context omitted.

They are stronger at thinking -- higher IQ for pattern matching, problem solving, and creativity. Better ability to remember something after just one or few exposures, and recognize it when it is hinted at indirectly. Better ability to visualize without being given illustrations. More able and willing to spend time and paper on working out missing details. Any or all of the above.

Source citing any or all of above properties?

Source: it's fucking MIT.

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

#107
Warning, anecdotes ahead:

I tried to read SICP after about 6 months to a year after learning my first language, and I couldn't get past the part where they turn a recursive function into a tail-call eliminated 'iterator' style recursive function. I understood what was going on, but I just couldn't grasp how to generalize it. Of course, I get it now; you just pass an extra variable in and use it like you would the `i` var in a for loop, but at the time I just couldn't grasp it.

I also had similar struggles with the early use of math problems as examples and other vaguely described algorithms.

Granted, my background is in Music, so I didn't have the domain knowledge that the author mentions, but programming is more about strategic and logical thinking, so I was perfectly able to do that even at an early stage.

I think MIT is right to think SICP is too much for a freshman. Hell, I was already graduated and applying for grad-school when I tried to read SICP and I still struggled.

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

#108

"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 do not understand the "domain knowledge" complaints.

So far I have found that the Wizard Book always provides the required algorithm, or enough discussion to work it out.

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

#109

I think it's worth pointing out why the author's of SICP themselves acknowledge why it was phased out. Praphrasing, it essentially boils down to the kind of applications developpers of today are writing. People are now mostly slinging libraries they have a superficial understanding of together in a black-box style. So for most proprammers there's a lot of prodding and tinkering and this isn't a skill that SICP teache…

I had a hallway conversation with Sussman a few years ago and asked him why SICP was phased out, and the above is exactly what he said in reply. He was not at all happy about the fact that many if not most engineers nowadays were being taught "tinkertoy" or "erector-set" engineering (pretty sure he said one of those words literally) rather than the fundamentals that would allow them to write their own libraries instead of hooking together libraries built by others and being adrift when they didn't work.

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

#110
post #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’v…

This last week I took an in-person class where we covered almost all of the book: https://dabeaz.com/SICP.html The instructor David Beazley very skillfully weeded out all the non-essential parts and added one amazing exercise where we implemented the lambda calculus and, funny enough, the ycombinator. Highly recommend it for anyone who desires to learn this material, can't find the time, and is willing to pay $2500 f…

link broken, gets 404
Post reply on HN