É possível aprender matemática via programação ou você deve aprender matemática para programação? [fechadas]

10

Não sou o melhor em matemática, nem muito horrível, mas abaixo da média, sempre pensei em melhorar minha matemática, mas as escolas e os livros não fizeram o trabalho porque me cansava muito rápido. A única coisa com a qual não me aborreço é em codificação e jogos. Por isso, pensei que codificar um programa que resolve problemas matemáticos me ajudará a entender melhor a matemática, a maioria desses problemas são limites (cálculo), funções, cálculo diferencial e alguns outros assuntos (eu já disse que não sou tão bom) semelhantes ao observado anteriormente.

Minha pergunta é: Posso obter um melhor conhecimento em matemática se eu fizer alguma codificação específica de programa e, se possível, a física também é possível? Ou estou errado e a matemática deve ser aprendida antes da programação para ajudar a melhorar minha codificação?

PS: C ++ é o idioma preferido.

SAFAD
fonte
5
Funcionou o contrário para mim. Aprendi programação de computadores para me ajudar a trabalhar melhor nas aulas de estatística em nível de pós-graduação. Descobri que gostava mais de programar do que estatísticas e mudei minha direção de carreira.
jfrankcarr
Não há Royal Road para a matemática, senhor.
31413 Karl

Respostas:

16

Você só aprenderá matemática ou física da programação se realmente usar a programação para resolver problemas de matemática e física, embora linguagens funcionais como Haskell tenham conceitos neles muito "matemáticos". Eu sugeriria ir a um site como a Kahn Academy ou o Project Euler . Resolva os problemas lá usando código e você aprimorará suas habilidades de codificação e matemática ao mesmo tempo.

Mike Cellini
fonte
5
+1 para ambos os recursos. Mas tenho que dizer que odiei o cálculo pela primeira vez. Também nunca foi tão bom nisso. Desde que aprendeu o Lisp, isso faz sentido . Meio divertido também.
Jason Lewis
11
Se você quiser experimentar o Haskell, poderá ler "O caminho para a lógica, a matemática e a programação em Haskell": o livro ensina Haskell a fazer matemática e apresenta todos os conceitos matemáticos ao longo do caminho. No entanto, ele se concentra na lógica matemática, teoria dos números e alguma álgebra elementar. O cálculo é mencionado apenas no final, se você conseguiu passar por todo o resto.
Vincent Zoonekynd
Eu também sugeriria linguagens CAS especializadas, como Mathematica (caro!), Maxima ou Axiom (gratuito). Uma vez que você tenha a idéia de reescrever termos, regras e estratégias, toda a matemática começará a fazer sentido.
SK-logic
Pessoalmente, achei a Khan Academy muito útil para preencher as lacunas no meu conhecimento de matemática.
jonners99
Jason Lewis - Se o seu problema é mais estilo de ensino que o material, e você quer cursos completos, os cursos do MIT OpenCourseware são excelentes para muitos tópicos de matemática, incluindo cálculo e álgebra linear. No entanto, não é prático apenas revisar um tópico específico. Gostei particularmente do curso de álgebra linear. O MIT OpenCourseware também é muito bom para alguns tópicos de ciência da computação - especialmente os dois cursos de algoritmos e estruturas de dados. Nunca houve um momento melhor para se educar no seu próprio ritmo com excelentes materiais gratuitos.
Steve314
5

Obviamente, você deve aprender matemática através da programação. Se você tentar simular objetos físicos, precisará aprender todos os tipos de física e matemática e irá se divertir.

Kevin Cline
fonte
4

Esta é a minha opinião ...

A programação ajudará a testar seu conhecimento

Quando eu estava no ensino médio e no ensino médio, programava minhas calculadoras para fazer a matemática monótona para mim. Algumas pessoas alegaram que estava trapaceando, mas eu sempre argumentei que não seria capaz de escrever os programas se não entendesse verdadeiramente a matemática.

Por exemplo, digamos que você queira criar um pequeno programa para calcular o valor C, dados A e B, dentro do teorema de Pitágoras. Como fazemos isso? Bem, sabemos que:

A^2 + B^2 = C^2

Então, para resolver C, temos:

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

Portanto, o programa pode ser algo como (assumindo cabeçalhos adequados, este é um exemplo básico):

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

CONTUDO...

Onde e como você adquire esse conhecimento?

No exemplo anterior, precisávamos saber como resolver C dentro da equação. A^2 + B^2 = C^2.Se não soubermos raiz quadrada de ambos os lados para encontrar C, como poderíamos resolver o problema?

Na IMO, tudo se resume a: a programação não ensina absolutamente a matemática, mas MELHORIA as habilidades que você adquire.

skippr
fonte
sim, entendi seu ponto de vista e concordo com ele. Com base na sua resposta, aprenderei matemática quando resolver problemas de programação, no entanto, não poderei resolvê-los sem conhecimento, portanto, teria que procurar uma solução e isso é o que vai me ensinar matemática ...
Safed
2

O livro do SICP tem uma seção muito boa de matemática. Mas eu sugiro que você tente usar álgebra linear, matemática discreta e The Calculus no mínimo, se você aprender apenas com programas de escrita, sua educação provavelmente será muito profunda, mas não muito ampla.

gam3
fonte
2

Eu acho que eles andam de mãos dadas. Uma sólida base em técnicas matemáticas abrirá opções de programação que você não teria de outra forma, enquanto isso a programação pode abrir caminhos interessantes de estudo matemático.

Recentemente, comecei a usar o wxMaxima , um bom front-end gráfico para o excelente sistema de álgebra computacional Maxima de código aberto (também conhecido como CAS , como os sistemas comerciais Maple ou Mathematica ).

