Est-il possible d'apprendre les mathématiques via la programmation, ou vous devriez apprendre les mathématiques pour la programmation? [fermé]

10

Je ne suis pas le meilleur en mathématiques, pas très horrible non plus, mais inférieur à la moyenne, j'ai toujours pensé à améliorer mes mathématiques, mais les écoles et les livres n'ont pas fait le travail parce que je m'ennuie trop vite. La seule chose qui ne m'ennuie pas est le codage et les jeux, alors j'ai pensé que si le codage d'un programme qui résout des problèmes mathématiques m'aiderait à mieux comprendre les mathématiques, la plupart de ces problèmes sont les limites (calcul), les fonctions, le calcul différentiel et certains autres sujets (je l'ai déjà dit ne sont pas si bons) similaires au précédent noté.

Ma question est: suis-je capable d'acquérir une meilleure connaissance en mathématiques si je fais un codage de programme spécifique, et si possible, la physique est-elle également possible de cette façon? Ou ai-je tort et les mathématiques doivent être apprises avant la programmation pour améliorer mon codage?

PS: C ++ est le langage préféré.

SAFAD
la source
5
Cela a fonctionné à l'envers pour moi. J'ai appris la programmation informatique pour m'aider à mieux travailler dans les cours de statistiques de deuxième cycle. J'ai trouvé que j'aimais mieux la programmation que les statistiques et j'ai changé d'orientation professionnelle.
jfrankcarr
Il n'y a pas de route royale vers les mathématiques, monsieur.
Karl

Réponses:

16

Vous n'apprendrez les mathématiques ou la physique de la programmation que si vous utilisez réellement la programmation pour résoudre des problèmes de mathématiques et de physique, bien que les langages fonctionnels comme Haskell contiennent des concepts très "mathématiques". Je suggère d'aller sur un site Web comme Kahn Academy ou Project Euler . Résolvez les problèmes à l'aide de code et vous améliorerez à la fois vos compétences en codage et vos compétences en mathématiques.

Mike Cellini
la source
5
+1 pour les deux ressources. Je dois dire, cependant, que je détestais le calcul la première fois. Je n'ai jamais réussi aussi bien. Depuis l'apprentissage de Lisp, cela a du sens . Plutôt amusant aussi.
Jason Lewis
1
Si vous voulez essayer Haskell, vous pouvez lire "La route Haskell vers la logique, les mathématiques et la programmation": le livre enseigne à Haskell, à faire des mathématiques et présente tous les concepts mathématiques en cours de route. Cependant, il se concentre sur la logique mathématique, la théorie des nombres et certaines algèbres élémentaires. Le calcul n'est mentionné qu'à la fin, si vous avez réussi à passer par tout le reste.
Vincent Zoonekynd
Je suggérerais également des langages CAS spécialisés, comme Mathematica (cher!), Maxima ou Axiom (gratuit). Une fois que vous aurez l'idée de la réécriture des termes, des règles et des stratégies, l'ensemble des mathématiques commencerait à avoir un sens.
SK-logic
J'ai personnellement trouvé Khan Academy très utile pour combler les lacunes dans mes connaissances en mathématiques.
jonners99
@Jason Lewis - Si votre problème concerne plus le style d'enseignement que le matériel et que vous voulez des cours complets, les cours MIT OpenCourseware sont excellents pour de nombreux sujets mathématiques, y compris le calcul et l'algèbre linéaire. Cependant, ce n'est pas pratique pour réviser un sujet spécifique. J'ai particulièrement aimé le cours d'algèbre linéaire. Le MIT OpenCourseware est également très bon pour certains sujets informatiques, bien sûr - en particulier les deux cours d'algorithmes et de structures de données. Il n'y a jamais eu de meilleur moment pour vous éduquer à votre propre rythme avec d'excellents supports gratuits.
Steve314
5

Évidemment, vous devez apprendre les mathématiques grâce à la programmation. Si vous essayez de simuler des objets physiques, vous devrez apprendre toutes sortes de physique et de mathématiques, et vous l'apprécierez.

Kevin Cline
la source
4

Ceci est mon point de vue ...

La programmation vous aidera à tester vos CONNAISSANCES

Quand j'étais au lycée et au collège, je programmais mes calculatrices pour faire les mathématiques monotones pour moi. Certaines personnes ont prétendu que c'était de la triche, mais j'ai toujours soutenu que je ne serais pas en mesure d'écrire les programmes si je ne comprenais pas vraiment les mathématiques.

