È possibile imparare la matematica tramite la programmazione o dovresti imparare la matematica per la programmazione? [chiuso]


10

Non sono il migliore in matematica, neanche molto orribile, ma inferiore alla media, ho sempre pensato di migliorare la mia matematica, ma scuole e libri non hanno fatto il lavoro perché mi annoio troppo in fretta. L'unica cosa di cui non mi annoio è la codifica e il gioco, quindi ho pensato che se la codifica di un programma che risolve problemi matematici mi aiuta a capire meglio la matematica, la maggior parte di questi problemi sono limiti (calcolo), funzioni, calcolo differenziale e alcuni altri argomenti (ho già detto che non sono così buono) simili al precedente notato.

La mia domanda è: sono in grado di ottenere una migliore conoscenza della matematica se faccio qualche programma specifico e, se possibile, anche la fisica è possibile in questo modo? O mi sbaglio e la matematica dovrebbe essere appresa prima della programmazione per migliorare la mia codifica?

PS: C ++ è la lingua preferita.


5
Ha funzionato al contrario per me. Ho imparato la programmazione informatica per aiutarmi a lavorare meglio nelle lezioni di statistica a livello universitario. Ho scoperto che mi piaceva programmare meglio delle statistiche e ho cambiato la direzione della mia carriera.
jfrankcarr,



Non esiste Royal Road per la matematica, signore.
Karl,

Risposte:


16

Imparerai la matematica o la fisica dalla programmazione solo se effettivamente utilizzerai la programmazione per risolvere problemi di matematica e fisica, anche se linguaggi funzionali come Haskell hanno concetti che sono molto "mathici". Suggerirei di visitare un sito web come Kahn Academy o Project Euler . Risolvi i problemi lì usando il codice e migliorerai allo stesso tempo sia le tue abilità di codifica sia le tue abilità matematiche.


5
+1 per entrambe le risorse. Devo dire, tuttavia, che ho odiato il calcolo la prima volta. Non l'ho mai fatto bene. Da quando ho imparato Lisp, ha senso . Un po 'anche divertente.
Jason Lewis,

1
Se vuoi provare Haskell, puoi leggere "La strada di Haskell verso la logica, la matematica e la programmazione": il libro insegna a Haskell a fare matematica e introduce tutti i concetti matematici lungo la strada. Tuttavia, si concentra sulla logica matematica, sulla teoria dei numeri e su qualche algebra elementare. Il calcolo è menzionato solo alla fine, se sei riuscito a passare tutto il resto.
Vincent Zoonekynd,

Suggerirei anche linguaggi CAS specializzati, come Mathematica (costoso!), Maxima o Axiom (gratuito). Una volta che hai avuto l'idea di riscrivere i termini, le regole e le strategie, l'intera matematica avrebbe iniziato a dare un senso.
SK-logic,

Personalmente ho trovato Khan Academy molto utile per colmare le lacune nelle mie conoscenze matematiche.
jonners99,

@Jason Lewis - Se il tuo problema è uno stile di insegnamento più del materiale e desideri corsi completi, io i corsi OpenCourseware del MIT sono eccellenti per molti argomenti di matematica, tra cui calcolo e algebra lineare. Tuttavia, non è pratico solo per rivedere un argomento specifico. Mi è particolarmente piaciuto il corso di algebra lineare. MIT OpenCourseware è anche ottimo per alcuni argomenti di informatica, in particolare i corsi di algoritmi e strutture dati. Non c'è mai stato un momento migliore per educare te stesso al tuo ritmo con materiali gratuiti eccellenti.
Steve314,

5

Ovviamente dovresti imparare la matematica attraverso la programmazione. Se provi a simulare oggetti fisici dovrai imparare ogni tipo di fisica e matematica e ti divertirai.


4

Questa è la mia opinione ...

La programmazione ti aiuterà a mettere alla prova la tua CONOSCENZA

