Pomysł na wspólny program nauczania i podręcznik fizyki i informatyki [zamknięte]

13

Chcę napisać (i zacząć od zarysowania) podręcznik fizyki, który zakłada, że ​​jego czytelnik jest kompetentnym programistą komputerowym. Normalne podręczniki do fizyki uczą formuł fizycznych i podają problemy rozwiązywane za pomocą pióra, papieru i kalkulatora. Chcę przedstawić książkę, która podkreśla fizykę obliczeniową, w jaki sposób komputery mogą modelować systemy fizyczne i daje tego rodzaju problemy: napisać program, który może rozwiązać zestaw problemów fizycznych. Biblioteki open source innych firm byłyby używane do obsługi większości obliczeń, a ja chcę używać języka wysokiego poziomu, takiego jak Java lub C #.

Oprócz tego, że lubię nad tym pracować, uważam, że wspólny program nauczania fizyki i informatyki powinien być oferowany w szkołach i jest to część szerszej agendy, aby tak się stało. Myślę, że studenci fizyki (podobnie jak ja) powinni uczyć się korzystania z komputerów i korzystania z nich, aby rozwiązywać abstrakcyjne problemy i zestawy problemów. Uważam, że języki programowania należy uważać za użyteczne narzędzie do angażowania się w wielu obszarach badań.

Czy warto realizować ten pomysł? Czy połączenie tych dwóch przedmiotów w formie studiów licencjackich jest wykonalne? Czy są jakieś konkretne narzędzia, które powinienem wykorzystywać, lub pułapki, o których powinienem wiedzieć? Czy ktoś słyszał o kursach uniwersyteckich lub w inny sposób, które zakładają taką metodologię? Czy są tam jakieś książki / podręczniki, takie jak te, które opisuję (dla fizyki lub innych przedmiotów)?

Jestem
źródło
3
Przepraszam, gdzie jest aspekt informatyczny tej książki? Brzmi jak fizyka i programowanie komputerowe, co jest czymś zupełnie innym.
Peter Taylor,
2
W książce z fizyki jest dużo miejsca na CS; np. budując symulacje obiektów klasycznych lub kwantowych, z pewnością będziemy musieli zmagać się ze stanem, współbieżnością, algorytmami, kompromisami reprezentacji itp.
limist
2
Jak można wywnioskować z komentarza @Peter Taylor, upewnij się, że w książce jest trochę dobrego CS. Imo Python byłby lepszym wyborem niż Java lub (szczególnie) C #. Z mojego doświadczenia (ponad 19 lat w środowisku naukowym) naukowcy częściej znają Python niż inni, o których wspominasz. Podczas gdy obecnie pracuję w Javie, nie znam nikogo w nauce zajmującego się C #.
GreenMatt
2
Z tego, co rozumiem, R może być również dobrym wyborem, słyszałem, że jest bardzo dobry do analizy numerycznej. Jeśli zamierzasz napisać program symulujący eksperyment, możesz napisać inny program do analizy wyników. Możliwe, że dwa języki będą najlepsze, jeden do pisania symulacji, drugi do analizy uzyskanych danych.
FrustratedWithFormsDesigner
1
Mając kilka lat na zastanowienie się nad tym, jest coś, o czym należy wspomnieć. Cytując różnych ludzi, „fizyka jest nauką empiryczną”. Nic nie zastąpi WIDZENIA czegoś rzeczywistego w prawdziwym świecie, samodzielnego zmierzenia go i uświadomienia sobie, że modele matematyczne pasują do rzeczywistych zjawisk. (W moim osobistym przypadku widziałem, jak grosz i piórko spadają z dokładnie taką samą prędkością do ewakuowanej przezroczystej rurki. Zupełnie rozwalił mi umysł! Robienie najmniejszych kwadratów, aby obliczyć przyspieszenie z powodu grawitacji, było tuż obok).
John R. Strohm,

Odpowiedzi:

7

Twój jest ogólnie dobrym pomysłem i jest realizowany: czy widziałeś strukturę i interpretację mechaniki klasycznej Sussmana i Mądrości ? Uczy zaawansowanej fizyki klasycznej za pomocą schematu:

Nawiasem mówiąc, uważam, że należy uzasadnić - a zatem i potrzebę - przerobić nauczanie wielu przedmiotów na podstawie obliczeniowej, ponieważ obliczenia zasadniczo rozszerzają nasze możliwości modelowania, nie mówiąc już o nauczaniu, uczeniu się i myśleniu. W książce Masterminds of Programming Paul Hudak (znany ze sławy Haskell) opowiada się dokładnie za takim przeglądem. Sussman oczywiście wezwał także do nowych sposobów wykorzystania komputerów do nauczania „starych” przedmiotów; SICM jest pięknym przykładem tego, jak to robi. Mam nadzieję, że dalej będzie uczył mechaniki kwantowej!

