as an aside it's kind of interesting why there isn't as much research on teaching programming as their is say on refinement types, separation logic or pointer aliasing. I think the reasons are annoying. In academic research, nobody cares about education. The big universities that you think of as education powerhouses like Stanford, MIT, CMU, are all at heart research universities. Their faculty were not hired because…
Programming is not math
51–60 of 115 posts
Re: Programming is not math
#52Earlier quoted context omitted.
Anybody who has the aptitude to make a career in a given field, has the aptitude to teach themselves, with a bit of guidance from a syllabus, a professor, and/or a TA. Most learning inherently must be done by the learner. The learner has to study the material at their own pace, and then practice, practice, practice. There is very little a third party can do to expedite the process, other than provide overall trajecto…
There is very little a third party can do to expedite the process So why is college so damn expensive? Why does formal education exist at all? Just because the study of education hasn't been very rigorous and is widely ignored doesn't mean that there aren't better methods to find.
In the modern economy, you need access to a high-paying career path in order to have economic security ( http://intellectual-detox.com/2013/01/20/economic-classes/ ). College provides the social network, acculturation, and signaling that make it much more likely to gain access to such career paths. A good college is a college that has the best reputation and attracts the smartest and most savvy fellow students. Everyone has an incentive to attend a college with an existing reputation and students bid up the prices for these limited slots.
Also, colleges can pursue perfect price discrimination. The sticker price is set very high to extract the most money from those who can easily pay. The price is discounted based on ability to pay.
Why does formal education exist at all?
Well, originally, books were really expensive, thus self-teaching was hard, so the most cost-effective way to learn was from a lecture or a teacher with a slate board.
Currently, it exists because the formal education system teaches everyone that the formal education system is very important, that economic growth and our national competitiveness depend on more and more people going to college. People believe this myth, and then vote for politicians who sustain the institutions.
Re: Programming is not math
#53Earlier quoted context omitted.
Anybody who has the aptitude to make a career in a given field, has the aptitude to teach themselves, with a bit of guidance from a syllabus, a professor, and/or a TA. Most learning inherently must be done by the learner. The learner has to study the material at their own pace, and then practice, practice, practice. There is very little a third party can do to expedite the process, other than provide overall trajecto…
You are presupposing a basic level of proficiency and access which is 80% of the way there. Anyone who has made it, can make it.
Re: Programming is not math
#54Programming is math, very simply. Consider the simple Turing Machine: invented to give proofs in what we'd now call mathematical logic. Coming up with Turing machines to solve given problems is so obviously programming, that I have to suspect Ms Mei hasn't ever looked at Turing Machines. The same could be said of lambda calculus and Combinatory Logic.
But OK, I'll go with "programming is not math" just to examine the consequences, which is a mathematical activity in and of itself. Let's just ignore things like completeness and consistency, and formal languages and parsers and spend our time puzzling over why some sets of requirements cause us to spend unpredictable amounts of time writing the (not math!) program to meet those requirements. Let's just puzzle over why it's so dadgum hard to find malware in our files. Let's spend large amounts of time hacking around with our multi-threaded servers, because gosh darn it, it's not mathematical.
This article is just immature.
Re: Programming is not math
#55I think a good balance makes a good developer. Even more than that, it makes a good software creator - designer, developer, project manager, etc.
Re: Programming is not math
#56Learning a programming language is a lot like learning a human language, but understanding math is how you learn efficient programming. If you don't use mathematical reasoning, then you'll produce O(n^3) when you could have produced O(n). Any hack can throw together a script that will hobble along with 4 rows of data. Throw a million rows at the same script and it might terminate properly in a few years. Or maybe it…
And as far as under-specifying versus over-specifying, I find that understanding the domain problem is better inoculation against horribly written code than understanding "inefficient" boolean branching.
> lesser programmers are afraid to fix it
Red flag.
Re: Programming is not math
#57as an aside it's kind of interesting why there isn't as much research on teaching programming as their is say on refinement types, separation logic or pointer aliasing. I think the reasons are annoying. In academic research, nobody cares about education. The big universities that you think of as education powerhouses like Stanford, MIT, CMU, are all at heart research universities. Their faculty were not hired because…
This comment has nothing to do with the submitted article except a tangential reference to programming.
Re: Programming is not math
#58IF programming is math, then math IS programming?
That's absurd!
Math loving people see everything with their math-eyes: Everything is math, everywhere.
Math is math. Biology is biology and programming is programming. Nothing can be everything at the same time, because then you need a God-like mind. Everything a human mind produce is a slice of reality/imagination, ergo, specialization.
Biology can be (partially) explained (sometimes, badly and worse) with math. BUT can be explained far better with language.
Math could be considered (or is?) a language, but is a shitty one (like a truly compressed C/Perl code) that as one-liner code is great to encode fast some stuff, but at large, is not the best way to convey IDEAS.
That is why I'm using words, here. Not math!.
That is why a programming language is made of WORDS, not math symbols. That is why, you don't write a app with math, you use symbols and languages.
That is why math is based in the kind of symbols derived from language, too.
This NOT mean math is useless or bad or something else. Is just a obvious observation: Math is not the focus in programming. Is not the focus in almost anything that happen in the realm of a human mind, UNTIL you need it. And programming stuff you don't need much of it, and when you truly need it? Still language dominate the task.
Not believe? Go read the source code luke, and see how much math vs words are there. You can check any large codebase, and see it for yourself.
When the analogy of "Programming is like a car.. is like building a house, is like ...." fall apart nobody insist that programming is like architecture. So why do the same with math?
Re: Programming is not math
#59On the other hand, computer science, being young as it is, is still confused with with its instruments (computer) and application skill (programming). This causes all the confusion. It was once pointed out to me that math major undergrads generally perform better than most computer science undergrad in many PhD programs. When you think about it, academia for computer science involves things like type theory, computational calculus, proof of correctness, etc. Much of these has little to do with actual programming!
So, programming is not math. Computer science, on the other hand, is strongly related to math (same way that physics relates to math; remember, physicists more or less defined calculus).
Re: Programming is not math
#60Part of that is because of the rise of parallelism, concurrency, and functional programming. Functional languages are inherently more mathematical than imperative languages.
Part of it is because of the rise of big data and machine learning, which is inherently mathematical by way of statistics.
Part of it is because of the direction of future programming languages with richer type systems - dependent types, etc - which gets us closer to thinking more in terms of logic than computability, and math theory in general.
The Curry-Howard Isomorphism proves that computability (programming) is math is logic - the relationship between programming and math has felt distant so far but that is mostly because of the lack of sophistication in our programming languages. That is changing.