2009-02-27 64 views
7

Tôi cần phân phát một giờ rưỡi về lập trình cho sinh viên tại khoa toán.Python cho sinh viên toán học?

Tôi đã chọn trăn làm ngôn ngữ.

  1. Nội dung của bản trình bày của tôi nên là gì?
  2. Tài nguyên tốt có sẵn là gì?
  3. Cần thiết lập trình cho sinh viên toán học là gì?
  4. Kiến thức lập trình sẽ giúp họ như thế nào?

Cảm ơn bạn !!!

LƯU Ý: Tôi biết here là một bài đăng nhưng nó không giải quyết được sự cố của tôi.

Trả lời

4

Giả sử rằng những sinh viên này là người mới đến lập trình (đó là khá khả năng cho sinh viên toán học), bạn sẽ muốn cung cấp cho họ một giới thiệu cơ bản để lập trình (những gì một chức năng là một biến là gì, làm thế nào mỗi khác nhau từ các chức năng và các biến trong toán học, vv).

Cho họ một số chương trình Ví dụ, với một cái nhìn đến những thứ mà sẽ rất hữu ích cho toán học: phương pháp số, nhân ma trận vv

Bất cứ nơi nào có thể, wow họ để họ sẽ nhận được vui mừng về việc sử dụng máy tính cho dự án của riêng họ. Some Python/Math resources

0

Tôi giả định đây là dành cho sinh viên năm nhất (chỉ vì hầu hết sinh viên Toán cao cấp có thể biết cách lập trình)? Nếu có, hãy làm điều gì đó vui vẻ và có liên quan. Đi qua những điều cơ bản, nhưng có thể hướng dẫn họ qua khung logic/cơ bản cho một Trò chơi (có định hướng toán học nặng nề) hoặc Máy tính vẽ đồ thị dựa trên Python.

Nếu bạn muốn làm cho họ thực sự geeked mặc dù, chỉ cho họ Mathematica. Tôi biết, nó không phải là những gì bạn đã chọn ... nhưng khi tôi là một Toán học Sophomore lớn và lần đầu tiên nhìn thấy những gì bạn có thể làm với nó, tôi đã yêu.

+0

Bạn cũng có thể dùng thử Sage Notebook khá hay và dựa trên Python. – nimrodm

0

Python sẽ hoạt động tốt, nhưng GNU Octave có thể tốt hơn.

+0

Octave có thể tốt hơn cho sinh viên kỹ thuật. Không chắc chắn về toán học. – nimrodm

0

Nội dung của bản trình bày của tôi nên là gì?

Khái niệm về lập trình hàm bằng Python. Một số giới thiệu về mô-đun bên thứ ba như NumPySciPy.

Tài nguyên tốt có sẵn là gì?

Hans Petter Langtangen, Python Scripting cho tính toán khoa học, Springer

cần thiết của việc lập trình dành cho sinh viên toán học là gì?

Không có. Thông thường toán học sinh viên sẽ không có vấn đề trong lập trình, vì hầu hết các ngôn ngữ lập trình đã được phát triển để giải quyết vấn đề toán học.

Kiến thức lập trình sẽ giúp họ như thế nào?

Các máy tính trước đó đã được phát triển như một công cụ cho nhà khoa học để giúp họ giải quyết vấn đề /toán học khoa học một cách hiệu quả trong một thời gian rất ngắn, so với con người.

+0

> Sự cần thiết của lập trình cho sinh viên toán là gì? Không ai. Đây là một câu trả lời rất lạ. –

1

Bạn sẽ phải quyết định những gì bạn muốn hiển thị chúng. Nếu bạn muốn cho họ thấy cách sử dụng máy tính có thể là một công cụ hữu ích trong toán học cho họ thấy hiền triết và cách bạn có thể thực hiện các phương pháp số với nó để nhận câu trả lời cho những câu hỏi khó. Sau đó, thao tác một số công thức đại số với nó. Có thể cho thấy làm thế nào nó có thể whip thông qua tích phân cứng và dẫn xuất mà không đổ mồ hôi. Cuối cùng, chúng sẽ kết thúc một số khóa học calulus đầu tiên của chúng.

