Ý tưởng cho một giáo trình và sách giáo khoa khoa học máy tính chung [đóng]


13

Tôi muốn viết (và đã bắt đầu phác thảo) một cuốn sách giáo khoa vật lý giả định rằng người đọc nó là một lập trình viên máy tính có năng lực. Sách giáo khoa vật lý thông thường dạy các công thức vật lý và đưa ra các vấn đề được giải quyết bằng bút, giấy và máy tính. Tôi muốn cung cấp một cuốn sách nhấn mạnh vật lý tính toán, làm thế nào máy tính có thể mô hình hóa các hệ thống vật lý và đưa ra các vấn đề thuộc loại: viết một chương trình có thể giải quyết một tập hợp các vấn đề vật lý. Các thư viện nguồn mở của bên thứ ba sẽ được sử dụng để xử lý hầu hết các tính toán và tôi muốn sử dụng một ngôn ngữ cấp cao như Java hoặc C #.

Bên cạnh thực tế tôi thích làm việc này, tôi nghĩ rằng một chương trình giảng dạy khoa học máy tính vật lý nên được cung cấp trong các trường học và đây là một phần trong chương trình nghị sự lớn hơn để thực hiện điều này. Tôi nghĩ rằng các sinh viên vật lý (như bản thân tôi) nên học cách sử dụng và tận dụng máy tính để giải quyết các vấn đề trừu tượng và các vấn đề. Tôi nghĩ ngôn ngữ lập trình nên được coi là một phương tiện hữu ích để tham gia vào nhiều lĩnh vực điều tra.

Đây có phải là một ý tưởng đáng để theo đuổi? Việc sáp nhập hai môn học này dưới dạng một chương trình giảng dạy đại học có khả thi không? Có bất kỳ công cụ cụ thể nào tôi nên tận dụng hoặc cạm bẫy mà tôi nên biết không? Có ai nghe nói về các khóa học đại học hay nói cách khác là giả định phương pháp này? Có bất kỳ cuốn sách / sách giáo khoa ngoài kia như cuốn sách tôi đang mô tả (cho vật lý hoặc bất kỳ chủ đề nào khác) không?


3
Xin lỗi, khía cạnh khoa học máy tính của cuốn sách ở đâu? Nghe có vẻ như vật lý và lập trình máy tính, đó là một cái gì đó hoàn toàn khác nhau.
Peter Taylor

2
Có rất nhiều chỗ cho CS trong một cuốn sách vật lý; ví dụ như khi xây dựng mô phỏng các đối tượng cổ điển hay lượng tử, chúng tôi chắc chắn sẽ phải vật lộn với nhà nước, đồng thời, các thuật toán, thương mại-offs đại diện vv
limist

2
Như có thể được suy luận từ nhận xét của @Peter Taylor, vui lòng đảm bảo rằng có một số CS tốt trong cuốn sách. Ngoài ra, Python imo sẽ là lựa chọn tốt hơn so với Java hoặc (đặc biệt) C #. Theo kinh nghiệm của tôi (hơn 19 năm trong môi trường khoa học), các nhà khoa học có nhiều khả năng biết Python hơn những người khác mà bạn đề cập. Trong khi tôi hiện đang làm Java, tôi không biết ai trong ngành khoa học làm C #.
GreenMatt

2
Theo những gì tôi hiểu, R cũng có thể là một lựa chọn tốt, tôi đã nghe nói nó rất tốt cho phân tích số. Nếu bạn định viết một chương trình mô phỏng một số thử nghiệm, bạn có thể muốn viết một chương trình khác để phân tích kết quả. Có thể là hai ngôn ngữ sẽ là tốt nhất, một ngôn ngữ để viết mô phỏng, một ngôn ngữ để phân tích dữ liệu kết quả.
Thất vọngWithFormsDesigner

1
Với một vài năm để nghiên cứu về vấn đề này, có một vài điều cần được đề cập. Trích dẫn nhiều người, "Vật lý là một khoa học thực nghiệm." Không có gì thay thế để TÌM KIẾM một cái gì đó có thật, trong thế giới thực, tự đo nó và nhận ra rằng các mô hình toán học phù hợp với các hiện tượng thực. (. Trong trường hợp cá nhân của tôi, nó đã nhìn thấy một xu và một chiếc lông rơi cùng tốc độ chính xác bên trong một ống trong suốt sơ tán thổi tâm trí của tôi hoàn toàn Làm bình phương nhỏ nhất để tăng tốc tính toán do lực hấp dẫn là phải lên đó với nó!.)
John R. Strohm

Câu trả lời:


7

Nói chung, bạn là một ý tưởng tốt và đang được theo đuổi: bạn đã xem Cấu trúc và diễn giải của cơ học cổ điển của Sussman và Wisdom chưa? Nó dạy vật lý cổ điển tiên tiến bằng cách sử dụng Scheme:

Ở một khía cạnh khác, tôi nghĩ rằng sẽ có một trường hợp mạnh mẽ được thực hiện - và do đó cần phải - đại tu việc giảng dạy nhiều môn học bằng nền tảng điện toán, bởi vì tính toán về cơ bản mở rộng khả năng của chúng ta về mô hình hóa, không đề cập đến việc dạy, học và suy nghĩ. Trong cuốn sách Masterminds of Lập trình , Paul Hudak (của danh tiếng Haskell) lập luận chính xác cho một cuộc đại tu như vậy. Sussman, tất nhiên, cũng kêu gọi những cách mới để sử dụng máy tính để dạy các môn học "cũ"; SICM là một ví dụ đẹp về anh ấy làm như vậy. Tôi hy vọng anh ấy sẽ tiếp tục giảng dạy cơ học lượng tử!