Par exemple, supposons que vous vouliez créer un petit programme pour calculer la valeur C, étant donné A et B, dans le théorème de Pythagore. Comment faisons-nous ça? Eh bien, nous savons que:

A^2 + B^2 = C^2

Donc, pour résoudre pour C, nous avons:

C = SQRT(A^2 + B^2)

Par conséquent, le programme pourrait être quelque chose comme (en supposant des en-têtes appropriés, ceci est un exemple simple):

cout << "Enter value for A: " 
cin << valA;
cout << "Enter value for B: "
cin << valB;

float valC = sqrt(pow(valA, 2) + pow(valB, 2))
cout << "C = " << valC << "\n";

TOUTEFOIS...

Où et comment acquérir ces connaissances?

Dans l'exemple précédent, nous avions besoin de savoir comment résoudre le problème de C dans l'équation. A^2 + B^2 = C^2.Si nous ne savions pas mettre la racine carrée des deux côtés pour trouver C, comment pourrions-nous résoudre le problème?

IMO, cela se résume à: la programmation ne vous ENSEIGNERA PAS absolument, mais elle AMÉLIORERA les compétences que vous acquérez.

skippr
la source
oui, j'ai compris votre point de vue et je suis d'accord avec cela, sur la base de votre réponse, j'apprendrai les mathématiques lorsque je résoudrai des problèmes de programmation, mais je ne serai pas en mesure de les résoudre sans connaissances donc je devrais chercher une solution et que est ce qui m'apprendra les maths ...
SAFAD
2

Le livre SICP a une très belle section sur les mathématiques. Mais je suggérerais que vous essayiez de prendre l'algèbre linéaire, les mathématiques discrètes et le calcul au minimum, si vous apprenez seulement en écrivant des programmes, votre éducation est susceptible d'être très approfondie, mais pas très large.

gam3
la source
2

Je pense qu'ils vont de pair. Une base solide en techniques mathématiques ouvrira des options de programmation que vous n'auriez pas autrement, tandis que la programmation peut ouvrir des voies intéressantes d'étude mathématique.

J'ai récemment commencé à utiliser wxMaxima , une belle interface graphique pour l'excellent système open source Maxima Computer Algebra (alias un CAS , comme les systèmes commerciaux Maple ou Mathematica ).

Cela ne vous apprendra rien sur les mathématiques à lui seul, mais cela rendra certainement plus intéressant et amusant de jouer avec les mathématiques, ce qui en soi pourrait vous encourager à en savoir plus.

Mark Booth
la source
2

Vous n'avez pas besoin de beaucoup de mathématiques pour la "programmation".

Vous avez besoin de mathématiques pour "l'informatique".

Si vous prévoyez d'utiliser des solutions de bibliothèque préexistantes pour tout, vous ne vous souciez probablement pas de leur fonctionnement. Mais si vous prévoyez de créer vos propres algorithmes et structures de données, vous devrez connaître les mathématiques, car CS est fortement basé sur les mathématiques.

user541686
la source
1

Si vous souhaitez travailler en IA, en traitement de données, en simulation physique ou en graphisme, vous avez besoin de mathématiques. Inversement, si vous ne l'êtes pas, je pense que non. Il s'agit de l'utiliser ou de le perdre, pourquoi apprendre le français si vous ne voulez pas vivre en France? Il existe de nombreux domaines problématiques qui nécessitent simplement une logique conditionnelle.

Cela dit, il y a une inclinaison naturelle dans la programmation vers les mathématiques, et cela ne vous fera que du bien pour en comprendre un peu.

sunwukung
la source
1

Jetez un oeil à matlab . C'est un langage conçu pour faire des fonctions mathématiques dans le code.

un environnement informatique numérique et un langage de programmation de quatrième génération ... MATLAB permet des manipulations matricielles, le traçage de fonctions et de données, la mise en œuvre d'algorithmes, la création d'interfaces utilisateurs, et l'interfaçage avec des programmes écrits dans d'autres langages ...

Bien que MATLAB soit principalement destiné à l'informatique numérique, une boîte à outils en option utilise le moteur symbolique MuPAD, permettant l'accès aux capacités de calcul symbolique. Un package supplémentaire, Simulink, ajoute la simulation graphique multi-domaines et la conception basée sur modèle pour les systèmes dynamiques et embarqués ...

