Ist es möglich, Mathematik durch Programmieren zu lernen, oder sollten Sie Mathematik für das Programmieren lernen? [geschlossen]

10

Ich bin nicht der Beste in Mathe, auch nicht sehr schrecklich, aber niedriger als der Durchschnitt. Ich habe immer daran gedacht, meine Mathe zu verbessern, aber Schulen und Bücher haben den Job nicht gemacht, weil ich mich zu schnell langweile. Das einzige, was mir nicht langweilig wird, ist das Codieren und Spielen. Ich dachte mir, wenn das Codieren eines Programms, das mathematische Probleme löst, mir hilft, die Mathematik besser zu verstehen, sind die meisten dieser Probleme Grenzen (Kalkül), Funktionen, Differentialrechnung und Einige andere Themen (ich habe bereits gesagt, dass sie nicht so gut sind) ähneln den zuvor genannten.

Meine Frage ist: Kann ich bessere Mathematikkenntnisse erzielen, wenn ich eine bestimmte Programmcodierung durchführe, und wenn möglich, ist Physik auch so möglich? Oder irre ich mich und Mathematik sollte vor dem Programmieren gelernt werden, um meine Codierung zu verbessern?

PS: C ++ ist die bevorzugte Sprache.

SAFAD
quelle
5
Bei mir hat es umgekehrt funktioniert. Ich habe Computerprogrammierung gelernt, um besser in Statistikklassen arbeiten zu können. Ich fand, dass ich lieber programmierte als Statistiken und änderte meine berufliche Richtung.
Jfrankcarr
Es gibt keinen königlichen Weg zur Mathematik, Sir.
Karl

Antworten:

16

Sie werden Mathematik oder Physik nur aus dem Programmieren lernen, wenn Sie die Programmierung tatsächlich verwenden, um mathematische und physikalische Probleme zu lösen, obwohl funktionale Sprachen wie Haskell Konzepte enthalten, die sehr "mathematisch" sind. Ich würde vorschlagen, eine Website wie die Kahn Academy oder Project Euler zu besuchen . Lösen Sie die dortigen Probleme mit Code, und Sie verbessern gleichzeitig Ihre Codierungs- und Mathematikfähigkeiten.

Mike Cellini
quelle
5
+1 für beide Ressourcen. Ich muss allerdings sagen, dass ich Kalkül beim ersten Mal hasste . Das hat es auch noch nie so gut gemacht. Seit ich Lisp gelernt habe, macht es einfach Sinn . Ein bisschen Spaß auch.
Jason Lewis
1
Wenn Sie Haskell ausprobieren möchten, lesen Sie "Der Weg von Haskell zu Logik, Mathematik und Programmierung": Das Buch lehrt Haskell, Mathematik zu üben, und führt alle mathematischen Konzepte auf dem Weg ein. Es konzentriert sich jedoch auf mathematische Logik, Zahlentheorie und einige elementare Algebra. Kalkül wird nur ganz am Ende erwähnt, wenn Sie es geschafft haben, alles andere durchzugehen.
Vincent Zoonekynd
Ich würde auch spezielle CAS-Sprachen wie Mathematica (teuer!), Maxima oder Axiom (kostenlos) vorschlagen. Sobald Sie die Idee des Umschreibens von Begriffen, Regeln und Strategien haben, wird die gesamte Mathematik Sinn machen.
SK-Logik
Ich persönlich fand die Khan Academy sehr hilfreich, um die Lücken in meinen mathematischen Kenntnissen zu schließen.
jonners99
@ Jason Lewis - Wenn Ihr Problem mehr Unterrichtsstil als das Material ist und Sie vollständige Kurse wünschen, eignen sich die MIT OpenCourseware-Kurse hervorragend für viele mathematische Themen, einschließlich Analysis und lineare Algebra. Nicht praktisch, um nur ein bestimmtes Thema zu überarbeiten. Besonders gut hat mir der lineare Algebra-Kurs gefallen. MIT OpenCourseware eignet sich natürlich auch sehr gut für einige Informatik-Themen - insbesondere für die beiden Kurse für Algorithmen und Datenstrukturen. Es gab noch nie einen besseren Zeitpunkt, um sich in Ihrem eigenen Tempo mit hervorragenden kostenlosen Materialien weiterzubilden.
Steve314
5

Natürlich sollten Sie Mathematik durch Programmieren lernen. Wenn Sie versuchen, physische Objekte zu simulieren, müssen Sie alle Arten von Physik und Mathematik lernen, und Sie werden es genießen.

Kevin Cline
quelle
4

Das ist meine Einstellung ...

Durch die Programmierung können Sie Ihr Wissen testen

Als ich in der High School und in der Mittelschule war, programmierte ich meine Taschenrechner so, dass sie die monotone Mathematik für mich erledigten. Einige Leute behaupteten, es sei Betrug, aber ich habe immer argumentiert, dass ich die Programme nicht schreiben könnte, wenn ich die Mathematik nicht wirklich verstehe.

