Welcome, Guest. Please Login
 
  HomeHelpSearchLogin FAQ Radified Ghost.Classic Ghost.New Bootable CD Blog  
 
Pages: 1 2 
Send Topic Print
HtDP and SICP - compare and contrast (Read 20978 times)
Nigel Bree
Ex Member




Back to top
HtDP and SICP - compare and contrast
Feb 4th, 2009 at 4:09pm
 
Rad wrote on Feb 3rd, 2009 at 9:30pm:
a characterization of the skill-set of somebody who works thru the HtDP course

I couldn't say for a couple reasons.

Reading a book is about three main things; the text itself, the unwritten subtext, and the context brought to it by the reader. The result of that interaction can be all over the map - how deep a subtext is present for instance, and how well the reader perceives it and how it interacts with their context.

With SICP, the subtext of the book is exceptionally rich. Small, apparently throw-away comments made in the text can be alluding to astonishingly deep insights about software and the process of creating it. The people who, like me, rate it as perhaps the best book on software development ever written are people who interacted deeply with that subtext (helped by coming to it with a context which make us receptive to its lessons). Others can find the text itself too frustrating to get there, or don't yet have the context to be able to appreciate the subtext.

Really doing HtDP's potential as a book justice would need a deep reading to dig down into that; taking the time to do the exercises, and really trying to engage fully with it and everything it has to offer. And of course, that's just its potential, which some readers will realise and some won't.

The more general point, is that the reason I recommend this kind of material in the first place is not - or at least shouldn't be - really about skills, in the sense that one might list "I did X for Y time" experience on a resume, but rather the understanding and insight which will underpin continuous growth in capabilities throughout a career.
 
 
IP Logged
 

Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #1 - Feb 14th, 2009 at 3:26pm
 
Quote:
how well the reader perceives it and how it interacts with their context

SICP is an introductory programming course, yes? Which would infer students/learners taking the course would have as their 'context' little-to-no context. Any 'context' would be from self-study, high-school programming courses (not very popular, I believe) and/or math as it applies to programming .. yes? no?

Quote:
The people who, like me, rate it as perhaps the best book on software development ever written

This was an eyebrow-raising statement .. especially coming from someone with your background. Do I understandly correctly by inferring the subtext of what you have said here that you feel SICP is best set aside until someone has a requisite amount/level of experience? (re the 'context' statement made earlier).

Quote:
doing HtDP's potential as a book justice would need a deep reading  

I appreciate your honesty. I think sometimes I feel you know all-things programming .. simply by waiving your hand across a particular text.

I noticed today on this page: http://filehippo.com/download_python/ .. where it said:

Quote:
can be learned in a few days

.. couldn't help but compare that to the HtDP course which supposedly takes a typical college student an entire semester.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #2 - Feb 14th, 2009 at 3:33pm
 
Quote:
but rather the understanding and insight which will underpin continuous growth in capabilities throughout a career.

I've read other comments from ppl who've worked thru SICP and made similar comments .. that, even tho they've been programming professionally for years gleaned new insights while reading SICP that allowed them to approach things they previously founded daunting with a new-found ease.

.. which is one of the reasons I am attracted to texts like these. Insight is a beautiful thing, and texts that can catalyze it are valuable .. which I why I like to research books on a topic before spending time reading them.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #3 - Feb 14th, 2009 at 3:39pm
 
Quote:
Yes. Lisp (first proposed ~1958) was basically just a computer version of the lambda calculus (~1936), although actually the first Lisp interpreter in practice didn't match it as closely as it was intended. Lisp is really nowadays best thought of as a name for the entire family of computer languages which are based on the lambda calculus; the details of the differences between them are not that important, you should concentrate just on Scheme.

This answered a lot a questions .. many I didn't even know I had. The light went on.
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: HtDP and SICP - compare and contrast
Reply #4 - Feb 14th, 2009 at 6:44pm
 
Rad wrote on Feb 14th, 2009 at 3:26pm:
SICP is an introductory programming course, yes?

In the MIT course videos that you referenced on your blog, the instructor seems to infer that the students in the class have some experience with other languages.  Fortran is mentioned a few times as a language that it is assumed the students have experience with.  So, I don't think that was the first class in the CS corriculum.  I'm most of the way through video 2b, and the focus seems to be on managing complexity and higher order procedures rather than an introduction to new CS students.

