Có thể học toán thông qua lập trình, hay bạn nên học toán để lập trình? [đóng cửa]


10

Tôi không phải là người giỏi nhất môn toán, cũng không quá kinh khủng, nhưng thấp hơn mức trung bình, tôi luôn suy nghĩ để cải thiện môn toán của mình, nhưng trường học và sách không làm được việc vì tôi chán quá nhanh. Điều duy nhất tôi không cảm thấy nhàm chán là mã hóa và chơi game, vì vậy tôi nghĩ rằng nếu mã hóa một chương trình giải quyết các vấn đề toán học sẽ giúp tôi hiểu toán học tốt hơn, hầu hết các vấn đề này là giới hạn (tính toán), hàm số, phép tính vi phân và một số môn học khác (tôi đã nói là không tốt) tương tự như đã lưu ý trước đó.

Câu hỏi của tôi là: Tôi có thể đạt được kiến ​​thức tốt hơn về toán học không nếu tôi thực hiện một số chương trình mã hóa cụ thể, và nếu có thể, liệu vật lý có thể như vậy không? Hay tôi sai và Toán nên được học trước khi lập trình để giúp cải thiện mã hóa của tôi?

PS: C ++ là ngôn ngữ ưa thích.


5
Nó làm việc theo cách khác cho tôi. Tôi đã học lập trình máy tính để giúp tôi làm việc trong các lớp thống kê cấp độ sau đại học tốt hơn. Tôi thấy tôi thích lập trình tốt hơn chỉ số và thay đổi định hướng nghề nghiệp.
jfrankcarr



Không có con đường Hoàng gia đến toán học, thưa ngài.
Karl

Câu trả lời:


16

Bạn sẽ chỉ học toán hoặc vật lý từ lập trình nếu bạn thực sự sử dụng lập trình để giải các bài toán và vật lý, mặc dù các ngôn ngữ chức năng như Haskell có các khái niệm trong đó rất "toán học". Tôi sẽ đề nghị đi đến một trang web như Kahn Academy hoặc Project Euler . Giải quyết các vấn đề trên đó bằng cách sử dụng mã và bạn sẽ cải thiện cả kỹ năng mã hóa và kỹ năng toán học của mình cùng một lúc.


5
+1 cho cả hai tài nguyên. Tôi phải nói rằng, mặc dù vậy, tôi ghét tính toán lần đầu tiên thông qua. Chưa bao giờ làm điều đó tốt ở đó. Kể từ khi học Lisp, nó chỉ có ý nghĩa . Kinda cũng vui.
Jason Lewis

1
Nếu bạn muốn thử Haskell, bạn có thể đọc "Con đường của Haskell đến Logic, Toán học và Lập trình": cuốn sách dạy Haskell, làm toán và giới thiệu tất cả các khái niệm toán học trên đường đi. Tuy nhiên, nó tập trung vào logic toán học, lý thuyết số và một số đại số cơ bản. Giải tích chỉ được đề cập ở cuối, nếu bạn xoay sở để vượt qua mọi thứ khác.
Vincent Zoonekynd

Tôi cũng đề xuất các ngôn ngữ CAS chuyên dụng, như Mathematica (đắt tiền!), Maxima hoặc Axiom (miễn phí). Một khi bạn có ý tưởng viết lại thuật ngữ, quy tắc và chiến lược, toàn bộ toán học sẽ bắt đầu có ý nghĩa.
SK-logic

Cá nhân tôi thấy Khan Academy rất hữu ích trong việc lấp đầy lỗ hổng kiến ​​thức toán học của tôi.
jonners99

@Jason Lewis - Nếu vấn đề của bạn là phong cách giảng dạy nhiều hơn tài liệu và bạn muốn các khóa học đầy đủ, thì các khóa học MIT OpenC thuyết minh là tuyệt vời cho nhiều chủ đề toán học, bao gồm giải tích và đại số tuyến tính. Không thực tế cho việc chỉ sửa đổi một chủ đề cụ thể, mặc dù. Tôi đặc biệt thích khóa học đại số tuyến tính. MIT OpenC thảoware cũng rất tốt cho một số chủ đề khoa học máy tính, tất nhiên - đặc biệt là hai khóa học về thuật toán và cấu trúc dữ liệu. Chưa bao giờ có thời gian tốt hơn để giáo dục bản thân theo tốc độ của riêng bạn với các tài liệu miễn phí tuyệt vời.
Steve314

5

Rõ ràng bạn nên học toán thông qua lập trình. Nếu bạn cố gắng mô phỏng các đối tượng vật lý, bạn sẽ cần học tất cả các loại vật lý và toán học, và bạn sẽ thích nó.


4

Đây là ...

Lập trình sẽ giúp kiểm tra KIẾN THỨC của bạn

