До якої дисципліни належить інформатика? [зачинено]


15

Чи є інформатика, прикладна математика, інженерія, мистецтво, філософія? "Інший"?

Для ознайомлення, ось допис у блозі Стівена Вартіка для Scientific American під назвою " Я не справжній учений, і це нормально ". Стаття охоплює кілька хороших тем для цього питання, але залишає відкритими більше, ніж дає відповіді.

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


1
Коли б я не стикався, хто каже, що Комп'ютерна наука - це наука, яка має зовсім інші підстави пояснити, чому.
Macneil

5
Інформатика - це політологія з трохи меншою політикою.
Робота

1
інформатика - галузь прикладної математики ... "наука" передбачає використання наукового методу, який не існує в інформатиці; але вона була названа тоді, коли кожна нова дисципліна хотіла поставити слово наука в кінці їх назви.
red-dirt

2
@ червоний бруд Це неправда. В CompSci є науковий метод; у вас є експерименти, формальні докази тощо. Більшість науковців-хардкорів займаються математикою та формальною логікою (див. обчислення лямбда, проблема зупинки тощо) та публікують документи в рецензованих журналах. Не плутайте їх з людьми, які вигадують "методології", які не є науковцями за жодним визначенням цього слова.
Андрес Ф.

1
@ red-dirt Подібно до AndresF, на практичному застосуванні основний науковий метод (гіпотеза, тест, перевірка, повторення) вступає в дію під час налагодження - який зазвичай займає більшу частину часу, витраченого на програмування.
Ізката

Відповіді:


30

Є дві різні ІТ-дисципліни:

  • Інформатика - це вивчення дисципліни комп'ютерів та обчислення за допомогою наукового методу.

  • Інженерія програмного забезпечення - це дисципліна розробки та впровадження програмного забезпечення відповідно до належних інженерних принципів.

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

Отже, щоб відповісти на ваше запитання:

Чи є інформатика, прикладна математика, інженерія, мистецтво, філософія? "Інший"?

Інформатика - це наука ... при правильному виконанні. Однак, як і інші дисципліни, CS має перекриття з математикою, технікою, фізичними науками, суспільними науками, філософією тощо.

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

І сумно сказати, що ні академічні інформатики, ні професія програмного забезпечення не є такими суворими, як старі наукові та інженерні дисципліни. (Є сфери інформатики, які традиційно суворі; наприклад, такі, що мають міцну математичну основу. Але для багатьох галузей просто занадто важко / дорого робити належні наукові дослідження з питань, які насправді мають значення.)


1
Існує також інженерна техніка - хтось повинен розробити фізичні комп’ютери, щоб це програмне забезпечення працювало - і це справді (основна) піддисципліна електронної інженерії.
Дональні стипендіати

+1 за аналогію майстра, я зрозумів, що це найбільш точна концепція, яка пояснює, що робить CS програмного забезпечення. Ось посилання на безкоштовну книгу від O'Reilly про неї. apprenticeship-patterns.labs.oreilly.com/ch01.html
romeroqj

"І сумно сказати, що ні академічні інформатики, ні професія програмного забезпечення не такі строгі, як старі наукові та інженерні дисципліни": я не згоден з цим твердженням. Крім усього іншого, якби комп’ютерні науки не були суворими, у нас не було б прогресу в мовах програмування, компіляторах (і всій формальній теорії мови за ними), криптографії тощо. Усі ці програми мають міцний фундамент, який був розроблений здебільшого в наукових колах.
Джорджіо

@Giorgio - Шкода, що ти не прочитав те, що я написав одразу після цитованого речення ...
Stephen C

@Stephen C: Я читав це, і досі не переконаний, що Комп'ютерна наука менш сувора, ніж інші науки (але, можливо, я помиляюся). А може, спершу слід визначити, що вважати «науковим» та «суворим», а що ні, але це, можливо, потребує тривалої дискусії.
Джорджіо

12

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

Окрім цього, комп'ютерні науки - прикладна математика. Якщо ви порівнюєте CS з чимось непереборним приналежністю до прикладної математики, ви помітите велику схожість.

Комп'ютерні вчені проектують та вивчають способи обчислення (алгоритми), беручи більшу частину теорії з математики (логіка, теорія графів, комбінаторика тощо) і одночасно сприяючи цьому. Так само, як і решта прикладної математики.

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

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


але в інших університетах комп'ютерні науки - це окремий відділ у складі математичного факультету, кафедра інженерного факультету, наукового факультету, або ... нічого з перерахованого. Це адміністративні / організаційні питання і мають мало спільного з фактичним предметом.
Стівен C

