The ProgrammersTalk Community
Forum Register Search Today's Posts Mark Forums Read
Register

Go Back   The ProgrammersTalk Community > The ProgrammersTalk > General Talk


Welcome to the The ProgrammersTalk Community forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.
Reply
 
LinkBack Thread Tools    Display Modes   
  #1 (permalink)  
Old 07-09-2007, 03:52 PM
HelloWorld's Avatar
HelloWorld HelloWorld is offline
Programming Expert
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: In front of computer...
Posts: 1,111
iTrader: (0)
HelloWorld will become famous soon enoughHelloWorld will become famous soon enoughHelloWorld will become famous soon enough
Icon1 Want to Be a Computer Scientist? Forget Maths

I found out that this article is really interesting.. what do you guys think?
I got this article from ACM's Tech News
Math is useless...? *I personally say I'm too lazy to do the HWs lol...*

Quote:
Want to Be a Computer Scientist? Forget Maths
iTWire (07/05/07) Corner, Stuart

A new book aims to dispel the belief that mathematics is a necessary foundation for computer science and programming, specifically for the algorithms used in computer science. Theseus Research CEO Karl M. Fant says the notion of the algorithm "has been largely ineffective as a paradigm for computer science." Fant says because mathematicians, notably John Von Neumann and Alan Turing, were involved in the early development of digital electronic computers in the 1940s, a mathematical model of computation was installed, including the algorithm, in the early days of computer science. Fant argues that the mathematical perspective is creating and approaching questions from the wrong point of view. "Mathematicians and computer scientists are pursuing fundamentally different aims, and the mathematician's tolls are not as appropriate as was once supposed to the questions of the computer scientists," Fant says. "The primary questions of computer science are not of computational possibilities, but of expressional possibilities. Computer science does not need a theory of computation; it needs a comprehensive theory of process expression." The idea of "process expression," according to Fant, is a common thread that runs through various disciplines of computer science. "The notion of the algorithm," Fant concludes, "simply does not provide conceptual enlightenment for the questions that most computer scientists are concerned with."
Read more about this article

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #2 (permalink)  
Old 07-09-2007, 04:20 PM
TeraTask's Avatar
TeraTask TeraTask is offline
PT Staff*
Awards Showcase
Quality Tutorial Quality Tutorial Quality Tutorial 
Total Awards: 3
Join Date: Jun 2007
Location: Reno, NV
Posts: 428
iTrader: (0)
TeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enough
Um, I'd say these guys, with all due respect, should have looked at the definition of an algorithm: A step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps. (source: algorithm - Definitions from Dictionary.com )

Mathematical logic, in fact, is a fundamental necessity in my not-so-humble opinion. For instance, w/o such logic, could you easily determine if the following 2 conditional expressions are equivalent?

Code:
if (!($user_logged_in && $user_attempting_to_login)) {
//Do something
}
Code:
if (!$user_logged_in || !$user_attempting_to_login) {
}
Personally, I find the second easier to read.

For those who aren't sure, those 2 statements are logically equivalent. Namely, NOT(A and B) => NOT(A) or NOT(B)

Now, to be fair, my degree's in math, so I probably take greater exception to such a claim than most may.

Now, if we examine the question "Could one learn programming w/o a mathematical background?" I'd answer, "Yes, but I don't want to look at their code!"

Babbling on...

Even though math is an underlying principle in many algorithms, it is the presentation of programming from a substantially mathematical viewpoint which throws many - even people with a mathematical background. As with any subject, your students will learn best if you can put things in terms of something with which they are intimately familiar.