Không điều nào trong số này hiển thị lý do tại sao họ cần biết cách lập trình tất nhiên. Điều này chỉ cho thấy cách lập trình của người khác hữu ích là để họ sử dụng. Trong khi bạn có toàn bộ sức mạnh của python trong hiền triết thì thực tế là "lặp lại" lẻ và một số "báo cáo" thực sự là tất cả các lập trình mà hầu hết các nhà toán học sẽ làm với sage hầu hết thời gian (mặc dù có một thiểu số đáng kể sẽ làm nhiều hơn nữa). Nếu bạn muốn đi xuống con đường này tôi sẽ đề nghị bạn cố gắng để có được bàn tay của bạn trên một trong những cuốn sách toán học thử nghiệm (http://www.experimentalmath.info/). Đây là những người (trong số nhiều kết quả thú vị khác) đã đưa ra các số BBP: đó là cách để tìm các chữ số tùy ý của pi. Họ chủ yếu sử dụng phong và mathematica nhưng hầu hết các công việc này dịch để hiền triết.

Tôi thực sự khuyên bạn không nên chỉ cho họ cách thực sự triển khai các phương pháp số. Rất ít nhà toán học đang viết các chương trình để giải các bài toán số. Hầu hết chỉ cần cắm chương trình của họ vào chương trình của người khác. Vì vậy, tôi không nghĩ rằng họ có thể thực hiện những phương pháp này như thế nào, nếu chỉ họ biết cách lập trình, sẽ kích thích bất cứ ai.

Nếu đây là tôi, tôi nghĩ rằng tôi có thể sẽ đưa ra một hội thảo xây dựng một plugin trò chơi đơn giản cho cgsuite (http://cgsuite.sourceforge.net/). Tôi nhận ra rằng đây là java và không phải python nhưng chúng có rất nhiều lợi thế cho cách tiếp cận này. Các nhà toán học trẻ đầu tiên luôn bị kích thích bởi lý thuyết trò chơi tổ hợp. Bạn về cơ bản chỉ cho họ cách họ có thể sử dụng toán học để luôn giành chiến thắng ở một số trò chơi nhất định. Nó giống như bạn đang cho họ một sức mạnh siêu.

Thứ hai, bạn đang triển khai các quy tắc của trò chơi trong một chương trình. Quy tắc trò chơi là những cách tuyệt vời để học thành ngữ lập trình bởi vì chúng dịch trực tiếp thành các khái niệm lập trình.

Và cuối cùng, bạn kết thúc với một công cụ có thể chơi trò chơi của bạn một cách hoàn hảo. 90 phút là một thời gian dài cho một hội thảo cho đến nay. Nếu bạn có thể kết thúc bằng một tiếng nổ, như với 10 phút chơi trò chơi với máy tính, họ sẽ rời khỏi sự phấn khích thay vì chán và kiệt sức.

1

Tôi khuyên bạn nên giải quyết một vài loại vấn đề khác nhau từ Dự án Euler bằng Python và thảo luận về các giải pháp, cách chúng có thể được thực hiện khác nhau để hiệu quả hơn, v.v ... như một phần của hội thảo. Python là một ngôn ngữ rất thanh lịch để giải quyết các vấn đề toán học và nên là một trong những ngôn ngữ dễ hiểu hơn hầu hết các sinh viên toán, vì vậy tôi nghĩ bạn đã có một lựa chọn tốt ở đó.

0

http://www.sagemath.org

Trong wiki của chúng tôi là tập hợp các cuộc đàm phán, chúng có thể giúp bạn! http://wiki.sagemath.org/Talks

Cũng lưu ý rằng Sage chứa NumPy, SciPy và SymPy. Vì vậy, tất cả thông tin về ba thư viện python này đều dành cho Sage.

2

tôi sẽ đưa lên sử dụng Python như một & tùy chọn mã nguồn mở miễn phí để thay thế/làm tăng thêm gói đắt như Matlab, IDL, vv qua:

  • scipy - FFT của,
  • ipython - "vỏ"/debugger
  • matplotlib - 2d vẽ đồ
  • MayaVi - 3d đồ họa/visualization

This video có thể hữu ích.

Các vấn đề liên quan