@Stephen, тому я вказав університет, замість того, щоб сказати "в більшості університетів" або "в багатьох університетах" :-) Це лише невеликий приклад, а не суть відповіді.
П Швед

1
впевнений, що це "малий приклад", але я мою думку, що це не репрезентативний приклад, і він навіть не особливо стосується вашого аргументу. Для ілюстрації, університет, в якому я працюю, перебуває в процесі реструктуризації факультетів ... не через глибоке роздуми над тим, що стосується того, що ... а задля зменшення адміністративних витрат . Через кілька років школи CS та Elec Eng були об'єднані з тієї ж причини .
Стівен C

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

1
@ bit-twiddler - Ваше визначення занадто вузьке. Він виключає безліч наукових областей, які традиційно класифікуються як "інформатика".
Стівен C

5

Інформатика - це термін, який сьогодні охоплює багато, багато речей:

  • Майстри-майстри, які роблять роботу для інших, ґрунтуючись на досвіді роботи зі своїми інструментами (і підмайстрами тощо).
  • Інструмент вигадує і створює нові інструменти для майстрів
  • Дослідники розробляють нові сплави та інші матеріали - як пластик - для інструментальних ковалів.
  • Вчені-теоретики з'ясовували, як працює матеріал, щоб виробники сплавів знали, як працює їх інструмент.

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


Пункт 2 - це більше сорокоріччя інструментаря , але ця відповідь права на :)
ZJR

1

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

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


1
MIT не погоджується з вами eecs.mit.edu
Арман

@Alison, також виправте запис wiki ( en.wikipedia.org/wiki/Computer_science ).
CMR


0

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

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


3
Я не думаю, що багато науковців-науковців з академіки прийняли б таке визначення CS.
Стівен C

0

Дисципліна, яку найточніше називають "Інформатика", - у більшості університетів, яку я перевірив, - прикладна наука, подібна до інженерних дисциплін; якщо ви займаєтесь цим, ви отримуєте "BS" або "MS". Ступінь CS Texas Texas запропонував інженерний коледж. Дисципліна, як викладають, здебільшого теоретична; Ви дізнаєтесь про концепцію машин Тьюрінга, DA / NDA та інших фундаментальних концепцій, яким "щоденний" програміст насправді не повинен тримати брязкальце навколо черепа. Ви також отримуєте набір вищої математики; ступінь Техас Техас CS, і я буду робити ставку на багато інших, і я вручаю тобі ще неповнолітнього з математики. До цього більшість треків університету додають потужну практичну програму низького рівня; ви вивчаєте мову складання, мову 3-го покоління,

Однак більшість людей, які кодують на життя, не є "комп'ютерними науковцями"; вони, власне кажучи, "розробники програмного забезпечення" або (коли ви додаєте в аналіз / дизайн) "інженери програмного забезпечення"; ця робота набагато менше апаратного рівня (хоча ви повинні знати основи цього), набагато більше системного аналізу, дизайну та прямого кодування. Багато університетів мають інший шлях саме для цього; в Texas Tech його називали "Управління інформаційними системами", і це було ступінь бізнесу (BBA / MBA). Ця доріжка була легшою для вищої математики (те, що вам довелося знати про алгебру та диференціальний / інтегральний кальк, було видалено на два семестри "ділової математики", і не включало калькулювання вектора / тензора, лінійну алгебру тощо), набагато важче фінансова математика (кожен семестр статистики та фінансів, по два з бухгалтерії та економіки). Легше в операційних системах, важче за допомогою "стекових" технологій, таких як бази даних, веб-сервери, мережеві роботи та загальне адміністрування систем. Легше на мовах низького рівня, конструкції схем та AI, важче на мовах 3-го та 4-го поколінь, системний аналіз та управління проектами. Я отримав цей ступінь у Texas Tech, і до того часу, як я пішов, я мав принаймні семестр на кожній з Java, VB, C # та веб-мов (HTML / CSS / PHP), плюс рік OOA & D та інші інші курси в галузі управління ІТ-проектами.

Що краще в реальному світі? Я отримав MIS BBA, мій брат отримав CS BS, і ми обидва працюємо на приблизно однаковому рівні зарплати (коригуючи вартість життя), як старші інженери програмного забезпечення. Йому довелося навчитися багато необхідних OOA & D на роботі, а також досить швидко крутитися в C # / Java з його базових знань C ++. Зі свого боку, я хотів би, щоб я пройшов два семестри концептуального вивчення алгоритму, який він отримав, поки я застряг на курсах управління бізнесом (так, MIS - це ступінь "Менеджмент", але я виявив, що 99% моїх знань про те, як керувати та не керувати іншими людьми навчився на прикладі).

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