Идея совместного учебного плана и учебника по физике и информатике [закрыто]

13

Я хочу написать (и уже набросать) учебник по физике, который предполагает, что его читатель является компетентным программистом. Нормальные учебники по физике преподают физические формулы и дают задачи, которые решаются ручкой, бумагой и калькулятором Я хочу предоставить книгу, которая подчеркивает вычислительную физику, как компьютеры могут моделировать физические системы и дает задачи подобного рода: написать программу, которая может решить ряд физических задач. Сторонние библиотеки с открытым исходным кодом будут использоваться для обработки большей части вычислений, и я хочу использовать язык высокого уровня, такой как Java или C #.

Помимо того, что мне нравится работать над этим, я думаю, что совместная учебная программа по физике и информатике должна предлагаться в школах, и это является частью более широкой программы, чтобы это произошло. Я думаю, что студенты-физики (как и я) должны учиться пользоваться компьютерами и использовать их для решения абстрактных задач и наборов проблем. Я думаю, что языки программирования должны рассматриваться как полезная среда для участия во многих областях исследований.

Стоит ли продолжать эту идею? Возможно ли объединение этих двух предметов в форме учебной программы для студентов колледжа? Существуют ли какие-либо конкретные инструменты, которые я должен использовать, или подводные камни, о которых я должен знать? Кто-нибудь слышал о курсах колледжа или иным образом, которые принимают эту методологию? Существуют ли какие-либо книги / учебники, подобные той, которую я описываю (для физики или любого другого предмета)?

Ami
источник
3
Извините, где компьютерный аспект книги? Это звучит как физика и компьютерное программирование, которое является чем-то совершенно другим.
Питер Тейлор
2
В книге по физике достаточно места для CS; например, при построении симуляции классических или квантовых объектов нам, безусловно, придется бороться с состоянием, параллелизмом, алгоритмами, компромиссами представления и т. д.
limist
2
Как можно понять из комментария @Peter Taylor, пожалуйста, убедитесь, что в книге есть хороший CS. Кроме того, imo Python будет лучшим выбором, чем Java или (особенно) C #. По моему опыту (19+ лет в научной среде), ученые с большей вероятностью знают Python, чем другие, о которых вы упоминаете. Хотя я сейчас занимаюсь Java, я не знаю никого в науках, занимающихся C #.
GreenMatt,
2
Из того, что я понимаю, R также может быть хорошим выбором, я слышал, что это очень хорошо для численного анализа. Если вы собираетесь написать программу, которая имитирует какой-то эксперимент, вы можете написать другую программу для анализа результатов. Возможно, лучше всего использовать два языка: один для написания симуляций, другой для анализа полученных данных.
FrustratedWithFormsDesigner
1
За пару лет, чтобы обдумать это, нужно кое-что упомянуть. Цитируя разных людей, «Физика - эмпирическая наука». Ничто не заменит ВИДЕТЬ что-то реальное в реальном мире, измерить это самостоятельно и осознать, что математические модели соответствуют реальным явлениям. (В моем личном случае это было замечание, что пенни и перо падали с одинаковой скоростью внутри вакуумированной прозрачной трубки. Ударь меня в голову ПОЛНОСТЬЮ! Выполнение метода наименьших квадратов для вычисления ускорения под действием силы тяжести было прямо здесь.)
Джон Р. Штром

Ответы:

7

Ваша хорошая идея в целом, и ее преследуют: видели ли вы Sussman and Wisdom в «Структуре и интерпретации классической механики» ? Он учит продвинутой классической физике, используя схему:

Кроме того, я думаю, что есть веские аргументы - и, следовательно, необходимость - пересмотреть преподавание многих предметов с помощью вычислительной основы, потому что вычисления существенно расширяют наши возможности моделирования, не говоря уже о преподавании, обучении и мышлении. В книге « Создатели программирования» Пол Худак (из известности Хаскелла) утверждает, что именно такой пересмотр. Суссман, конечно, также призвал к новым способам использования компьютеров для преподавания «старых» предметов; SICM - прекрасный пример того, как он это делает. Я надеюсь, что он продолжит преподавать квантовую механику дальше!

