Чи передбачає обчислювальна наука програмування?


16

Я читав про обчислювальну науку у Вікіпедії, але моє розуміння не дуже зрозуміле.

Чи передбачає обчислювальна наука програмування? Наскільки відрізняється обчислювальна наука від обчислювальної _ ____ , де бланком може бути будь-яка дисципліна (матеріалознавство, інженерія, хімія, біологія тощо)? (Я буду займатися інформатикою обчислювальної техніки.)


5
Я рекомендую вам подивитися тут: scicomp.stackexchange.com/questions/1148 / ... . Справа в обчислювальній науці полягає в тому, що вона застосовується до більшості фізичних наук в якійсь формі (це може бути не найефективнішим способом вирішення проблеми, але це зовсім інше питання).
Годрік Провид

Дуже багато речей важко довести математично. Добре, коли ви можете запрограмувати речі та спробувати їх. Звичайно, обчислювальна наука непроста, але, маючи багато роботи, ви повинні вміти це робити.
vanCompute

1
Ласкаво просимо до scicomp, Шеріл. Я думаю, ви тут задали кілька питань. Будь ласка, відредагуйте те, що ви написали, щоб це було лише одне питання. За бажанням ви можете подавати інші питання окремо, по одному.
Девід Кетчесон

Я відпустив це питання на деякий час, тому що Вольфганг відповів на нього так добре, але в цей момент його потрібно закрити та відредагувати перед повторним відкриттям, щоб приділити цьому питанню більше уваги.
Джефф Оксберрі

Відповіді:


14

Посилання, яке Годрик вказав під питанням, абсолютно правильне. Це дає хороший огляд багатьох талантів, які повинен мати вчений-обчислювач.

Загалом, різниця між тим, що бути обчислювачем X (X = математик, інженер-будівельник, науковець з матеріалів) і бути теоретичним X або експериментальним X, полягає в тому, що колишні вирішують проблеми з комп'ютерами, а не експеримент чи теорію. Очевидно, що вміння користуватися комп’ютерами, зокрема програмувати їх, є важливою частиною цього, як і навички та добре розуміння самого X.

Вчені-обчислювачі - це люди, які не одразу входять до спільноти X, але часто мають досвід математики чи інформатики. Я вважав би себе одним. Я б сказав, що більшість із них не настільки зацікавлені в якомусь конкретному застосуванні (тобто X) саме по собі, а швидше розглядають рішення задач у полі X як спосіб розробки та застосування нових чисельних та обчислювальних методів, тобто як тестові шкали для методів, які широко застосовуються. Багато вчених-обчислювачів - прекрасні програмісти і, що ще важливіше, розробники програмного забезпечення та інженери. Бути хорошим у цьому, безумовно, є важливою частиною посадової інструкції вченого-обчислювача.


1
Дуже добре сказано.
Джек Поульсон

Що таке обчислювальний математик?
Milind R

Хтось, метою якого є розробка математичних методів обчислювальних задач. Наприклад, розробити методи кінцевих елементів, лінійні чи нелінійні розв'язувачі тощо
Вольфганг Бангерт

1
приємно, за винятком того, що комп’ютери можуть робити "обчислювальні експерименти", наприклад, як у математиці чи дослідженні cs. (інший вид / тип експерименту.) також названий "емпіричним дослідженням" у цих галузях, можливо, не найкращий термін, але той, що використовується. це нова / велика парадигма, що розвивається. esp з "великими даними" тощо
vzn

6

Якщо сказати грубо, то ви не будете хорошим професіоналом, якщо заявите, що займаєтеся обчислювальною наукою, але не знаєте програмування.

Щоб зробити обчислення, вам потрібен інструмент. І комп’ютер - такий інструмент. Програмування - єдиний спосіб навчити комп’ютер робити те, що потрібно робити. Тому програмування є важливою частиною обчислювальної науки. Це не означає, що це єдина його частина. Теорія має своє сакральне місце. Якщо ви дуже хороші в теорії, ви будете конструювати краще, а що важливіше - правильні алгоритми.

Наскільки я це бачу, ви можете вижити, не знаючи програмування: розробивши алгоритми теоретично. Але тоді вам потрібно найняти когось іншого, хто знає програмування, щоб перевірити, чи працюють ваші алгоритми в режимі реального часу чи ні.

Крім того, це факт сучасного світу, що люди, які знають програмування, платять краще. ІМХО!


3

Мені не відомі текстові версії визначення або опису обчислювальної науки, але ось два мої центи, засновані на моєму досвіді:

Обчислювальна наука передбачає справу з обчислювальними процесами. Одним із важливих процесів є програмування. Так, так, це передбачає програмування. Інша проблема, якщо комп'ютерний вчений є автором програми чи ні, але вона, швидше за все, буде користувачем програм, написаних для конкретних наукових областей. І все частіше ймовірно, що їй доведеться написати код «клеїти», щоб зробити речі, які відповідають її потребам. Сподіваюся, це відповість на ваше перше запитання.