The videos show their age with the mention of Fortran.  I don't know anyone who works with that now days.  My mom said she learned it in college and hasn't touched it since, and she manages a small team of programmers using a wide variety of languages (cobal, java, perl...) so I get the impression it has fallen out of favor.  Most of the modern languages I've worked with like C, Perl, and Ruby are all capable of doing the things that the instructor mentions Fortran cannot (such as making combinations of combinations and treating functions like 'first class citizens.')  Although, admitedly, some of them don't do it as seemlessly as LISP seems to.  

In Perl, for example, you cannot make a list of lists, but you can emulate it by making a list of the addresses of other lists.  Same with functions - you can't assign a function to a variable and pass it as a parameter, but you can assign a reference (like an address) to a function to a variable, then pass that variable, achieving much the same effect.

Rad wrote on Feb 14th, 2009 at 3:26pm:
Python ...can be learned in a few days... but compare that to the HtDP course which supposedly takes a typical college student an entire semester

I've been looking at Python a little bit, too.  I think that what they mean is that if you are already familiar with Basic or Perl or something or have a programing foundation, then it would only take a few days to learn the syntax of Python.  I bought Programing Python and have been working through that.  (http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/188790...)  It is written as a first semester CS text-book, and the author mentions in the forward that when he teaches from it himself, he doesn't make it all the way through his own book in one semester.  

HtDP is probably along the same lines - the syntax of any language probably only takes a few days worth of time.  It is the concepts of how to design programs that consumes the rest of the time.