Tom Squires
la source
matlab n'est bénéfique que lorsque le programmeur a une bonne connaissance mathématique au préalable et il est limité à un certain domaine des mathématiques.
wirrbel
1

Les mathématiques sont une science avec un domaine très large. Il existe différents types de mathématiques qui n'ont explicitement rien en commun (à part les mathématiques).

Maintenant, la programmation est souvent associée aux mathématiques parce que les ordinateurs calculent et calculent, le plus fondamentalement, ils le font avec des types de données entiers ou à virgule flottante en étapes discrètes.

Il existe des domaines mathématiques que vous pouvez étudier en programmant en "rapprochant" les mathématiques d'un programme. Disons que vous étudiez le calcul différentiel et calculez des valeurs numériques pour de petits intervalles "émulant" ainsi la limite des mathématiques "pures".

D'autres aspects de la programmation sont facilement mappés aux mathématiques (peut-être ne faisant pas partie de votre classe de mathématiques au secondaire, mais toujours des mathématiques précieuses qui ne font pas partie d'un programme traditionnel). Théorie des types par exemple - ou induction mathématique.

Souvent, la seule façon de raisonner sur la «correction» d'un morceau de code est l'induction mathématique par exemple. Ce type de raisonnement est particulièrement visible dans les langages fonctionnels (récursivité, etc.).

C'est-à-dire qu'il existe de nombreuses façons d'apprendre les mathématiques lors de la programmation, mais toutes les mathématiques ne sont pas facilement accessibles dans le modèle de calcul de nos ordinateurs et langages de programmation.

wirrbel
la source
0

Je n'ai pas trouvé l'entrée de blog mais je me souviens d'un "type" de designer de la fin de la première ère de l'éclatement de la bulle (avant '01 -ish) qui a blogué sur la découverte d'un amour des mathématiques en devenant développeur web et en réalisant qu'il était en fait assez bon dans ce domaine, même s'il avait toujours lamentablement échoué au lycée et avait supposé qu'il n'était tout simplement pas quelqu'un qui serait jamais bon en maths, puis s'est imposé comme un type artistique.

Non pas moi. J'étais juste paresseux. Je dois réapprendre de temps en temps trig mais c'est à peu près tout.

IMO, vous pouvez écrire beaucoup de code décent sans connaissances mathématiques approfondies jusqu'à ce que vous ne puissiez pas, fondamentalement.

Ce que la programmation PEUT faire pour quiconque s'y intéresse raisonnablement, cependant, est de vous aider à surmonter l'idée de savoir si vous êtes ce genre de personne ou ce genre de personne, et de vous donner les outils dont vous avez besoin pour simplement essayer des choses et découvrez par vous-même jusqu'où vos intérêts vous mèneront dans un domaine d'études donné.

Et bien sûr, tout ce que nous faisons est lié à la hanche avec les mathématiques afin que vous puissiez découvrir que vous avez déjà appris plus que ce que vous avez réalisé lorsque vous faites des choses comme apprendre ce qu'est ce truc de sommation à l'envers.

Erik Reppen
la source
0

Une autre option consiste à utiliser votre amour de la programmation pour stimuler votre désir d'apprendre les mathématiques. À peu près n'importe quoi a tendance à devenir plus facile à apprendre si vous l'apprenez avec un problème spécifique auquel vous voulez l'appliquer et les mathématiques ne font pas exception. Vous avez juste besoin de comprendre les problèmes de programmation lourds en mathématiques qui vous intéressent et de les utiliser comme raison d'apprendre les mathématiques associées. Apprentissage de l'algèbre linéaire afin de pouvoir jouer avec des graphiques par exemple, ou des probabilités et des statistiques pour le traitement d'images / des trucs de type vision par ordinateur.

Je pense que votre kilométrage va varier à ce sujet car différentes personnes ont différentes façons d'apprendre des choses, mais s'asseoir et apprendre les mathématiques dans l'abstrait pour apprendre les mathématiques n'a tout simplement jamais fonctionné pour moi.

Evicatos
la source
-2

Eh bien, vous pouvez demander aux élèves de résoudre certains problèmes de géométrie, comme dessiner des carrés, des pentagones, des hexagones et des cercles avec Scratch. Mettez-les au défi de développer des solutions et NE leur répondez PAS comment les coder. Laissez-les explorer et tester des solutions. Au moins, vous pouvez demander des choses comme la somme des angles dans les polygones. Ensuite, ils peuvent construire les algorithmes et leurs propres catégories.

user126143
la source