프로그래밍을 통해 수학을 배울 수 있습니까, 아니면 프로그래밍을위한 수학을 배워야합니까? [닫은]


10

나는 수학에서 최고는 아니지만 매우 끔찍하지는 않지만 평균보다 낮습니다. 나는 항상 수학을 개선하려고 생각했지만 학교와 책은 너무 지루 해져서 일을하지 않았습니다. 내가 지루하지 않은 유일한 것은 코딩과 게임뿐이므로 수학 문제를 해결하는 프로그램을 코딩하면 수학을 더 잘 이해하는 데 도움이 될 것입니다. 이러한 문제는 대부분 한계 (미적분), 함수, 미적 미적분 및 이전에 언급 한 것과 비슷한 다른 주제들 (이미 좋지 않다고 말했다).

내 질문은 : 특정 프로그램 코딩을 수행하면 수학에 대한 더 나은 지식을 얻을 수 있습니까? 가능하면 물리학도 그렇게 가능합니까? 또는 코딩을 향상시키기 위해 프로그래밍 전에 수학을 배워야합니까?

PS : C ++가 선호되는 언어입니다.


5
그것은 나를 위해 다른 방식으로 일했습니다. 대학원 수준의 통계 수업을 더 잘 수행 할 수 있도록 컴퓨터 프로그래밍을 배웠습니다. 나는 통계보다 프로그래밍이 더 좋았고 커리어 방향을 바꿨습니다.
jfrankcarr



수학에 왕도는 없습니다.
Karl

답변:


16

Haskell과 같은 기능적 언어에는 매우 "수학적인"개념이 있지만, 실제로 수학과 물리 문제를 해결하기 위해 프로그래밍을 사용하는 경우 프로그래밍에서 수학이나 물리학을 배울 수 있습니다. 칸 아카데미 또는 프로젝트 오일러 와 같은 웹 사이트를 방문하는 것이 좋습니다 . 코드를 사용하여 문제를 해결하면 코딩 기술과 수학 기술을 동시에 향상시킬 수 있습니다.


5
두 자원 모두 +1 그러나 나는 미적분학을 처음으로 싫어했다 . 그것도 잘하지 못했습니다. Lisp을 배우기 때문에 이해가 됩니다. 재미도 있습니다.
Jason Lewis

1
Haskell을 시험해보고 싶다면 "Haskell의 논리, 수학 및 프로그래밍으로가는 길"을 읽어보십시오.이 책은 Haskell에게 수학을 가르치고 그 과정에서 모든 수학적 개념을 소개합니다. 그러나 수학적 논리, 수 이론 및 일부 대수에 중점을 둡니다. 미적분학은 다른 모든 것을 다룰 수 있다면 맨 끝에 언급됩니다.
Vincent Zoonekynd

Mathematica (고가!), Maxima 또는 Axiom (무료)과 같은 전문 CAS 언어도 제안합니다. 용어 재 작성, 규칙 및 전략에 대한 아이디어를 얻으면 수학 전체가 이해되기 시작합니다.
SK-logic

칸 아카데미는 개인적으로 수학 지식의 격차를 메우는 데 매우 도움이된다는 것을 개인적으로 알게되었습니다.
jonners99 2009 년

@Jason Lewis-문제가 자료보다 더 많은 교육 스타일이고 전체 과정을 원한다면 MIT OpenCourseware 과정은 미적분학 및 선형 대수를 포함한 많은 수학 주제에 탁월합니다. 그러나 하나의 특정 주제를 수정하는 것만으로는 실용적이지 않습니다. 나는 특히 선형 대수 과정을 좋아했습니다. MIT OpenCourseware는 물론 일부 컴퓨터 과학 주제, 특히 두 알고리즘 및 데이터 구조 과정에 매우 유용합니다. 우수한 무료 자료로 자신의 속도에 맞는 교육을받을 수있는 더 좋은 시간은 없었습니다.
Steve314

5

분명히 프로그래밍을 통해 수학을 배워야합니다. 물리 객체를 시뮬레이션하려고 시도하면 모든 종류의 물리와 수학을 배우고 즐길 수 있습니다.


4

이것은 나의 테이크입니다 ...

프로그래밍은 지식을 테스트 하는 데 도움이됩니다