Nehmen wir zum Beispiel an, Sie wollten ein kleines Programm erstellen, um den C-Wert für A und B innerhalb des Satzes von Pythagoras zu berechnen. Wie machen wir es? Nun, das wissen wir:

A^2 + B^2 = C^2

Um nach C zu lösen, haben wir:

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

Daher könnte das Programm ungefähr so ​​aussehen (unter der Annahme geeigneter Header ist dies ein Beispiel):

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";

JEDOCH...

Wo und wie erwerben Sie dieses Wissen?

Im vorherigen Beispiel mussten wir wissen, wie man C innerhalb der Gleichung löst. A^2 + B^2 = C^2.Wenn wir nicht wüssten, beide Seiten zu quadratisieren, um C zu finden, wie könnten wir das Problem lösen?

IMO, es läuft darauf hinaus: Programmieren wird Sie nicht unbedingt in Mathematik unterrichten, aber es wird die Fähigkeiten verbessern, die Sie erwerben.

skippr
quelle
Ja, ich habe Ihren Standpunkt verstanden und bin damit einverstanden. Basierend auf Ihrer Antwort werde ich Mathematik lernen, wenn ich Probleme in der Programmierung löse, aber ich werde sie nicht ohne Wissen lösen können, also müsste ich nach einer Lösung suchen und so ist das, was mich Mathe lehren wird ...
SAFAD
2

Das SICP-Buch enthält einen sehr schönen Abschnitt über Mathematik. Aber ich würde vorschlagen, dass Sie versuchen, mindestens lineare Algebra, diskrete Mathematik und The Calculus zu verwenden. Wenn Sie nur aus Schreibprogrammen lernen, ist Ihre Ausbildung wahrscheinlich sehr tief, aber nicht sehr breit.

gam3
quelle
2

Ich denke, sie gehen Hand in Hand. Eine solide Grundlage in mathematischen Techniken eröffnet Optionen für die Programmierung, die Sie sonst nicht hätten, während die Programmierung interessante Möglichkeiten für das mathematische Lernen eröffnen kann.

Ich habe kürzlich angefangen, wxMaxima zu verwenden , ein schönes grafisches Front-End für das hervorragende Open-Source- Maxima- Computer-Algebra-System (auch bekannt als CAS , wie das kommerzielle Maple- oder Mathematica- System).

Es wird Ihnen nichts über Mathematik beibringen, aber es wird das Herumspielen mit Mathematik sicherlich interessanter und unterhaltsamer machen, was Sie an sich dazu ermutigen könnte, mehr zu lernen.

Mark Booth
quelle
2

Sie brauchen nicht viel Mathematik zum "Programmieren".

Sie brauchen Mathematik für "Informatik".

Wenn Sie vorhaben, bereits vorhandene Bibliothekslösungen für alles zu verwenden, ist es Ihnen wahrscheinlich egal, wie sie funktionieren. Wenn Sie jedoch Ihre eigenen Algorithmen und Datenstrukturen erstellen möchten, müssen Sie sich mit Mathematik auskennen, da CS stark auf Mathematik basiert.

user541686
quelle
1

Wenn Sie sich für KI, Datenverarbeitung, Physiksimulation oder Grafik interessieren, benötigen Sie Mathematik. Umgekehrt, wenn Sie nicht sind, dann denke ich, dass Sie nicht. Es geht darum, es zu benutzen oder zu verlieren. Warum Französisch lernen, wenn Sie nicht in Frankreich leben wollen? Es gibt viele Problemdomänen, die nur bedingte Logik erfordern.

Trotzdem gibt es eine natürliche Neigung in der Programmierung in Richtung Mathematik, und es wird Ihnen nur gut tun, etwas Verständnis dafür zu erlangen.

Sunwukung
quelle
1

Schauen Sie sich matlab an . Es ist eine Sprache, die für mathematische Funktionen im Code entwickelt wurde.

eine numerische Computerumgebung und eine Programmiersprache der vierten Generation ... MATLAB ermöglicht Matrixmanipulationen, das Zeichnen von Funktionen und Daten, die Implementierung von Algorithmen, die Erstellung von Benutzeroberflächen und die Schnittstelle zu Programmen, die in anderen Sprachen geschrieben sind ...

Obwohl MATLAB hauptsächlich für das numerische Rechnen gedacht ist, verwendet eine optionale Toolbox die symbolische MuPAD-Engine, die den Zugriff auf symbolische Rechenfunktionen ermöglicht. Ein zusätzliches Paket, Simulink, bietet grafische Multi-Domain-Simulation und modellbasiertes Design für dynamische und eingebettete Systeme ...

Tom Squires
quelle
matlab ist nur dann von Vorteil, wenn der Programmierer zuvor über fundierte mathematische Kenntnisse verfügt und auf einen bestimmten Bereich der Mathematik beschränkt ist.
Wirrbel
1