5

Tiến sĩ. David Gavenda và Luther Frommkeep tại UT Austin đã cố gắng thực hiện điều đó chính xác, vào đầu những năm 1970, bằng cách sử dụng hệ thống Data General Nova được chia sẻ thời gian. Tôi nghĩ rằng Tiến sĩ Gavenda đã nghỉ hưu, và tôi không biết điều gì đã xảy ra với Tiến sĩ Frommkeep. (Dave Gavenda chắc chắn là một trong những người tốt.)

Tiến sĩ Gordon Novak, thuộc Cục CS UT Austin, đang làm việc ở đầu kia. Luận án của ông, trong Ngôn ngữ học tính toán, là một chương trình có thể hiểu và giải quyết các vấn đề bậc thang của sinh viên năm nhất trong các thống kê. (Tiết lộ đầy đủ: Gordon là một người bạn từ rất lâu rồi.)

Bạn cũng có thể xem Cấu trúc và Giải thích Cơ học Cổ điển , bởi Sussman và Trí tuệ.

Tôi không chắc đây là một ý tưởng tốt, mặc dù. Bạn có thể thực hiện một số bản demo đẹp và giúp dễ dàng nhìn thấy MỘT SỐ thứ, nhưng phần lớn vật lý cơ bản đang dạy học sinh phương pháp, và nắm bắt trực quan các tài liệu, và đó là thứ có lẽ được thực hiện tốt hơn theo kiểu cũ đường.


3

Tôi nghĩ đó là một ý tưởng tuyệt vời và miễn là ngôn ngữ máy tính bạn chọn không quá tối nghĩa, nó có thể là một thành công. Nếu bạn chọn một ngôn ngữ mà không ai ngoài cộng đồng khoa học sử dụng, bạn sẽ không đạt được bất cứ điều gì.


Dựa trên kinh nghiệm của tôi (đối phó với hầu hết 20 năm qua với mã được viết bởi các nhà khoa học có nền tảng khoa học máy tính ít có), nếu điều này được viết đúng và được sử dụng trong chương trình khoa học và cải thiện mã mà các nhà khoa học phát triển, nó sẽ cải thiện rất nhiều, ngay cả khi nó sử dụng FORTRAN thay vì Java, C # hoặc một cái gì đó "phổ biến hơn"!
GreenMatt

@GreenMatt Chắc chắn nó giống như LISP và Matlab mà tôi đã nghĩ về các ngôn ngữ hàn lâm điển hình hiếm khi được sử dụng ở nơi khác.
biziclop

@biziclop: Đồng ý w / LISP bị che khuất, nhưng tôi đã thấy Matlab sử dụng một số tiền hợp lý.
GreenMatt

LISP, tối nghĩa? Chúa ơi ...
Anto

2
@Anto Ít người biết đến như hiếm khi được sử dụng bên ngoài học viện và một số ít các lĩnh vực chuyên môn cao.
biziclop

0

Đây có phải là một ý tưởng đáng để theo đuổi?

Tôi chắc chắn nghĩ như vậy! Đó là một ý tưởng như thế này khiến tôi ước mình vẫn còn là một sinh viên chưa tốt nghiệp. Và sự thật là, tôi đã từng quay trong phòng thí nghiệm nơi các phép tính thủ công được giải quyết bằng kịch bản Perl mà tôi đã viết. Tôi đính kèm mã nguồn quá. TA không biết nhiều về lập trình nhưng cuối cùng khi tôi lấy lại được, nó đã được đánh dấu đầy đủ. Và nó cũng mất ít thời gian hơn để đánh bại phòng thí nghiệm.

Việc sáp nhập hai môn học này dưới dạng một chương trình giảng dạy đại học có khả thi không?

Tôi không thấy lý do tại sao không!

Có bất kỳ công cụ cụ thể nào tôi nên tận dụng hoặc cạm bẫy mà tôi nên biết không?

Ngoài đỉnh đầu, Weka có thể là một công cụ tốt để phân tích dữ liệu. Tôi nghĩ rằng nó có API Java nên các nhà phát triển Java có thể truy cập khá dễ dàng và có thể nó sẽ tạo ra một số bài tập thú vị.


0
Việc sáp nhập hai môn học này dưới dạng một chương trình giảng dạy đại học có khả thi không?

Tôi từ lâu đã cảm thấy rằng một sự hợp nhất ba, vật lý, toán học ứng dụng và tính toán có ý nghĩa. Thậm chí có thể thêm một thứ tư, đồ họa máy tính - đủ ít nhất để tạo ra đủ các biểu đồ để đạt được sự xâm nhập. Tính toán theo một cách nào đó đã trở thành cách làm khoa học thứ ba, sau thí nghiệm và lý thuyết, và để thực sự giỏi về nó, bạn sẽ cần một nền tảng trong cả ba. Ngoài ra còn có các công việc hỗ trợ chuyên nghiệp để nói các lập trình viên có đầu óc khoa học, mà tình yêu đầu tiên của họ là máy tính, và toán học / khoa học chỉ là thứ yếu. Lý tưởng nhất là sẽ có một cách để thỏa mãn các nhóm có lợi ích chính khác nhau, một số muốn có máy tính trước, những người khác áp dụng toán học và những người khác vẫn là khoa học làm trọng tâm chính 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.