고등학교와 중학교에있을 때는 계산기를 프로그래밍하여 단조로운 수학을하도록했습니다. 어떤 사람들은 그것이 속임수라고 주장했지만, 나는 수학을 정말로 이해하지 못하면 프로그램을 작성할 수 없다고 항상 주장했습니다.

예를 들어 피타고라스 정리 내에서 A와 B가 주어진 C 값을 계산하는 작은 프로그램을 만들고 싶다고 가정 해 봅시다. 우리는 어떻게합니까? 우리는 그것을 알고 있습니다 :

A^2 + B^2 = C^2

C를 풀기 위해

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

따라서 프로그램은 다음과 같을 수 있습니다 (적절한 헤더를 가정하면, 이것은 뼈의 예입니다).

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

하나...

해당 지식을 어디서 어떻게 얻습니까?

앞의 예에서 우리는 방정식 내에서 C를 풀어야하는 방법을 A^2 + B^2 = C^2.알아야했습니다.

IMO는 다음과 같이 요약됩니다. 프로그래밍은 절대적으로 수학을 가르쳐주지는 않지만 습득 한 기술을 향상시킵니다.


예, 나는 당신의 요점을 얻었고 그것에 동의합니다. 당신의 대답을 바탕으로 프로그래밍에서 문제를 해결할 때 수학을 배울 것입니다. 그러나 지식 없이는 해결할 수 없으므로 해결책을 찾아야합니다. 수학을 가르쳐 줄 것입니다 ...
SAFAD

2

SICP 책은 수학에 아주 좋은 섹션이 있습니다. 그러나 나는 당신이 최소한의 선형 대수, 이산 수학, 그리고 미적분을하려고 노력할 것을 제안합니다. 만약 당신이 프로그램을 작성해서 만 배우면, 당신의 교육은 매우 깊지 만 광범위하지는 않습니다.


2

나는 그들이 손을 잡고 있다고 생각합니다. 수학 기술의 탄탄한 접지는 그렇지 않은 프로그래밍 옵션을 열어주는 반면, 프로그래밍은 흥미로운 수학 연구 길을 열 수 있습니다.

나는 최근에 오픈 소스 Maxima Computer Algebra System ( 상업용 Maple 또는 Mathematica 시스템 과 같은 CAS ) 의 멋진 그래픽 프론트 엔드 인 wxMaxima를 사용하기 시작했습니다 .

그것은 스스로 수학에 대해 아무것도 가르쳐주지 않지만, 수학 자체를 통해 더 재미 있고 재미있게 놀아 줄 것입니다.


2

"프로그래밍"에 대해 많은 수학이 필요하지 않습니다.

"컴퓨터 과학"에 대한 수학이 필요합니다.

기존 라이브러리 솔루션을 모두 사용할 계획이라면 작동 방식에 신경 쓰지 않아도됩니다. 그러나 자체 알고리즘과 데이터 구조를 만들려는 경우 CS는 수학 기반이므로 수학을 알아야합니다.


1

AI, 데이터 처리, 물리 시뮬레이션 또는 그래픽 작업에 관심이 있다면 수학이 필요합니다. 반대로, 당신이 그렇지 않다면, 나는 당신이하지 않는다고 생각합니다. 그것을 사용하거나 잃어버린 경우, 프랑스에 살고 싶지 않다면 왜 프랑스어를 배우십니까? 조건부 논리 만 필요한 많은 문제 도메인이 있습니다.

수학에 대한 프로그래밍에는 자연스런 경사가 있으며, 그것을 이해하는 것이 좋을 것입니다.


1

matlab을 살펴보십시오 . 코드에서 수학 함수를 수행하도록 설계된 언어입니다.

수치 컴퓨팅 환경 및 4 세대 프로그래밍 언어 ... MATLAB은 매트릭스 조작, 함수 및 데이터 플로팅, 알고리즘 구현, 사용자 인터페이스 생성 및 다른 언어로 작성된 프로그램과의 인터페이스를 허용합니다 ...

MATLAB은 주로 수치 컴퓨팅을위한 것이지만 옵션 도구 상자는 MuPAD 기호 엔진을 사용하여 기호 컴퓨팅 기능에 액세스 할 수 있습니다. 추가 패키지 Simulink는 동적 및 임베디드 시스템을위한 그래픽 다중 도메인 시뮬레이션 및 모델 기반 설계를 추가합니다 ...


