> With a computational approach, we can go “top down”, starting with libraries that implement the most important algorithms, like Fast Fourier Transform. Students can use the algorithms first and learn how they work later. This is exactly how I understood it. Three years back, WebAudio API was a new addition in browsers and I decided I should make something with it. I settled on building a Whistle Detector using a ci…
That's a very interesting comment to me because I may be perhaps the opposite. I got a slow and frustrating start learning application development--I wasnt getting it. I felt I was following instructions on how to write esoteric insutructions and not understanding how it worked. I found the book Code by Petzold and read it. Then I discussed some of this with other developers and realized they were even more clueless…
Programming as a Way of Thinking
121–130 of 133 posts
Re: Programming as a Way of Thinking
#122Earlier quoted context omitted.
That's a very interesting comment to me because I may be perhaps the opposite. I got a slow and frustrating start learning application development--I wasnt getting it. I felt I was following instructions on how to write esoteric insutructions and not understanding how it worked. I found the book Code by Petzold and read it. Then I discussed some of this with other developers and realized they were even more clueless…
I learn best when I build something that illustrates the theory. Reading gives me a dim idea, but building something (and freely experimenting on the way) teaches me how it works.
Re: Programming as a Way of Thinking
#123"This is how programming should be taught. You should do stuff way before you can figure out how it works. For a while, you should intentionally be ignorant about distracting details."
"You should, intentionally and tactically, decide which piece of information you can do without, for now. But you should also, intentionally and strategically, decide when to pay back that debt."
Re: Programming as a Way of Thinking
#124> The languages I am calling modern are not particularly new; in fact, Python is more than 25 years old. But they are not yet widely taught in high schools and colleges. Seems like a strange claim, because > eight of the top 10 CS departments, and 27 of the top 39, teach Python in introductory CS0 or CS1 courses. [1] [1] https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-th...
Re: Programming as a Way of Thinking
#125Earlier quoted context omitted.
You should try to find him and say hello.
I'll have to email him - I was planning on doing so once I finish my senior honors thesis in CS education (which I'm dedicating to him).
If I were you I would send an email right away. You never know what happens.
Re: Programming as a Way of Thinking
#126BTW, the article author, Allen B. Downey, has a marvelous collection of free technical books: http://greenteapress.com/wp/
Re: Programming as a Way of Thinking
#127Earlier quoted context omitted.
Conversely, you just draw a picture and leave all of this tedium behind, making the import of what you are talking about obvious at a glance.
Proofs by picture arent proofs though. And how would you even convey by picture that two line segments are of the same length. Or that if you drew C and D as separate points they turn out to be the same point?
Re: Programming as a Way of Thinking
#128This article starts to get at an idea that I've had for a while now -- that mathematicians are doing it wrong. In the software business we learned a long time ago to name our variables properly, name our functions logically, and to control complexity by breaking ideas into modules and then hiding the details inside. If you can't name something, then you don't know what it is, and that tells you that you should rethin…
Mathematicians work with pen and paper regularly. So long var names can be frustrating. If everyone goes to digital format it may be easier. However, there are forces working against that. Mathematical proofs are more like sentences, or even poetry, than a structured language that can be compiled. They are meant for humans to read. So you jot down your proof over and over again in different formats, playing with both…
Re: Programming as a Way of Thinking
#129Earlier quoted context omitted.
To "explain". I find a good paragraph explaining what the equation means and implies is far more useful than the equation alone. This is all the typical "what" vs "why". If you just want to describe the what then the formula alone might be enough (and just presuming everyone know what the variables mean), but if you actually want to convey a some meaning that formula needs to be explained.
You are arguing against a strawman. I have never seen any piece of mathematics that was just formulas. The heavy majority of any mathematical writing is plain text -- formulas and notation are only used when it would be much less practical to express something in text.
Before your response I had several hours with just downvotes and did not know why. I wish people would comment with their downvotes.
Re: Programming as a Way of Thinking
#130Earlier quoted context omitted.
> However, consider that for people who are already used to the notation those "unnecessary" equations are actually more compact and precise than reading the accompanying text. What seems difficult to you may be easy for someone else, and vice versa. A struggle for me over the years has been that there does not really seem to be any way of learning the notation, separate from the standard university education process…
Can you give an example of a place you've seen notation you can't understand? Typically, papers include a brief notation section where they define notation you can then google. In other cases, I've normally been able to google things like "what does the bar over mean?" successfully.
https://ericlippert.com/2016/11/30/4498/
As with virtually every other CS paper using math notation, I found the Damas & Milner paper utterly incomprehensible at first, but once I'd seen the formulas translated into a notation I can actually read, I was able to go back and learn something useful from it.
Unfortunately, it appears to be the case that there really is no one such thing as "math notation", not in the sense that there is one programming notation called "Python" and another called "Haskell" and yet another called "C++", such that one can go read a tutorial for some specific language and thereby come to understand how its notation works. Instead, it appears that "math notation" is a huge collection of little micro-notations, all mixed up together in a more or less ad-hoc fashion by the author of each paper.