limist
источник
5

Д-ра. Дэвид Гавенда и Лютер Фроммхолд из UT Austin пытались сделать именно это в начале середины 1970-х годов, используя систему Data General Nova с разделением времени. Я думаю, что доктор Гавенда ушел в отставку, и я понятия не имею, что стало с доктором Фроммхолдом. (Дейв Гавенда был определенно одним из хороших парней.)

Д-р Гордон Новак, сотрудник отдела UT в Остине, работал на другом конце этого. Его диссертация в области компьютерной лингвистики была программой, которая могла понять и решить начальные задачи на уровне лестниц в статике. (Полное раскрытие: Гордон - друг давным-давно.)

Вы также можете взглянуть на структуру и интерпретацию классической механики от Sussman и Wisdom.

Я не уверен, что это хорошая идея. Вы можете сделать несколько симпатичных демонстраций, и это облегчает просмотр НЕКОТОРЫХ вещей, но большая часть элементарной физики учит студентов методам и дает интуитивное понимание материала, и это то, что, вероятно, лучше сделать старомодным путь.

Джон Р. Штром
источник
3

Я думаю, что это блестящая идея, и пока выбранный вами компьютерный язык не слишком неясен, он может быть успешным. Если вы выберете язык, который никто из научного сообщества не использует, вы ничего не добьетесь.

biziclop
источник
Основываясь на моем опыте (в течение большей части последних 20 лет работавшем с кодом, написанным учеными с минимальным или нулевым опытом информатики), если он написан правильно и используется в учебных программах по науке и улучшает код, который разрабатывают ученые, он будет улучшить, даже если он использует FORTRAN вместо Java, C # или что-то еще «более распространенное»!
GreenMatt
@GreenMatt Я определенно думал о LISP и Matlab как о типичных академических языках, редко используемых в других местах.
Бизиклоп
@biziclop: Согласен, что LISP неясен, но я видел, что Matlab использовал немало.
GreenMatt
LISP, неясен? Дорогой господин ...
Анто
2
@Anto Obscure, так как редко используется за пределами академических кругов и нескольких узкоспециализированных областей.
biziclop
0

Стоит ли продолжать эту идею?

Я конечно так думаю! Это идея, которая заставляет меня желать, чтобы я был еще студентом. И по правде говоря, я однажды обратился в лабораторию, где ручные вычисления были решены с помощью написанного мной Perl-скрипта. Я приложил исходный код тоже. TA не знала много программирования, но когда я наконец получил его обратно, это были полные оценки. И для финишной лаборатории тоже понадобилось меньше времени.

Возможно ли объединение этих двух предметов в форме учебной программы для студентов колледжа?

Я не понимаю, почему нет!

Существуют ли какие-либо конкретные инструменты, которые я должен использовать, или подводные камни, о которых я должен знать?

Вдобавок ко всему, Weka может быть хорошим инструментом для анализа данных. Я думаю, что у него есть Java API, поэтому он должен быть довольно доступным для разработчиков Java, и, возможно, он мог бы сделать некоторые интересные упражнения.

FrustratedWithFormsDesigner
источник
0
Возможно ли объединение этих двух предметов в форме учебной программы для студентов колледжа?

Я давно чувствовал, что тройное слияние, физика, прикладная математика и вычисления имеют смысл. Возможно, даже добавив четвертую компьютерную графику - по крайней мере, достаточно, чтобы генерировать достаточно графиков, чтобы получить интуицию. Вычисления в некотором смысле стали третьим способом ведения науки после эксперимента и теории, и для того, чтобы быть действительно хорошим в этом, вам понадобится обоснование во всех трех. Также есть профессиональные рабочие места поддержки, скажем, для программистов с научным мышлением, чья первая любовь - компьютер, а математика / наука - вторичны. В идеале должен быть способ удовлетворить группы с различными основными интересами, некоторые хотят сначала компьютеры, другие применяют математику, а третьи - науку в качестве основного направления.

Омега Центавра
источник