Quando ero al liceo e alla scuola media, programmavo i miei calcolatori per fare la matematica monotona per me. Alcune persone hanno affermato che era un imbroglio, ma ho sempre sostenuto che non sarei stato in grado di scrivere i programmi se non avessi veramente capito la matematica.

Ad esempio, supponiamo che tu voglia creare un piccolo programma per calcolare il valore C, dato A e B, all'interno del teorema di Pitagora. Come lo facciamo? Bene, sappiamo che:

A^2 + B^2 = C^2

Quindi, per risolvere per C, abbiamo:

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

Pertanto, il programma potrebbe essere qualcosa di simile (supponendo che le intestazioni siano corrette, questo è un esempio di ossa nude):

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

PERÒ...

Dove e come acquisisci tale conoscenza?

Nell'esempio precedente, dovevamo sapere come risolvere il problema C all'interno dell'equazione A^2 + B^2 = C^2.Se non sapessimo radicare i quadrati su entrambi i lati per trovare C, come potremmo risolvere il problema?

IMO, si riduce a: la programmazione non insegnerà assolutamente la matematica, ma MIGLIORERÀ le abilità acquisite.


sì, ho capito il tuo punto e sono d'accordo con esso, in base alla tua risposta, imparerò la matematica quando risolvo i problemi di programmazione, tuttavia non sarò in grado di risolverli senza conoscenza, quindi dovrei cercare una soluzione e che è ciò che mi insegnerà la matematica ...
SAFAD

2

Il libro SICP ha una sezione molto bella sulla matematica. Ma suggerirei di provare a prendere algebra lineare, matematica discreta e The Calculus come minimo, se impari solo dalla scrittura di programmi la tua educazione probabilmente sarà molto profonda, ma non molto ampia.


2

Penso che vadano di pari passo. Una solida base nelle tecniche matematiche aprirà le opzioni nella programmazione che altrimenti non avresti, nel frattempo la programmazione può aprire interessanti percorsi di studio matematico.

Di recente ho iniziato a utilizzare wxMaxima , un bel front-end grafico per l'eccellente sistema di algebra al computer Maxima open source (alias un CAS , come i sistemi commerciali Maple o Mathematica ).

Non ti insegnerà nulla sulla matematica da solo, ma renderà sicuramente più interessante e divertente giocare con la matematica, che di per sé potrebbe incoraggiarti a saperne di più.


2

Non hai bisogno di molta matematica per la "programmazione".

Hai bisogno di matematica per "informatica".

Se hai intenzione di utilizzare soluzioni di libreria preesistenti per tutto, probabilmente non ti interessa come funzionano. Ma se hai intenzione di creare i tuoi algoritmi e strutture dati, dovrai conoscere la matematica, poiché CS è fortemente basato sulla matematica.


1

Se sei interessato a lavorare in AI, elaborazione dei dati, simulazione fisica o grafica, allora hai bisogno di matematica. Al contrario, se non lo sei, allora penso che non lo faccia. È un caso di usarlo o di perderlo, perché imparare il francese se non vuoi vivere in Francia? Esistono molti domini problematici che richiedono solo una logica condizionale.

Detto questo, c'è una naturale inclinazione nella programmazione verso la matematica, e non ti farà altro che farti capire.


1

Dai un'occhiata a matlab . È un linguaggio progettato per svolgere funzioni matematiche nel codice.

un ambiente di calcolo numerico e un linguaggio di programmazione di quarta generazione ... MATLAB consente la manipolazione di matrici, la stampa di funzioni e dati, l'implementazione di algoritmi, la creazione di interfacce utente e l'interfaccia con programmi scritti in altre lingue ...

Sebbene MATLAB sia destinato principalmente al calcolo numerico, una cassetta degli attrezzi opzionale utilizza il motore simbolico MuPAD, consentendo l'accesso a capacità di calcolo simbolico. Un pacchetto aggiuntivo, Simulink, aggiunge la simulazione grafica multi-dominio e la progettazione basata su modelli per sistemi dinamici e integrati ...