Mathematik ist eine Wissenschaft mit einem sehr breiten Bereich. Es gibt verschiedene Arten von Mathematik, die explizit überhaupt nichts gemeinsam haben (außer Mathematik).

Heutzutage wird Programmieren oft mit Mathematik in Verbindung gebracht, weil Computer rechnen und berechnen. Im Grunde tun sie dies mit ganzzahligen oder Gleitkommadatentypen in diskreten Schritten.

Es gibt Bereiche der Mathematik, die Sie durch Programmieren studieren können, indem Sie die Mathematik in einem Programm "approximieren". Nehmen wir an, Sie studieren die Differentialrechnung und berechnen numerische Werte für kleine Intervalle, um die Grenze der "reinen" Mathematik zu "emulieren".

Andere Aspekte der Programmierung lassen sich leicht auf Mathematik übertragen (möglicherweise nicht Teil Ihres Mathematikunterrichts an der High School, aber dennoch wertvolle Mathematik, die nicht Teil eines traditionellen Lehrplans ist). Typentheorie zum Beispiel - oder mathematische Induktion.

Oft ist die einzige Möglichkeit, über die "Korrektheit" eines Codeteils zu argumentieren, beispielsweise die mathematische Induktion. Diese Art von Argumentation kann insbesondere in funktionalen Sprachen (Rekursion usw.) gesehen werden.

Das heißt, es gibt viele Möglichkeiten, Mathematik während des Programmierens zu lernen, aber nicht jede Mathematik ist im Rechenmodell unserer Computer und Programmiersprachen leicht zugänglich.

wirrbel
quelle
0

Ich konnte den Blogeintrag nicht finden, aber ich erinnere mich an einen Designer-Typ aus der späten Zeit vor dem ersten Platzen der Blase (vor '01 -ish), der über die Entdeckung einer Liebe zur Mathematik bloggte, indem er Webentwickler wurde und erkannte, dass er es war Eigentlich ziemlich gut darin, obwohl er in der High School immer kläglich gescheitert war und angenommen hatte, dass er einfach nicht jemand war, der jemals gut in Mathe sein würde, und sich dann als künstlerischer Typ bezeichnete.

Nein, nicht ich. Ich war nur faul. Ich muss Trig gelegentlich neu lernen, aber das war es auch schon.

IMO, Sie können viel anständigen Code ohne große mathematische Kenntnisse schreiben, bis Sie im Grunde nicht können.

Was die Programmierung für jeden tun kann, der ein angemessenes Interesse daran hat, ist jedoch, Ihnen dabei zu helfen, die Vorstellung zu überwinden, ob Sie diese oder jene Person sind, und Ihnen die Werkzeuge zu geben, die Sie benötigen, um einfach Dinge auszuprobieren Entdecken Sie auf eigene Faust, wie weit Ihre Interessen Sie in einem bestimmten Studienbereich führen werden.

Und natürlich ist alles, was wir tun, an der Hüfte mit Mathematik verbunden, sodass Sie vielleicht feststellen, dass Sie bereits mehr gelernt haben, als Sie gedacht haben, wenn Sie beispielsweise lernen, worum es bei dieser Sache mit der Rückwärtssummierung geht.

Erik Reppen
quelle
0

Eine andere Möglichkeit besteht darin, Ihre Liebe zum Programmieren zu nutzen, um Ihren Wunsch nach Mathematik zu wecken. Fast alles wird leichter zu lernen, wenn Sie es mit einem bestimmten Problem lernen, auf das Sie es anwenden möchten, und Mathematik ist keine Ausnahme. Sie müssen nur mathematische Programmierprobleme herausfinden, die Sie interessieren, und sie als Grund verwenden, um die damit verbundene Mathematik zu lernen. Lernen Sie die lineare Algebra, damit Sie beispielsweise mit Grafiken oder Wahrscheinlichkeiten und Statistiken für Bildverarbeitung / Computer Vision spielen können.

Ich denke, Ihr Kilometerstand wird diesbezüglich variieren, da verschiedene Leute unterschiedliche Arten haben, Dinge zu lernen, aber sich hinzusetzen und Mathematik abstrakt zu lernen, um Mathematik zu lernen, hat für mich einfach nie funktioniert.

Evicatos
quelle
-2

Nun, Sie können die Schüler bitten, einige Geometrieprobleme zu lösen, z. B. das Zeichnen von Quadrat, Fünfeck, Sechseck und Kreis mit Scratch. Fordern Sie sie auf, Lösungen zu entwickeln, und beantworten Sie sie NICHT, wie sie codiert werden sollen. Lassen Sie sie Lösungen erkunden und testen. Zumindest können Sie Dinge wie die Winkelsumme in Polygonen fragen. Dann können sie die Algorithmen und ihre eigenen Kategorien erstellen.

user126143
quelle