limist
źródło
5

Dr. David Gavenda i Luther Frommhold z UT Austin próbowali zrobić dokładnie to samo, na początku połowy lat siedemdziesiątych XX wieku, korzystając z systemu Data General Nova podzielonego w czasie. Myślę, że dr Gavenda przeszedł na emeryturę i nie mam pojęcia, co się stało z dr Frommholdem. (Dave Gavenda był zdecydowanie jednym z dobrych facetów.)

Dr Gordon Novak, z Departamentu CS UT Austin, pracował nad drugim końcem tego. Jego rozprawa w językoznawstwie obliczeniowym była programem, który mógł zrozumieć i rozwiązać problemy drabinowe na poziomie podstawowym w dziedzinie statyki. (Pełne ujawnienie: Gordon jest przyjacielem dawno, dawno temu.)

Możesz także rzucić okiem na strukturę i interpretację mechaniki klasycznej autorstwa Sussmana i Mądrości.

Nie jestem jednak pewien, czy to dobry pomysł. Możesz zrobić kilka ładnych pokazów, a to ułatwia zobaczyć NIEKTÓRE rzeczy, ale większość fizyki elementarnej uczy ucznia metod i daje intuicyjny chwyt materiału, a to jest coś, co prawdopodobnie lepiej zrobić staromodny sposób.

John R. Strohm
źródło
3

Myślę, że to genialny pomysł i dopóki wybrany komputer nie jest zbyt niejasny, może być sukcesem. Jeśli wybierzesz język, którego nikt poza środowiskiem naukowym i tak nie używa, nic nie osiągnąłeś.

biziclop
źródło
Opierając się na moim doświadczeniu (zajmującym się przez ostatnie 20 lat kodem napisanym przez naukowców z niewielkim lub żadnym doświadczeniem w dziedzinie informatyki), jeśli zostanie on napisany poprawnie i będzie używany w programach nauczania przedmiotów ścisłych oraz poprawi kod opracowywany przez naukowców, będzie dużo poprawić, nawet jeśli używa FORTRAN zamiast Java, C # lub czegoś innego „bardziej powszechnego”!
GreenMatt
@GreenMatt Zdecydowanie bardziej przypominało LISP i Matlab, o których myślałem jako o typowych językach akademickich, rzadko używanych w innym miejscu.
biziclop,
@biziclop: Zgadzam się, że LISP jest niejasny, ale widziałem, że Matlab użył sporej kwoty.
GreenMatt
LISP, niejasny? Drogi panie ...
Anto
2
@Anto Obscure, ponieważ rzadko jest używany poza środowiskiem akademickim i garstką wysoce wyspecjalizowanych dziedzin.
biziclop,
0

Czy warto realizować ten pomysł?

Z pewnością tak myślę! To taki pomysł, który sprawia, że ​​żałuję, że nie byłem jeszcze studentem. I prawdę mówiąc, kiedyś oddałem się do laboratorium, w którym ręczne obliczenia zostały rozwiązane przez napisany przeze mnie skrypt Perla. Załączam także kod źródłowy. TA nie znała dużo programowania, ale kiedy w końcu ją odzyskałem, były to pełne oceny. I ukończenie laboratorium zajęło znacznie mniej czasu.

Czy połączenie tych dwóch przedmiotów w formie studiów licencjackich jest wykonalne?

Nie rozumiem dlaczego nie!

Czy są jakieś konkretne narzędzia, które powinienem wykorzystywać, lub pułapki, o których powinienem wiedzieć?

Poza moją głową Weka może być dobrym narzędziem do analizy danych. Myślę, że ma interfejs API języka Java, więc powinien być dość dostępny dla programistów Java i prawdopodobnie mógłby stanowić interesujące ćwiczenie.

FrustratedWithFormsDesigner
źródło
0
Czy połączenie tych dwóch przedmiotów w formie studiów licencjackich jest wykonalne?

Od dawna czułem, że potrójne połączenie, fizyka, matematyka stosowana i obliczenia mają sens. Być może nawet dodanie czwartej grafiki komputerowej - co najmniej wystarczającej do wygenerowania wystarczającej liczby wykresów, aby uzyskać efekt. Obliczenia w pewnym sensie stały się trzecim sposobem uprawiania nauki, po eksperymencie i teorii, i aby być w tym naprawdę dobrym, potrzebujesz uziemienia we wszystkich trzech. Są też profesjonalne zadania wspierające dla naukowców zorientowanych naukowo, których pierwszą miłością jest komputer, a matematyka / nauka jest drugorzędna. Idealnie byłoby sposób na zaspokojenie grup o różnych zainteresowaniach, niektórzy chcą najpierw komputerów, inni stosują matematykę, a jeszcze inni naukę jako główny cel.

Omega Centauri
źródło