Khi tôi học cấp ba và cấp hai, tôi sẽ lập trình cho máy tính của mình làm bài toán đơn điệu cho tôi. Một số người cho rằng đó là gian lận, nhưng tôi luôn lập luận rằng tôi sẽ không thể viết các chương trình nếu tôi không thực sự hiểu toán.

Chẳng hạn, giả sử bạn muốn tạo một chương trình nhỏ để tính giá trị C, cho A và B, trong định lý Pythagore. Chúng ta làm điều đó như thế nào? Vâng, chúng tôi biết rằng:

A^2 + B^2 = C^2

Vì vậy, để giải quyết cho C, chúng ta có:

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

Do đó, chương trình có thể là một cái gì đó giống như (giả sử các tiêu đề thích hợp, đây là một ví dụ xương trần):

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

TUY NHIÊN...

Bạn có được kiến ​​thức nói ở đâu và như thế nào?

Trong ví dụ trước, chúng ta cần biết cách giải C trong phương trình A^2 + B^2 = C^2.Nếu chúng ta không biết căn bậc hai cả hai để tìm C, làm thế nào chúng ta có thể giải quyết vấn đề?

IMO, nó tập trung vào: lập trình sẽ không hoàn toàn dạy bạn toán học, nhưng nó S IM CẢI THIỆN những kỹ năng bạn có được.


vâng, tôi đã hiểu ý của bạn và tôi đồng ý với nó, dựa trên câu trả lời của bạn, tôi sẽ học toán khi tôi giải quyết các vấn đề trong lập trình, tuy nhiên tôi sẽ không thể giải quyết chúng mà không có kiến ​​thức nên tôi sẽ phải tìm kiếm giải pháp và điều đó là những gì sẽ dạy tôi môn toán ...
SAFAD

2

Các cuốn sách SICP có một phần rất đẹp về toán học. Nhưng tôi khuyên bạn nên cố gắng học đại số tuyến tính, toán học rời rạc và Giải tích ở mức tối thiểu, nếu bạn chỉ học từ các chương trình viết, giáo dục của bạn có thể rất sâu, nhưng không rộng lắm.


2

Tôi nghĩ rằng họ đi tay trong tay. Một nền tảng vững chắc trong các kỹ thuật toán học sẽ mở ra các tùy chọn trong lập trình mà bạn không có, trong khi đó lập trình có thể mở ra những con đường thú vị của nghiên cứu toán học.

Tôi vừa mới bắt đầu sử dụng wxMaxima , một đẹp đồ họa front-end cho mã nguồn mở tuyệt vời Maxima Computer Algebra System (hay còn gọi là một CAS , giống như thương mại Maple hay Mathematica hệ thống).

Nó sẽ không dạy bạn bất cứ điều gì về toán học, nhưng nó chắc chắn sẽ làm cho việc chơi với toán học trở nên thú vị và vui vẻ hơn, chính nó có thể khuyến khích bạn học hỏi nhiều hơn.


2

Bạn không cần nhiều toán học để "lập trình".

Bạn cần môn toán cho "khoa học máy tính".

Nếu bạn có kế hoạch sử dụng các giải pháp thư viện có sẵn cho mọi thứ, thì có lẽ bạn không quan tâm đến cách chúng hoạt động. Nhưng nếu bạn có kế hoạch tạo ra các thuật toán và cấu trúc dữ liệu của riêng mình, bạn sẽ cần phải biết toán học, vì CS dựa rất nhiều vào toán học.


1

Nếu bạn thích làm việc trong AI, xử lý dữ liệu, mô phỏng vật lý hoặc đồ họa thì bạn cần có toán học. Ngược lại, nếu bạn không, thì tôi nghĩ bạn không. Đó là một trường hợp sử dụng nó hoặc mất nó, tại sao học tiếng Pháp nếu bạn không muốn sống ở Pháp? Có rất nhiều lĩnh vực vấn đề chỉ yêu cầu logic có điều kiện.

Phải nói rằng, có một khuynh hướng tự nhiên trong lập trình đối với toán học, và sẽ chẳng giúp được gì cho bạn ngoài việc hiểu được nó.


1

Có một cái nhìn vào MATLAB . Đây là một ngôn ngữ được thiết kế để thực hiện các chức năng toán học trong mã.

môi trường điện toán số và ngôn ngữ lập trình thế hệ thứ tư ... MATLAB cho phép thao tác ma trận, vẽ đồ thị hàm và dữ liệu, thực hiện thuật toán, tạo giao diện người dùng và giao tiếp với các chương trình được viết bằng ngôn ngữ khác ...

Mặc dù MATLAB chủ yếu dành cho điện toán số, một hộp công cụ tùy chọn sử dụng công cụ biểu tượng MuPAD, cho phép truy cập vào các khả năng tính toán biểu tượng. Một gói bổ sung, Simulink, thêm mô phỏng đa miền đồ họa và Thiết kế dựa trên mô hình cho các hệ thống động và nhúng ...