__________________
Jeremy Miller
Content Farmer - Optimized Automated Blog Posting

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #3 (permalink)  
Old 07-09-2007, 04:38 PM
HelloWorld's Avatar
HelloWorld HelloWorld is offline
Programming Expert
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: In front of computer...
Posts: 1,111
iTrader: (0)
HelloWorld will become famous soon enoughHelloWorld will become famous soon enoughHelloWorld will become famous soon enough
Quote:
Now, if we examine the question "Could one learn programming w/o a mathematical background?" I'd answer, "Yes, but I don't want to look at their code!"
Can't they just learn the good coding practice...?
well, I personally say that math is really good to practice the problem solving skills for programmer, but I don't see it used much in term on how well our code is written. Even some people that have degree in math can write a really bad codes...

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #4 (permalink)  
Old 07-09-2007, 04:45 PM
Lee's Avatar
Lee Lee is offline
PT Staff*
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: Blackpool, UK
Posts: 616
iTrader: (0)
Lee will become famous soon enoughLee will become famous soon enoughLee will become famous soon enoughLee will become famous soon enough
I think it helps to know maths when you are doing things like programming, it doesnt have to be a large knowledge but enough, im alrite at maths and i find it helps.

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #5 (permalink)  
Old 07-09-2007, 10:13 PM
siLenTz's Avatar
siLenTz siLenTz is offline
Jr. Programmer
Awards Showcase
Quality Tutorial Quality Tutorial Quality Tutorial Quality Tutorial 
Total Awards: 4
Join Date: Jun 2007
Posts: 87
iTrader: (0)
siLenTz will become famous soon enoughsiLenTz will become famous soon enough
I think it is depend on which type of application programmer working on.
Some applications require more math more than other applications and some
application doesn't require math knowlegde (it do need some basic math
like + - / * but I don't think it is count). For example: I create Notepad
application, I don't need any great math background because I don't
deal with any math in my program at all. However, For game programmers,
advanced math and physics are compulsory.

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #6 (permalink)  
Old 07-09-2007, 10:25 PM
HelloWorld's Avatar
HelloWorld HelloWorld is offline
Programming Expert
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: In front of computer...
Posts: 1,111
iTrader: (0)
HelloWorld will become famous soon enoughHelloWorld will become famous soon enoughHelloWorld will become famous soon enough
Quote:
Originally Posted by siLenTz View Post
I think it is depend on which type of application programmer working on.
Some applications require more math more than other applications and some
application doesn't require math knowlegde (it do need some basic math
like + - / * but I don't think it is count). For example: I create Notepad
application, I don't need any great math background because I don't
deal with any math in my program at all. However, For game programmers,
advanced math and physics are compulsory.
I totally agreed! A lot of trigonometry, calculus, and physics to create a good game... I used to program several games, but pretty much I moved to the web development with ASP.NET

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #7 (permalink)  
Old 07-09-2007, 11:38 PM
TeraTask's Avatar
TeraTask TeraTask is offline
PT Staff*
Awards Showcase
Quality Tutorial Quality Tutorial Quality Tutorial 
Total Awards: 3
Join Date: Jun 2007
Location: Reno, NV
Posts: 428
iTrader: (0)
TeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enoughTeraTask will become famous soon enough
Quote:
Originally Posted by siLenTz View Post
For example: I create Notepad
application, I don't need any great math background because I don't
deal with any math in my program at all.
You mean to tell me that in a word processing application you have absolutely no formulas or logic? I bow to your ability to have done such and worked completely around any need for mathematics.

That said, I do agree that mathematics is not necessarily needed in all applications, but I would suggest that it's about 1 in a million where math is not used at all (e.g. the "Hello World" application, but that's not exactly useful.) Now, I'm specifically not addressing the usage of advanced mathematics - you don't necessarily need to ever use anything beyond Alg I and a quality class in logic, but if you have less than that you will undoubtedly have issues in a number of the programs you write.

Now, let me give an example of a program I once wrote:

PROBLEM: Create a profile page with dozens of fields, each with two or more options. Some of these fields will allow multiple options to be selected while others will only allow one of the options to be selected. Other users should be able to search for profiles which match one or more of the available options.

ELEMENTARY EXAMPLE:
A profile page which allows for gender, hair color, and eye color. For gender, the options are male, female, or transgender - only one option may be selected. For hair color, the options are red, blond, black, and brown - only one option may be selected. For eye color, the options are brown, hazel, amber, green, blue, gray, violet - more than one color may be selected (my wife's eyes are brown and blue, for example - rather interesting looking). Now, if someone is searching, they may search for females and transgendered even though that field only allows the registrant to have selected one of the fields.

SOLUTION #1 (The totally newbie solution)

Create a field for each allowed field that is a character field, storing the user's entered value. If more than one value is allowed, either create an associative table or separate options by a comma.

SOLUTION #2 (A decent solution, with a little mathematics in the background)

Create a field for each allowed field that is an enumerated or set field, storing the user's entered value. If more than one value is allowed, create an associative table or use set if there are no more than 64 different members (assuming we're using MySQL).

SOLUTION #3 (A robust solution)

Create a field for each allowed field that is an integer (appropriate for the number of options given), storing an integer equivalent for the user's entered value. If more than one value is allowed, store the sum of all selected values. The "integer equivalent" is defined as follows: Each available entry is assigned a successive power of 2. For example, in the case of gender, male := 2^0 = 1; female := 2^1 = 2; transgender := 2^2 = 4. (FYI, ":=" means "is defined to be equal to").