Ele não ensinará nada sobre matemática por si só, mas certamente fará com que brincar com matemática seja mais interessante e divertido, o que por si só poderia encorajá-lo a aprender mais.

Mark Booth
fonte
2

Você não precisa de muita matemática para "programação".

Você precisa de matemática para "ciência da computação".

Se você planeja usar soluções de bibliotecas pré-existentes para tudo, provavelmente não se importa como elas funcionam. Mas se você planeja criar seus próprios algoritmos e estruturas de dados, precisará conhecer matemática, pois o CS é fortemente baseado em matemática.

user541686
fonte
1

Se você estiver interessado em trabalhar em IA, processamento de dados, simulação de física ou gráficos, precisará de matemática. Por outro lado, se você não estiver, acho que não. É um caso de uso ou perda, por que aprender francês se você não quer morar na França? Existem muitos domínios problemáticos que exigem apenas lógica condicional.

Dito isto, há uma inclinação natural na programação para a matemática, e você não fará nada além de ser bom para entender um pouco.

sunwukung
fonte
1

Dê uma olhada no Matlab . É uma linguagem projetada para executar funções matemáticas no código.

um ambiente de computação numérica e linguagem de programação de quarta geração ... O MATLAB permite manipulações matriciais, plotagem de funções e dados, implementação de algoritmos, criação de interfaces de usuário e interface com programas escritos em outras linguagens ...

Embora o MATLAB seja destinado principalmente à computação numérica, uma caixa de ferramentas opcional usa o mecanismo simbólico MuPAD, permitindo acesso a recursos de computação simbólica. Um pacote adicional, o Simulink, adiciona simulação gráfica de vários domínios e design baseado em modelo para sistemas dinâmicos e incorporados ...

Tom Squires
fonte
O matlab só é benéfico quando o programador possui um conhecimento matemático prévio e está limitado a um determinado domínio da matemática.
Wirrbel
1

A matemática é uma ciência com um domínio muito amplo. Existem diferentes tipos de matemática que explicitamente não têm nada em comum (além de matemática).

Agora, a programação é frequentemente associada à matemática, porque os computadores calculam e calculam; o mais fundamental é que eles fazem isso com tipos de dados inteiros ou de ponto flutuante em etapas discretas.

Existem campos de matemática que você pode estudar programando "aproximando" a matemática de um programa. Digamos que você estude o cálculo diferencial e calcule valores numéricos para pequenos intervalos, "emulando" o limite da matemática "pura".

Outros aspectos da programação são facilmente mapeados para a matemática (talvez não faça parte da sua aula de matemática do ensino médio, mas ainda uma matemática valiosa que não faz parte de um currículo tradicional). Teoria dos tipos, por exemplo - ou indução matemática.

Freqüentemente, a única maneira de raciocinar sobre "correção" de um pedaço de código é a indução matemática, por exemplo. Esse tipo de raciocínio pode ser visto especialmente em linguagens funcionais (recursão etc.).

Ou seja, existem muitas maneiras de aprender matemática durante a programação, mas nem toda a matemática é facilmente acessível no modelo computacional de nossos computadores e linguagens de programação.

wirrbel
fonte
0

Não consegui encontrar a entrada do blog, mas lembro-me de um "tipo" de designer da era anterior à primeira explosão de bolhas (antes de '01 -ish) que blogou sobre descobrir o amor pela matemática ao se tornar um desenvolvedor da web e perceber que ele era na verdade, muito bom nisso, mesmo que ele sempre tenha falhado miseravelmente no ensino médio e assumido que ele simplesmente não era alguém que seria bom em matemática e depois se considerava um tipo artístico.

Não eu não. Eu era apenas preguiçoso. Eu tenho que reaprender trigonometria ocasionalmente, mas é isso.

Na IMO, você pode escrever um monte de código decente sem conhecimentos pesados ​​de matemática até não conseguir, basicamente.

O que a programação PODE fazer por qualquer pessoa com uma quantidade razoável de interesse nela, no entanto, é ajudá-lo a superar a ideia de ser esse tipo de pessoa ou esse tipo de pessoa, além de fornecer as ferramentas necessárias para experimentar as coisas descubra e descubra por conta própria até que ponto seus interesses o levarão em um determinado campo de estudo.

E é claro que tudo o que estamos fazendo está ligado ao quadril com a matemática, para que você descubra que já aprendeu mais do que imaginou quando faz coisas como aprender sobre o que é essa coisa de soma de trás para frente.

Erik Reppen
fonte
0

Outra opção é usar seu amor pela programação para direcionar seu desejo de aprender matemática. Praticamente qualquer coisa tende a se tornar mais fácil de aprender se você estiver aprendendo com um problema específico ao qual deseja aplicá-lo e a matemática não for uma exceção. Você só precisa descobrir problemas pesados ​​de programação de matemática que lhe interessam e usá-los como um motivo para aprender a matemática associada. Aprenda Álgebra Linear para que você possa brincar com gráficos, por exemplo, ou probabilidade e estatística para processamento de imagens / material do tipo visão por computador.

Eu acho que sua milhagem vai variar nisso, já que pessoas diferentes têm maneiras diferentes de aprender as coisas, mas sentar e aprender matemática em abstrato para aprender matemática simplesmente nunca funcionou para mim.

Evicatos
fonte
-2

Bem, você pode pedir aos alunos que resolvam alguns problemas de geometria, como desenhar quadrado, pentágono, hexágono e círculo com o Scratch. Desafie-os a desenvolver soluções e NÃO responda sobre COMO codificá-lo. Deixe-os explorar e testar soluções. Pelo menos você pode perguntar coisas como a soma dos ângulos nos polígonos. Então eles podem construir os algoritmos e suas próprias categorias.

user126143
fonte