matlab è utile solo quando il programmatore ha una solida conoscenza matematica in anticipo ed è limitato a un certo dominio della matematica.
Wirrbel,

1

La matematica è una scienza con un dominio molto ampio. Esistono diversi tipi di matematica che non hanno esplicitamente nulla in comune (a parte essere matematica).

Ora la programmazione è spesso associata alla matematica perché i computer calcolano e calcolano, fondamentalmente lo fanno con tipi di dati interi o in virgola mobile in passaggi discreti.

Ci sono campi matematici che puoi studiare programmando "approssimando" la matematica in un programma. Diciamo che studi il calcolo differenziale e calcoli i valori numerici per piccoli intervalli così "emulando" il limite della matematica "pura".

Altri aspetti della programmazione sono facilmente mappati alla matematica (forse non fanno parte della tua lezione di matematica al liceo, ma sono comunque preziosi calcoli matematici che non fanno parte di un curriculum tradizionale). Teoria dei tipi per esempio - o induzione matematica.

Spesso l'unico modo di ragionare sulla "correttezza" di un pezzo di codice è ad esempio l'induzione matematica. Questo tipo di ragionamento può essere visto soprattutto nei linguaggi funzionali (ricorsione, ecc.).

Cioè ci sono molti modi per imparare la matematica durante la programmazione, ma non tutta la matematica è facilmente accessibile nel modello computazionale dei nostri computer e linguaggi di programmazione.


0

Non sono riuscito a trovare il blog, ma ricordo un "tipo" di designer della tarda pre-prima era scoppiata a bolle d'aria (prima del '01 -ish) che ha scritto sul blog di scoprire l'amore per la matematica diventando uno sviluppatore web e rendendosi conto che lo era in realtà abbastanza bravo in questo, anche se aveva sempre fallito miseramente al liceo e aveva supposto che non fosse qualcuno che sarebbe mai stato bravo in matematica e poi si è affermato come un tipo artistico.

No io no. Ero solo pigro. Devo riapprendere di tanto in tanto il trig, ma questo è tutto.

IMO, puoi scrivere un sacco di codice decente senza pesanti conoscenze matematiche fino a quando non puoi, in pratica.

Ciò che la programmazione PU do fare per chiunque abbia un ragionevole interesse in ciò, tuttavia, è aiutarti a superare l'idea che tu sia questo tipo di persona o quel tipo di persona e darti gli strumenti di cui hai bisogno solo per provare cose e scopri da solo fino a che punto i tuoi interessi ti porteranno in un determinato campo di studio.

E, naturalmente, tutto ciò che stiamo facendo è collegato all'anca con la matematica, quindi potresti scoprire di aver già imparato più di quello che hai realizzato quando fai cose come imparare su cosa sia quella cosa della sommatoria all'indietro-e.


0

Un'altra opzione è usare il tuo amore per la programmazione per guidare il tuo desiderio di imparare la matematica. Quasi tutto tende a diventare più facile da imparare se lo stai imparando con un problema specifico a cui vuoi applicarlo e la matematica non fa eccezione. Hai solo bisogno di capire i pesanti problemi di programmazione che ti interessano e usarli come motivo per imparare la matematica associata. Imparare l'algebra lineare in modo da poter giocare con la grafica, ad esempio, o probabilità e statistiche per l'elaborazione di immagini / cose di tipo computer vision.

Penso che il tuo chilometraggio varierà su questo dato che persone diverse hanno modi diversi di imparare le cose, ma sedersi e imparare la matematica in astratto per motivi di apprendimento della matematica non ha mai funzionato per me.


-2

Bene, puoi chiedere agli studenti di risolvere alcuni problemi di geometria come disegnare un quadrato, un pentagono, un esagono e un cerchio con Scratch. Sfidali a sviluppare soluzioni e NON rispondere a come codificarlo. Lasciateli esplorare e testare soluzioni. Almeno puoi chiedere cose come la somma degli angoli in poligoni. Quindi possono costruire gli algoritmi e le proprie categorie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.