matlab은 프로그래머가 사전에 건전한 수학 지식을 가지고 있고 특정 수학 영역으로 제한되는 경우에만 유용합니다.
wirrbel

1

수학은 매우 광범위한 영역의 과학입니다. 공통적 으로 전혀 수학이없는 다른 종류의 수학이 있습니다 (수학 제외).

컴퓨터는 계산하고 계산하기 때문에 프로그래밍은 종종 수학과 관련이 있습니다. 대부분 기본적으로 정수 또는 부동 소수점 데이터 유형으로이 단계를 수행합니다.

프로그램에서 수학을 "근사치"하여 프로그래밍하여 공부할 수있는 수학 분야가 있습니다. 미분 미적분을 연구하고 작은 간격에 대한 숫자 값을 계산하여 "순수한"수학의 한계를 "모방"한다고 가정합니다.

프로그래밍의 다른 측면은 수학에 쉽게 매핑됩니다 (고등 수학 수업의 일부는 아니지만 기존 커리큘럼의 일부가 아닌 귀중한 수학). 예를 들어 유형 이론 또는 수학적 귀납법.

종종 코드의 "정확성"에 대해 추론하는 유일한 방법은 예를 들어 수학적 유도입니다. 이러한 종류의 추론은 특히 기능적 언어 (재귀 등)에서 볼 수 있습니다.

즉, 프로그래밍하는 동안 수학을 배우는 많은 방법이 있지만 컴퓨터와 프로그래밍 언어의 계산 모델에서 모든 수학에 쉽게 접근 할 수있는 것은 아닙니다.


0

블로그 항목을 찾을 수 없었지만 웹 개발자가되어서 수학의 사랑을 발견하고 그가 그는 고등학교에서 항상 비참하게 실패했지만 수학에 능숙한 사람이 아니라 예술적 유형으로 자신을 gg는 사람이 아니라고 생각했지만 실제로는 그것에 능숙합니다.

아니에요 나는 단지 게으른했다. 나는 때때로 삼각법을 다시 배워야하지만 그게 전부입니다.

IMO, 당신은 기본적으로 할 수 없을 때까지 무거운 수학 지식없이 많은 괜찮은 코드를 작성할 수 있습니다.

그러나 합리적인 관심을 가지고있는 사람에게 프로그래밍을 할 수있는 것은 이런 사람인지 또는 그런 사람인지에 대한 아이디어를 극복하고 필요한 도구를 제공하는 데 도움이됩니다. 주어진 연구 분야에서 당신의 관심사가 얼마나 멀리 당신을 데려 갈지 스스로 발견하십시오.

그리고 물론 우리가하는 모든 일은 엉덩이와 수학과 연결되어 있으므로, 당신은 당신이 그 뒤로 거슬러 올라가는 것의 의미에 대해 배우는 것과 같은 것을 할 때 이미 알고있는 것보다 더 많이 배웠 음을 알게 될 것입니다.


0

또 다른 옵션은 할 프로그램의 당신의 사랑을 사용하는 것입니다 드라이브 수학을 배울 수있는 당신의 욕망을. 당신이 그것을 적용하고자하는 특정한 문제로 배우고 있고 수학도 예외가 아니라면 거의 배우기가 쉬워지는 경향이 있습니다. 관심있는 수학 무거운 프로그래밍 문제를 찾아서 관련된 수학을 배우기위한 이유로 사용하면됩니다. Linear Algebra를 학습하여 예를 들어 그래픽 또는 이미지 처리 / 컴퓨터 비전 유형에 대한 확률 및 통계로 재생할 수 있습니다.

각기 다른 사람들이 학습하는 방법이 다르기 때문에 마일리지가 달라질 것이라고 생각하지만 수학 학습을 위해 추상적으로 수학을 배우고 배우는 것은 결코 결코 효과가 없었습니다.


-2

글쎄, 학생들에게 스크래치로 정사각형, 오각형, 육각형 및 원을 그리는 것과 같은 기하학 문제를 해결하도록 요청할 수 있습니다. 솔루션 개발에 도전하고 코딩 방법에 대해 답변하지 마십시오. 솔루션을 탐색하고 테스트 할 수 있습니다. 최소한 다각형의 각도 합계와 같은 것을 요청할 수 있습니다. 그런 다음 알고리즘과 자체 범주를 작성할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.