[racket] Math Guidance

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Nov 3 23:41:27 EDT 2010

People have replied to the more general question and there is not much more to add. 

As for HtDP and math:  the generative recursion part contains a number of math-y examples because generative recursion is highly useful there and because -- in principle -- the kind of kids who go thru this material should have seen or should see these examples. It's also the last remnant of constraints at Rice on the introductory programming course -- show them some of the mathematical algorithms they will need to understand. CS was created out of applied math and adaptive integration, Gaussian elimination, and things like that belongs into the basic tool box of students. Unlike Java or C++ courses, we easily had the time to cover these and some more. 

The conclusion is that you can safely skip most of these sections in part V and still safely make it thru the rest of the book. 

Good luck -- Matthias

p.s. And btw, what you did learn in parts I through IV is MATH, but you obviously learned it in a way that didn't scare you. So perhaps it is really more of a question that when you recognize that you're doing math, you're scared but when you think you're not doing math, you're fine. Don't worry, we do this to kids too and as Neil says these 12-year olds are such sponges, they are asking for n-ary functions, and sines and cosines, and geometric concepts -- just to make their games look cooler. What they don't know is that they are asking for more math. 

On Nov 3, 2010, at 4:43 PM, Luke Jordan wrote:

> Hi, I hope that this is an appropriate topic for this mailing list. I'm in need of some direction.
> I've been programming recreationally for a few years and I'm beginning a serious study with the goal of doing it professionally. One of my early goals is to complete HtDP.  I'm full-time employed and studying programming on my own in my free time. I'm into chapter 27 and the math is beyond me.  Math has always been a challenge for me (I majored in music).
> It took me over 10 hours to solve the circle-pt example (27.1.2).  Now I'm struggling with the recursive tree example (27.1.4).  Looking further into generative recursion section was not an encouraging experience.  I can't complete these examples, not because I can't program them, but because I don't have the math to know what I need to program. Now I assume that if I want to be a developer, I need to learn at least enough math to be able to follow an introductory text on the subject. And while I don't have a particular aptitude for it, and don't intend to seek employment in an area that depends heavily on skills in advanced math, I'm eager to learn what I have to learn to become a good enough programmer to reasonably expect to make a living of it.
> So I'm trying to figure out how to go forward.  There are a lot of opinions scattered about the web, but it's difficult for me to know what to take from that.  Should I make a formal study of math (and if so, what math?) or just learn it as I go along based on what programming I am studying?  What math do I need to get through HtDP?
> Thanks--
> Luke
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

Posted on the users mailing list.