(By the way, I'm on the fence about if I'd recommend Programming Python.  It assumes zero experience with programing/scripting/computers and so moves slow for me, but I never did get a proper introduction to CS and still feel like it will be good for me to make sure I've got that foundation.)

Rad wrote on Feb 14th, 2009 at 3:26pm:
Do I understandly correctly by inferring the subtext of what you have said here that you feel SICP is best set aside until someone has a requisite amount/level of experience?

I am very interested in Nigel's answer here, but can also provide my own insight.  I have limited programming experience - I've dabble with it off and on since 5th grade but never taken it seriously.  I'm 2 full lessons into the MIT videos (through video 2b.)  So far, I'm keeping up.  It has not been difficult to understand the lessons.  In fact, there have been times I felt they belabored their point a bit.  So, I think that you could likely understand what is going on.  Now, that doesn't mean you will get the full insight.  That is where I'm interested in Nigel's opinion.

Personally, I think a 'both' approach is best for me.  I'm going to work through the course now and take what I can from it.  In a few years, when I have a more solid foundation, I'll review it again and see what new things I pick up.  I know my physics professor said he had to take Electricity and Magnetism about 3 times over 10 years to *really* know it.  Each time took him to a new level of understanding.  
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #5 - Feb 14th, 2009 at 6:59pm
 
MrMagoo wrote on Feb 14th, 2009 at 6:44pm:
I'm most of the way through video 2b

You are kickin' butt. I'm naturally interested to hear your thoughts as you work thru .. especially if you get flashes of intuition ('ah-ha' insights). I mean, you have to sit up and take notice when so many people claim it is the best-ever (introductory?) course on programming. Makes me want to hardware the course into my brain.
 
WWW  
IP Logged
 

Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #6 - Feb 14th, 2009 at 7:03pm
 
MrMagoo wrote on Feb 14th, 2009 at 6:44pm:
The videos show their age with the mention of Fortran.  

They mention it, but don't USE it, right? I think Fortran was a teaching language prior to Pascal, which is what I had (for the second half of CS-1A, after we learned what memory and hard drives and CPUs did).
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: HtDP and SICP - compare and contrast
Reply #7 - Feb 14th, 2009 at 9:30pm
 
Rad wrote on Feb 14th, 2009 at 7:03pm:
They mention it, but don't USE it, right?

No, no.  They use LISP.  They use Fortran as an example of a language missing much of the deeper power of LISP.

Rad wrote on Feb 14th, 2009 at 7:08pm:
...the first time thru we establish 'buckets' ( a filing-system of sorts) into which we deposit new info. Each subsequent pass allows us to refine our filing system and deposit more info into each bucket.

I think your 'buckets and filing system' might be a good illustration of the 'context' Nigel was talking about students bringing to the material.  
 
WWW  
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: HtDP and SICP - compare and contrast
Reply #8 - Feb 14th, 2009 at 11:43pm
 
Rad wrote on Feb 14th, 2009 at 3:26pm:
SICP is an introductory programming course, yes?

Yes, but for first-years at MIT, the most prestigious school for engineers in the world, where a good number of the greatest minds of the 20th century have studied, researched, and taught.

There is also a simple thing to bear in mind about most college courses, which is that students rarely appreciate all that a course has to offer precisely because they don't have sufficient context to realise the importance of some of the content, or have other goals in taking a course than to advance in a field. Lots of important knowledge links together in ways that are obvious once seen, but in order to be seen one needs a certain perspective that is unattainable to most novices. That doesn't mean that college courses shouldn't present such things at all - rather, it's that they serve diverse purposes for diverse students. Some students aren't interested or able and won't progress and others will drain every last drop of insight and who are destined to go on to greater things, and so finding out which students are able to grasp the harder concepts is also part of what the courses are there to do.

Rad wrote on Feb 14th, 2009 at 7:03pm:
I think Fortran was a teaching language prior to Pascal

Not at all. FORTRAN was one of the earliest computer languages and was not a teaching language at all but aimed at doing serious numerical work with high performance (hence the name, FORmula TRANslation, coming from its aim as a vehicle for engineering mathematics). Indeed, it's arguably still one of the most important; partly that's due to the fact that having been around since 1956, there is a staggeringly large body of code. A good deal of numerical supercomputing - modelling weather and climate, simulations of nuclear physics, lots of astrophysics, and so forth -  is still largely done with Fortran.

Fortran 95 updated Fortran with object-oriented programming and Fortran 2003 has evolved it further still. It's still used, still relevant.
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: HtDP and SICP - compare and contrast
Reply #9 - Feb 14th, 2009 at 11:58pm
 
Rad wrote on Feb 14th, 2009 at 3:26pm:
Do I understandly correctly by inferring the subtext of what you have said here that you feel SICP is best set aside until someone has a requisite amount/level of experience?

Not at all. Merely that you'll need a lot of experience to appreciate all it has to offer. As long as you have the ability or experience to connect with it at some level, you'll learn some very valuable things. You may or may not grasp the real jewels it has to offer the first time, but that does not make it any less worthwhile.

It will, however, reward you with even more if you return to it in a couple of years once you do have that context. Reading it again, a sentence that will have generated bafflement or a shrug the first time around will touch off a moment of sudden recognition, and ideally a new understanding will become crystal clear.

By the way, as is made clear on the main page videos they were not given to the regular MIT students, but are recordings made by a cadre of HP engineers for whom a private version of this course was given. That's why the videos do assume the prior experience they do, because the audience had it.
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: HtDP and SICP - compare and contrast
Reply #10 - Feb 15th, 2009 at 12:08am
 
Rad wrote on Feb 14th, 2009 at 3:26pm:
couldn't help but compare that to the HtDP course which supposedly takes a typical college student an entire semester

Bear in mind that university undergraduates regardless of ability have a lot on their plate; they are expected to work on half a dozen or more courses (often in diverse fields) over that time, and that course loads are typically set and paced by university regulations for "regular" students. The time requirements for the HtDP (or SICP) courses are there primarily because the coursework - represented by exercises in the book - need to be completed by students outside lecture time and returned for grading.

So, in one sense the difference in time requirement isn't as great as it might first appear. The difference is still real though, but it's more a qualitative one - because all the kinds of course that do promise that kind of instant reward aren't aiming to instil any insight at all. They are merely "how to do simple things in a getting-by subset of the language", and nothing more than that.
 
 
IP Logged
 

MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: HtDP and SICP - compare and contrast
Reply #11 - Feb 21st, 2009 at 12:17am
 
Breaking off this discussion from the original thread to try to keep the topic/thread and thread length both down to manageable levels.  I left all the original posts in tact in the original thread, tho, cuz I couldn't surgically remove them without loosing some context.

For reference, original thread is here:
http://radified.com/cgi-bin/yabb2/YaBB.pl?num=1232324869/0
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: HtDP and SICP - compare and contrast
Reply #12 - Feb 21st, 2009 at 6:35pm
 
Ok, so I'm through video 4a of the SICP series.  Approaching the halfway point.  It is definitely different than any other instruction I've read on programing.  

Every other instruction I've been through showed you how the language was and then proceeded covering how to solve tasks with that language.  You get used to figuring out how to force the computer to do what you want through brute-force.

As Nigel already mentioned, LISP is redicoulously simple as a language.  There are only a few primitives provided by the language and I've only seen really one structure type.  Most languages have variables, arrays, hashes, for loops, do loops, until loops, functions, classes, private methods, public methods, instance variables, class variables, and lots of other built-in stuff.  In contrast, so far, all we've seen in LISP is variables, pairs, and function definitions.

Despite its limited scope, LISP seems incredibly flexible.  All of the stuff its missing that other languages have could easily be constructed in a few lines of code, so it never feels underpowered.  In contrast, its simplicity seems to leave open every option.

What I'm really enjoying about the course is the way they approach writing programs.  I was hoping it would teach me techniques for how to approch writing programs.  I expected things like top down design, and prototype and spiral design to be covered extensively.  In this case, they seem to just assume the student can grasp those topics as obvious (and they really are sort of natural ways to solve tasks and should take much explanation.)

What they push instead as a design philosophy is writing code to extend LISP to have the language you need to ask the computer to solve your problem naturally for you.  It's kind of the way I've always felt I wish I could program - the way I wanted to approach problems.  Until know, I lacked the skill-set to understand it was possible, so I just muddled through the task as best I could with what the language of the day provided (like I had been taught.)

Using their stated design philosophy of 'design by wishful thinking,' they kinda just will the program into existance.  Rather than think about how a program can be solved with the tools available, they think about how they'd would like to solve it and then invent the tools that are necessary.  The result is compact, elegant solutions to problems that start out looking really thorny.

The only thing I don't like about this course is that at times it makes me feel stupid.  Sometimes I'm mad at myself for not seeing how to do this sooner.  Sometimes I'm upset I have to watch the video twice to really get the point.  Overall, though, its worth the understanding I'm developing.  

And to think I'm not even working through the text - just watching the videos.  I am going to try to start making time for the text in the next few weeks.  Makes it hard to imagine what they cover in the upper-level classes...
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: HtDP and SICP - compare and contrast
Reply #13 - Feb 21st, 2009 at 8:59pm
 
Just watched 4a again.  Definitely glad I watched it a second time.  One of those things where you go from ignorance on a subject to confusion on the subject the first time through.  The second time you sort out some confusion and learn something.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: HtDP and SICP - compare and contrast
Reply #14 - Feb 22nd, 2009 at 4:24pm
 
MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
Most languages have variables, arrays, hashes, for loops, do loops, until loops, functions, classes, private methods, public methods, instance variables, class variables, and lots of other built-in stuff.

Your ability to wield these terms show how much further along you are than I am. I mean, learning the terms that a new disciple uses is a significant part of learning that disciple (such as Programming).

BTW thanks for taking the time to post your progress. It's encouraging for me to progress down the same path.

MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
Despite its limited scope, LISP seems incredibly flexible.

SICP actually uses (technically speaking) Scheme, right? (which is a variant of Lisp)

MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
What I'm really enjoying about the course is the way they approach writing programs.

That's a sentiment everybody seems to echo. I think that would be something you could apply to *any* programming language.

MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
In this case, they seem to just assume the student can grasp those topics as obvious  

I'm not so sure I will be one of those who will find this intuitively obvious.

MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
The result is compact, elegant solutions to problems that start out looking really thorny.

Exciting. I like the feeling of competence .. of knowing how to bring an elegant solution to a thorny problem.

MrMagoo wrote on Feb 21st, 2009 at 6:35pm:
The only thing I don't like about this course is that at times it makes me feel stupid.

To be contrasted with the Python book you're reading, which you find too easy. For me, this just means I need to watch the video again. =)
 
WWW  
IP Logged
 
Pages: 1 2 
Send Topic Print