CONSEQUENCES OF SOLUTION #1

During a search, this solution requires a query which searches for matches using a rather slow string comparison method. If an associative table is used, then joins are necessitated thereby increasing the overall complexity of the resultant query. This method will result in excessive server usage for moderately busy sites.

CONSEQUENCES OF SOLUTION #2
This solution has the advantage over solution #1 of not requiring a string comparison (as the values are stored in the database with an assigned number). It requires less storage space than solution #3 if and only if an associative table is not required on any of the fields where more than one option allowed. It has an additional requirement that to add a new option requires a change to the underlying database structure, which is generally not preferred. And, if the number of options ever exceeds 64 on a field where more than one option can be selected, an associative table will need to be created to replace the existing field -- an enormous outlay of additional work which may be just to add one more field.

CONSEQUENCES OF SOLUTION #3
To search using this solution requires only a binary comparison of numbers which computers do very quickly. It will never require a join. It does have the overhead of needing a collection of definitions to define the appropriate power of 2 to the related string and adding a value requires updating this list of definitions. This solution when scaled up to a site with heavy traffic will prove to be the most efficient of the solutions given above.

Now, I obviously used solution #3. Does this prove my point? No, it's only anecdotal evidence, but it is a case in point where the application of mathematics results in a much more robust solution.

Side note: If anyone wants to take up alternatives to solution #3 above which would be more efficient, then I think we should open another thread (unless it's more efficient and doesn't use any math - my jaw would then literally hit the floor, but it'd be 100% on topic.)

__________________
Jeremy Miller
Content Farmer - Optimized Automated Blog Posting

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
The Following 2 Users Say Thank You to TeraTask For This Useful Post:
ccoonen (08-21-2007), HelloWorld (07-10-2007)
  #8 (permalink)  
Old 07-10-2007, 12:02 AM
siLenTz's Avatar
siLenTz siLenTz is offline
Jr. Programmer
Awards Showcase
Quality Tutorial Quality Tutorial Quality Tutorial Quality Tutorial 
Total Awards: 4
Join Date: Jun 2007
Posts: 87
iTrader: (0)
siLenTz will become famous soon enoughsiLenTz will become famous soon enough
Sorry, but I still unclear about Solution #3, can you explain more about it?

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #9 (permalink)  
Old 07-10-2007, 12:03 AM
HelloWorld's Avatar
HelloWorld HelloWorld is offline
Programming Expert
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: In front of computer...
Posts: 1,111
iTrader: (0)
HelloWorld will become famous soon enoughHelloWorld will become famous soon enoughHelloWorld will become famous soon enough
I completely agree with TeraTask about efficiency. I'm learning Discrete Math right now, and I realized how can math is very useful to create an efficiency in our codes and algorithm! *Learned some Matrix*

I personally haven't used math application on my program, but I can see that the application of Discrete Math is just amazing!!! *Still full of mysteries for me though... * but I can see that is is being used in many applications such as: figuring out different path in the network and which part is the most efficient by algorithm of numbers

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
  #10 (permalink)  
Old 07-10-2007, 12:28 AM
siLenTz's Avatar
siLenTz siLenTz is offline
Jr. Programmer
Awards Showcase
Quality Tutorial Quality Tutorial Quality Tutorial Quality Tutorial 
Total Awards: 4
Join Date: Jun 2007
Posts: 87
iTrader: (0)
siLenTz will become famous soon enoughsiLenTz will become famous soon enough
Using binary also a great solution and I don't thing it require alot of
math at all: Here for field that allow more than one option selected:


This mean we selected Red and White. Using Binary is not consider
an advanced math right? If we selected Black, Red and Whitr color
then the binary should be 1 1 0 0 1 and we can generate it into\
interger by simply: (1)(2^0)+(0)(1^2)+(0)(2^2)+(1)(2^3)+(0)(2^4)

__________________

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!

Last edited by siLenTz : 07-10-2007 at 12:31 AM.
Reply With Quote
Reply


Thread Tools
Display Modes

   Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -7. The time now is 08:07 AM. Powered by vBulletin
Copyright © 2000 - 2007, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO © 2007 ProgrammersTalk Sedo - Buy and Sell Domain Names and Websites project info: programmerstalk.net Statistics for project programmerstalk.net etracker® web controlling instead of log file analysis


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50