Я не знаю обчислювальної матеріалознавства, але припускаю, що це одна галузь науки, яка має обчислювальні потреби, наприклад, для моделювання енергії та взаємодії між елементами і т. Д. Отже, так, це матиме загальні принципи обчислювальної науки, як і інші наукові галузі: алгоритми, процедури, клей-коди, маніпулювання файлами, конфігурація, візуалізація тощо. Сподіваюсь, це близько до відповіді на ваше друге запитання.

Ваш інформаційний фон з інформатикою безумовно повинен допомогти. Більш те, чи є вона в обсязі чи ні, це трохи суб’єктивно. Однак, я б сказав, це повинно бути у вашій зоні комфорту, враховуючи предмети, які ви вивчали.


Добре. Власне, щодо таких предметів, як інженерна фізика, хімія - я не такий науковий. В останні роки мою основну увагу приділяю комп'ютерним наукам - програмування, щоб бути конкретним. Якщо хтось запитує у мене квантову фізику і все, я не такий хороший.
Шерил

Якщо цей проект в основному стосується "програмування" з хорошим почуттям фізики; Напевно, я впораюся. (Крім того, механіка - це моя фаворитна частина фізики, де я маю міцні основи.)
Шерил

5
Немає визначення підручників обчислювальної науки, але ось що говорить Міністерство енергетики США. Обчислювальна наука - це міждисциплінарний підхід, який використовує алгоритми, математику та комп'ютери для аналізу та вирішення наукових та інженерних проблем.
Арон Ахмадія

3

Ось відповідь різного типу, але, на мій погляд, досить цікава.

Я ознайомився з усіма користувачами цієї бета-версії з більш ніж 1000 репутацією. Я думаю, що цих людей можна вважати такими, що займаються обчислювальною наукою. Для кожного з них я переглянув профіль і побачив, чи є у них обліковий запис на StackOverflow, що може розглядатися як ознака зацікавленості в програмуванні. Ось результати:

На 25 users having more than 1000 reputation:

  • 4 (16%)не мають рахунку.
  • 5 (20%)щойно відкрили рахунок, не завоювавши репутації.
  • 16 (64%)внесли свій внесок у StackOverflow.

Тож принаймні 84%з них цікавиться програмуванням. На мою думку, це свідчить про те, що програмування є важливою частиною завдання наукових обчислень :-) Це лише підтвердження інших відповідей!

Ще один цікавий факт (який я не оцінив) - це те, що всі ці користувачі мають облікові записи з багатьох тем, а не лише з обчислювальної науки та StackOverflow! Я думаю, що це просто йде у відповідь Вольфганга Бангерта.


2

Якщо говорити з мого особистого досвіду, я знаю досить відмінних вчених-обчислювальників, у яких практично немає знань чи досвіду програмування. З іншого боку, більшість вчених-комп'ютерів, яких я знаю, знають, як програмувати комп'ютер.

Остаточної відповіді на цю частину вашого запитання немає. Питання, яке ви повинні задати собі: Чи є у мене доступне програмне забезпечення, яке дозволить мені вирішити свою проблему, або це частина моєї роботи, яка полягає в тому, щоб написати програмне забезпечення, яке може вирішити проблему спочатку, а потім використовувати його для вирішення актуальна проблема. Відповідь на це визначить, чи потрібно знати програмування чи ні.


1

Цікаве запитання: я вивчаю обчислювальну матеріалознавство, і я студент ступеня зі спеціальності фізики. Поки що кількість програмувань, які я виконував, мінімальна, але це говорить про себе. Часто конкретні цілі вашого проекту визначатимуть точну кількість кодування, яке ви будете робити. Якщо ви подивитеся на певний склад із використанням стандартних методик та програмного забезпечення, в гіршому випадку ви в кінцевому підсумку напишете Bash / Python-скрипти для автоматизації речей навколо коду, який ви використовуєте. Я вважаю, що ви зробите деяке програмування, можливо, для реалізації того, що ви хочете перевірити, тому коротка відповідь: не можна говорити за обчислювальну науку, але для обчислювальної матеріалознавства, кількість програмування, якщо така буде визначена ваш проект.


1

Я збираюся відповісти на другу частину. Хоча між загальним обчислювальним науковцем та спеціалізованим обчислювальним X може бути багато перекриттів, залежно від інтересу людини, головним питанням вченого-вченого є впровадження нових обчислювальних методик для вивчення проблеми в галузі домену. Новою річчю в обчислювальній техніці може стати нове обчислення, яке було неможливим через відсутність відповідних обчислювальних інструментів або більш швидкий спосіб. З іншого боку, обчислювальний X буде здебільшого зацікавлений у використанні цих нових інструментів для вивчення нових проблем. Таким чином, загалом, вчений-обчислювач спершу складе постановку проблеми, пояснить загальну основу для її вирішення, накладе деякі обмеження щодо застосуваності інструменту (швидкість / помилка тощо) і вирішить проблему як доказ концепції. Що стосується першої частини,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.