64 votes

La programmation est-elle un sous-ensemble des mathématiques?

J'ai entendu de nombreuses fois que l'ensemble de la programmation est vraiment un sous-ensemble de maths. Certains suggèrent que OO, à ses racines, est mathématique, mais je n'ai pas la connexion, mis à part quelques exemples évidents:

  • en utilisant l'induction à prouver un algorithme récursif,
  • l'exactitude formelle des preuves,
  • les langages fonctionnels,
  • lambda calcul,
  • asymptotique de la complexité,
  • DFAs, de Fan, des Machines de Turing, et théorique de calcul en général,
  • et le fait que tout sur la boîte est binaire.

Je sais que les maths sont très importants pour la programmation, mais j'ai du mal avec cette "sous-ensemble". De quelles façons est de la programmation d'un sous-ensemble de maths?

Je suis à la recherche d'une explication qui pourrait avoir un intérêt pour l'entreprise/OO de développement, si il y a une assez forte connexion, ce qui est.

82voto

Martin Beckett Points 60406

C'est une mathématique dans le sens où elle nécessite une réflexion abstraite sur les algorithmes, etc.
C'est de l'ingénierie quand il s'agit de planifier des calendriers, des produits livrables, des tests.
C'est de l'art quand on ne sait pas du tout.

53voto

Mark Cidade Points 53945

La programmation est l’une des branches les plus difficiles des mathématiques appliquées; les mathématiciens les plus pauvres ont intérêt à rester pur mathématiciens.

--EW Dijkstra

46voto

keparo Points 13747

Dans l'ensemble, rappelez-vous que les mathématiques sont une codification formelle de la logique, qui est aussi ce que nous faisons dans le logiciel.

La liste des rubriques dans votre question, est chargé avec des problèmes mathématiques. Nous sommes en mesure de faire de la programmation sur un assez haut niveau d'abstraction, de sorte que les premières mathématiques ne peut pas être utilisé. Par exemple, vous avez mentionné DFAs.. vous pouvez utiliser une expression régulière dans vos programmes sans connaître les mathématiques, mais vous trouverez de plus un besoin pour les mathématiques quand vous voulez concevoir un bon moteur d'expression régulière.

Je pense que vous avez frappé sur un point intéressant. La programmation est un art et une science. Il y a beaucoup de "outils du métier", et vous n'avez pas nécessairement à s'asseoir et de faire beaucoup de haut-niveau en mathématiques afin de simplement écrire un programme. En fait, lorsque vous faites de la programmation, de vous beaucoup n'ont pas vraiment fait beaucoup de mathématiques ou de l'informatique.

C'est lorsque nous commençons à résoudre des problèmes difficiles dans l'informatique, les mathématiques se montre. Plus vous descendez, plus il aura de chair de lui-même.. souvent une baisse des niveaux d'abstraction.

Il y a aussi certains domaines de la programmation que vous n'avez pas nécessairement besoin de travailler, mais ils comportent plus de maths. Par exemple, alors que vous pouvez certainement apprendre une langue et d'écrire des applications sans mise en mathématiques, vous n'irez pas très loin dans l'algorithme d'analyse sans mathématiques appliquées.

31voto

Charles Graham Points 8132

OK, j'étais en mathématiques et CS majeur dans le collège. Je dirais que si l'ensemble A est les Maths et l'ensemble B est CS, puis Une coupe B. Ce n'est pas un sous-ensemble.

Il ne fait aucun doute que la plupart des pères et des mères de l'informatique sont des Mathématiciens comme Turing et Dykstra. La plupart des fondateurs de l'internet ont été soit Doctorat en Mathématiques, en Physique ou en Génie. La plupart des concepts de base de l'informatique viennent de mathématiques, mais la loi de programmation n'est pas vraiment des maths. Les mathématiques nous aide dans notre vie quotidienne, mais les deux ne sont pas les mêmes.

Mais il ne fait aucun doute qu'à l'origine le raisonnement derrière l'ordinateur était de bien, et le calcul des choses. Nous avons parcouru un long chemin à partir de là en si peu de temps.

30voto

Jim Points 892

Ne mentionne pas la programmation, mais l'idée est toujours pertinente.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X