My problem with computer science pseudocode(beauty-of-imagination.blogspot.co.uk) |
My problem with computer science pseudocode(beauty-of-imagination.blogspot.co.uk) |
I agree with you that the way code is written matters a lot in practice. But in academic papers, usually the idea, the runtime and the correctness of algorithms have a higher priority than implementation details. Sure, you can write more readable pseudo code, but I haven't come across an algorithm in a paper that I wasn't able to understand. In fact, I do often like the way it is written.
Who says that computer scientists are necessarily great programmers? That's not the case. Universities (at least in Germany) doesn't teach you how to be an "elite grade developer", as you said. They teach fundamental concepts in computer science.
Why recursion? If you approach a problem with mathematics then thinking in terms of functions and recursion is very natural. Recursion is a fundamental mathematical concept and it's often easier to reason about recursive functions (inductive proofs).
It's very frustrating. We get it: you're smart. Now quit using words like "complecting" and quit using elliptic modular forms when addition and subtraction would suffice instead.
EDIT: Alright, so the downvotes indicate my post was a little rant-ish (I don't get downvoted much on here so it disturbs me when I do). I apologize for that. There were a few papers that I read recently where some of the words were very obtuse and I couldn't think of a good reason for choosing those over simpler and more communicative words. "Authors rarely..." was likewise an exaggeration.
But I do stand by my point that clear communication is something I think technically-oriented people should focus on. Perhaps courses could be offered where you describe a complex subject and then others in the class comment on what areas were the most confusing. This is different than a peer-review process in that you're not necessarily focusing on the accuracy of the material but the clarity of its expression.
Unfortunately, some of our prose is a bit obtuse because it's reasonably common for scientists to blow off their humanities courses because they're not science -- not realizing that most of our career will depend on the quality of our writing. You shouldn't confuse our incompetence with malice though.
The audience of most academic writing is other experts in the same field, and the goal is to convey the contribution. Without the necessary abstractions, and therefore the requirement of understanding them, the task of composing works on meaningful contributions would be absurdly difficult.
http://www.amazon.com/gp/product/032157351X
Disclaimer: I haven't actually seen this edition, which uses Java. My old edition uses C.
Disclaimer #2: I still look into my copies of Sedgewick and Knuth fairly regularly. CLR(S), not so much. Your mileage may vary.
I'm a big fan of The Algorithm Design Manual by Skiena. This is the book that I usually recommend.
For me in physics? That came about when I started reading papers where people were doing stuff with differential geometry on manifolds. I couldn't, for the life of me, figure out why people would talk about a wedge product when a cross product would have sufficed until about 6 months later when it clicked that doing something in a coordinate agnostic framework allows you to prove things for any coordinate system and create general formulas that just need a few things "plugged in."
I'm not going to pretend to know that that's why elliptical modular forms are being used in your context but everytime something has seemed needlessly overcomplicated, I've come to realize after some thinking that it's done with a view towards generality.