matlab chỉ có lợi khi lập trình viên có kiến ​​thức toán học đúng đắn và nó bị giới hạn trong một lĩnh vực toán học nhất định.
wirrbel

1

Toán học là một môn khoa học có phạm vi rất rộng. Có nhiều loại toán học khác nhau hoàn toàn không có điểm chung nào (ngoài việc là toán học).

Bây giờ lập trình thường được liên kết với toán học vì máy tính tính toán và tính toán, về cơ bản nhất chúng làm điều này với các kiểu dữ liệu số nguyên hoặc dấu phẩy động trong các bước rời rạc.

Có những lĩnh vực toán học mà bạn có thể học bằng cách lập trình bằng cách "tính gần đúng" toán học trong một chương trình. Hãy nói rằng bạn nghiên cứu phép tính vi phân và tính các giá trị số trong các khoảng nhỏ, do đó "mô phỏng" giới hạn của toán học "thuần túy".

Các khía cạnh khác của lập trình dễ dàng được ánh xạ tới toán học (có thể không phải là một phần của lớp toán cấp ba của bạn nhưng toán học vẫn có giá trị không phải là một phần của chương trình giảng dạy truyền thống). Loại lý thuyết ví dụ - hoặc cảm ứng toán học.

Thường thì cách duy nhất để lý giải về "tính chính xác" của một đoạn mã là cảm ứng toán học chẳng hạn. Loại lý luận này có thể được nhìn thấy đặc biệt là trong các ngôn ngữ chức năng (đệ quy, v.v.).

Tức là có nhiều cách để học toán trong khi lập trình, nhưng không phải môn toán nào cũng dễ dàng tiếp cận trong mô hình tính toán của máy tính và ngôn ngữ lập trình của chúng ta.


0

Tôi không thể tìm thấy mục blog nhưng tôi nhớ lại một "nhà thiết kế" từ thời kỳ bùng nổ bong bóng đầu tiên (trước '01 -ish), người đã viết về việc khám phá một tình yêu toán học thông qua việc trở thành một nhà phát triển web và nhận ra rằng anh ta thực sự khá giỏi về điều đó mặc dù anh ta luôn thất bại thảm hại ở trường trung học và cho rằng anh ta không phải là người giỏi toán và sau đó tự coi mình là một loại nghệ thuật.

Không phải tôi. Tôi chỉ lười biếng. Thỉnh thoảng tôi phải học lại trig nhưng đó là về nó.

IMO, về cơ bản, bạn có thể viết rất nhiều mã mà không cần kiến ​​thức toán học nặng cho đến khi bạn không thể.

Tuy nhiên, lập trình nào CÓ THỂ làm cho bất kỳ ai có hứng thú hợp lý với nó, giúp bạn vượt qua ý tưởng về việc bạn là loại người này hay loại người đó và cung cấp cho bạn các công cụ bạn cần để thử công cụ ra ngoài và tự mình khám phá xem sở thích của bạn sẽ đưa bạn đi bao xa trong một lĩnh vực nghiên cứu nhất định.

Và tất nhiên, tất cả mọi thứ chúng tôi đang làm đều được liên kết chặt chẽ với toán học để bạn có thể khám phá ra rằng bạn đã học được nhiều hơn những gì bạn nhận ra khi bạn làm những việc như tìm hiểu về những gì mà tổng kết ngược lại.


0

Một lựa chọn khác là sử dụng tình yêu lập trình của bạn để thúc đẩy mong muốn học toán. Mọi thứ có xu hướng trở nên dễ học hơn nếu bạn đang học nó với một vấn đề cụ thể mà bạn muốn áp dụng nó và toán học cũng không ngoại lệ. Bạn chỉ cần tìm ra các vấn đề lập trình nặng về toán học mà bạn quan tâm và sử dụng chúng như một lý do để học toán liên quan. Học Đại số tuyến tính để bạn có thể chơi với đồ họa chẳng hạn, hoặc xác suất và số liệu thống kê cho công cụ xử lý hình ảnh / thị giác máy tính.

Tôi nghĩ rằng số dặm của bạn sẽ thay đổi theo cách này vì những người khác nhau có cách học khác nhau, nhưng ngồi xuống và học toán một cách trừu tượng vì lợi ích của việc học toán đơn giản là không bao giờ có hiệu quả đối với tôi.


-2

Chà, bạn có thể yêu cầu học sinh giải một số bài toán hình học như vẽ hình vuông, hình ngũ giác, hình lục giác và hình tròn bằng Scratch. Thách thức họ phát triển các giải pháp và DON ChỉnhT trả lời họ về CÁCH mã hóa nó. Hãy để họ khám phá và thử nghiệm các giải pháp. Ít nhất bạn có thể hỏi những thứ như các góc tổng trong đa giác. Sau đó, họ có thể xây dựng các thuật toán và các thể loại riêng của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.