Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Why is it that most books on algorithms use mathematics to explain the underlying concepts? Are there no other way of explaining the concepts?

University level mathematics is essentially "the formal study of patterns": "numbers" being one system that have an interesting system of patterns, "graphs" being another, "topologies" being another, and so forth...

"Reasoning" is an underlying patttern that requires internal self-consistancy; it's a very large part of what both mathematicians and computer scientists do.

Any way of "explaining" a concept that is formally accurate and correct is essentially formal mathematics, just with an unconventional notation. The more "handwaving" the explanation requires, the less formal the mathematics is. If the argument becomes logically inconsistant, it's drifted from math to philosophy and/or religion.

Standard mathematical notation is well known by a large group of people who reason carefully about things for a living ("mathematicans"). Computer programmers are a subset of people who reason carefully about things to do with programming for a living: to many authors, it makes sense to follow standards, and use the same notation everyone else does.

Many mathematicans are programmers: in some universities, computer science is a specialization of a math degree. After all, it's easier to tell if you've coded an optimization problem correctly if you understand the underlying calculus; it's easier to tell if your genetic algorithm is working right if you understand the statistical models in use, and it's easier to know if your problem solving algorithm is working as designed if you understand the graph theory algorithm that underlies the search process. If you know enough binary algebra to prove that all logic gates can be build out of NAND gates, but not XOR, you won't bet the business by standardizing on XOR instead of NAND... and so forth...

You can learn many of the specific applications by rote learning; or you can learn the mathematical theory that underlies the specific applications. Which is more useful depends on what your job is, and what you need to know to get the job done. It's generally more useful to know useful theories to try when you're doing something "cutting edge", like researching a new class of program. It's probably just wasted knowledge if you spend your life just editing config files all day...

--
AC


In reply to Re: Mathematics eq CompSci by Anonymous Monk
in thread Mathematics eq CompSci by kiat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (2)
As of 2024-04-26 01:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found