Was ist der Unterschied zwischen Informatik und Programmierung?

32

Ich bin neu in Informatik und Programmierung und habe mich gefragt, ob es einen Unterschied zwischen Informatik und Programmierung gibt. und haben Sie die Wahl, nur einen von ihnen oder beide an der Universität zu studieren?

xXSarahXx
quelle
42
Schlechte Analogiezeit.
Mike Weller
10
Was ist der Unterschied zwischen Architektur und Bau?
Oded
6
Sie sind so weit voneinander entfernt wie Geologie und Grabengraben
Steven A. Lowe
27
Informatik ist das, was Sie bezahlen, um zu lernen. Programmierung ist das, wofür man bezahlt wird.
Jfrankcarr
5
Der Unterschied ist, warum Sie Smoothsort anstelle der Blasensortierung verwenden.
Deadalnix

Antworten:

68

Informatik ist das Studium dessen, was Computer können; Programmieren ist die Praxis, Computer dazu zu bringen, Dinge zu tun.

Schauen Sie sich die Kurse / Lehrpläne der Universitäten an, an denen Sie interessiert sind, um herauszufinden, ob es sich bei dem Kurs um einen CS-Kurs, einen Programmierkurs, etwas anderes (zum Beispiel Software-Engineering) oder sogar um eine Kombination der oben genannten handelt. Viele Kurse, die als "Informatik" ausgeschrieben sind, bieten eine wichtige Programmierkomponente, mit der Sie möglicherweise die theoretischen Teile des Kurses in die Praxis umsetzen oder die Fähigkeit erlernen können, Programme zu erstellen.


quelle
1
Sehr gute Antwort, obwohl es den praktischen Teil der Frage nicht beantwortet;)
back2dos
@ back2dos OK, ich habe die Antwort erweitert.
Es ist wichtig anzumerken, dass sich die meisten Informatikkurse überhaupt nicht mit theoretischem CS befassen. TCS ist mindestens so getrennt von praktischem CS wie CS von Programmierung.
Ben Brocka,
3
Ich denke nicht, dass Sie CS (trotz des Namens) zu eng an Computer binden sollten: In erster Linie geht es um das Studium von Informationen . Es kommt einfach vor, dass der Begriff "Computer" die meisten der verschiedenen physischen Werkzeuge umfasst, die wir zum Arbeiten mit Informationen verwenden. Daher wird fast jede Informationsstudie die Programmierung eines Computers umfassen.
Tikhon Jelvis
Die Taxonomie könnte unter das Motto der Informationswissenschaft fallen. Aber es passt nicht perfekt zu CS. Nützlich im interdisziplinären Sinne, aber CS ist untrennbar mit Dingen verbunden, die wir mit Computern machen können, IMO. Ich könnte Ihre Definition dessen, was "Computer" ist, allgemeiner machen, aber nicht die Definition von CS.
Erik Reppen
36

Ein Vorbehalt: 'Informatik' ist in der heutigen Zeit ein trübes Feld geworden, weil (zumindest in den Vereinigten Staaten) Universitäten keine Abschlüsse in "Programmieren" haben. Das bedeutet, dass sich Programmierinteressierte für Informatikabschlüsse anmelden müssen, und als Reaktion darauf legen die Informatikprogramme immer mehr Wert auf Programmieren.

Das heißt, die Informatik selbst ist eine stark mathematische Wissenschaft - Computational Mathematics hätte ein besserer Begriff sein können. Es beinhaltet das Studium der Graphentheorie, der algorithmischen Komplexität, der formalen Logik, der Automaten und im Allgemeinen jeder logischen Struktur, die eine Transformation oder Reaktion auf Eingabealgorithmen beschreiben kann. Ein Informatiker im klassischen Sinne könnte über Regeln nachdenken, die ein Computersystem (einschließlich moderner Computer) regeln, ohne die Details der Implementierung der aktuellen Architektur zu kennen. Ein starker Hintergrund in der Informatik gibt Ihnen die Möglichkeit, effiziente, skalierbare Algorithmen zu entwickeln (oder abzurufen), logische Verringerungen zu antizipieren und fundierte Überlegungen darüber anzustellen, was machbar ist.

Im Gegensatz dazu ist Programmieren das, was eine Person tut, wenn sie eine Programmiersprache verwendet, um einen Algorithmus in etwas zu verwandeln , das die Maschine kann. (Dies sollte die enge Verbindung zur Informatik deutlich machen und die Verwirrung deutlich machen.) Ein Programmierer (in Bezug auf eine Umgebung und Sprache) sollte in der Lage sein, praktisch alle Algorithmen in eine menschliche Form zu verwandeln - und maschinenlesbar durch Schreiben von Code. Ein starker Hintergrund in der Programmierung (wie die meisten CS-Abschlüsse bieten) ermöglicht es Ihnen, besseren Code zu schreiben - wobei "besserer" Code für andere leichter verständlich ist und den von Ihnen implementierten Algorithmus erfolgreicher ausdrückt.

Natürlich gibt es eine große Menge an Übersprechen, und ein hohes Maß an Erfahrung in einem Fall entspricht stark der Entwicklung von Erfahrung in einem anderen Fall - wie bereits erwähnt, ist ein CS-Major fast immer ein kompetenter Programmierer, und ein erfahrener Programmierer hat es aufgegriffen viele Prinzipien von CS. Denken Sie an Physik und Technik.

Ein guter Weg, sich an den Unterschied zu erinnern, ist folgender: Wenn ein Computer benötigt wird, um zu prüfen, ob er funktioniert, ist er programmiert - wenn Sie es mit Bleistift und Papier schaffen, ist es Informatik.

shanef22
quelle
4
Ja, dieser letzte Satz ist das Problem, nicht wahr? Es zaubert Bilder von zerknitterten Professoren mit krausen Haaren und kalkhaltigen Fingern, die um eine Handvoll Pergament wedeln, und erinnert an Zitate wie "In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope." Wenn die Wissenschaft nicht schließlich in eine Maschine irgendwie machen, was ist dann der Punkt? Welcher Astronom, der bei Verstand ist, schaut niemals durch ein Teleskop?
Robert Harvey
Ich glaube nicht, dass ich in den letzten 30 Jahren jemals gebeten worden bin, "einen Algorithmus in etwas umzuwandeln, was die Maschine kann". Was Sie denken, ist kein Programmierer, sondern ein Compiler.
gnasher729
2
@ gnasher729 Ok, nehmen wir an, ich habe den Algorithmus "Für jedes Wort in einer Liste, wenn es mit einem A beginnt, verschieben Sie es an den Anfang." Welchen Compiler würden Sie empfehlen?
shanef22
18

Die Informatik befasst sich mit den theoretischen Grundlagen von Information, Berechnung und praktischen Techniken zu deren Implementierung und Anwendung. http://en.wikipedia.org/wiki/Computer_science

~

In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope. Edsger Dijkstra

Programmierung ist das Handwerk der Erstellung eines Computerprogramms.

Gary Willoughby
quelle
11

Die Informatik soll aus meiner Sicht eine harte Wissenschaft wie die Physik sein.

Es umfasst die Untersuchung von Compilern und Compilergeneratoren, Hardware-Architekturkonzepten, verschiedenen Formen von Zahlensystemen, Algorithmen und algorithmischer Effizienz / Leistung sowie der Theorie hinter arithmetischen Operationen auf dem Prozessor. Als ich CS an der Universität machte, verbrachten wir viel Zeit damit, mit Assembler herumzuspielen und den Unterschied zwischen Kompilieren, Verknüpfen und Dolmetschen usw. zu lernen.

Vieles wurde durch Programmieren erledigt, dh durch das Schreiben von Code, der dann über einen Interpreter kompiliert oder ausgeführt wurde, mit der Absicht, Ergebnisse zu generieren, um ein Problem zu lösen. Das heißt, Programmierung ist die Lösung von Problemen, die mit Wissen aus der Informatik beschrieben werden können. Es ist eine Art reine Mathematik / angewandte Mathematik-Aufteilung.

Sie brauchen keinen Abschluss in Informatik, um Programmierer zu sein, aber ein Programmierer mit CS-Hintergrund wird wahrscheinlich ein tieferes Verständnis für das Verhalten von Computerprogrammen haben.

mcfinnigan
quelle
1
Ich glaube nicht, dass CS-Studenten besser sind als Studenten anderer Programmierkurse.
Tjaart
5
Ich sagte nicht besser , ich sagte wahrscheinlich ein tieferes Verständnis zu haben.
McFinnigan
@ McFinnigan würde ich sagen, mehr fehlgeleitet. CS Studenten , die sich in der Theorie Erde neigen dazu , weniger Verständnis zu haben , weil sie eigentlich nicht die Erfahrung hat zu wissen , was Computer kann tun , oder wie man dorthin kommt in verschiedenen Sprachen.
Izkata
3
wieder missverstehst du mich. Ich sage, dass ein Programmierer, der sich die Zeit genommen hat, um sich einen Teil der tatsächlichen CS- Theorie anzueignen , mit größerer Wahrscheinlichkeit weiß, warum ein Set in bestimmten Situationen besser ist als eine Liste, oder warum Gleitkommazahlen schwierig sind.
McFinnigan
2
@TikhonJelvis: Ingenieurwesen beschäftigt Mathematik, aber es ist zwei Schritte entfernt. CS ist ein Zweig der Mathematik.
Kevin Cline
3

Ich würde Ihre Frage wie folgt umformulieren: "Was ist der Unterschied zwischen Informatik und Softwaretechnik?" Schließlich geht es bei beiden um Programmierung.

Informatik ist die theoretische Untersuchung dessen, was Rechnen ist und was nicht möglich ist und was nicht. Es befasst sich mit Dingen wie Godels Theorem und dem Halting-Problem.

Unter Software Engineering versteht man das Schreiben von Programmen, die genau das tun, wofür sie entwickelt wurden und wartbar sind.

Jaydee
quelle
Warum seine Frage umformulieren? Er fragte, was er fragte. Software Engineering unterscheidet sich von Programmierung und ist AUCH umstritten, weil es in verschiedenen Ländern (z. B. USA und Kanada) unterschiedliche Bedeutungen hat
Douglas Held
2

Informatik ist die Theorie der Programmierung. Programmierung ist die Umsetzung.

Informatik ... ist der wissenschaftliche und praktische Ansatz für die Berechnung und ihre Anwendungen. Ein Informatiker ist auf die Theorie der Berechnung und den Entwurf von Computersystemen spezialisiert.

Die Teilbereiche lassen sich in verschiedene theoretische und praktische Disziplinen unterteilen. Einige Bereiche, wie die Komplexitätstheorie (in der die grundlegenden Eigenschaften von Rechenproblemen untersucht werden), sind sehr abstrakt, während Bereiche wie die Computergrafik den Schwerpunkt auf visuelle Anwendungen in der Praxis legen. Noch andere Bereiche konzentrieren sich auf die Herausforderungen bei der Implementierung von Berechnungen. Beispielsweise werden in der Programmiersprachtheorie verschiedene Ansätze zur Beschreibung von Berechnungen berücksichtigt, während in der Untersuchung der Computerprogrammierung selbst verschiedene Aspekte der Verwendung von Programmiersprache und komplexen Systemen untersucht werden. Die Mensch-Computer-Interaktion berücksichtigt die Herausforderungen bei der Bereitstellung nützlicher, verwendbarer und allgemein zugänglicher Computer und Berechnungen für den Menschen.

Tom Squires
quelle
12
Ich bin der festen Überzeugung, dass Informatik mehr ist als Programmieren.
Ubermensch
2
@Ubermensch: Ich glaube ehrlich, dass Programmieren mehr als Informatik ist.
Michael Borgwardt
1
@MichaelBorgwardt Eigentlich sind unsere beiden Ansichten richtig. Die Informatik ist aber immer noch viel größer als das Programmieren (Sie können auch anders herum argumentieren). Ein berühmtes Zitat von Niehls Bohr "Es gibt zwei Arten von Wahrheit, kleine Wahrheit und große Wahrheit. Sie können eine kleine Wahrheit erkennen, weil ihr Gegenteil eine Lüge ist. Das Gegenteil einer großen Wahrheit ist eine andere Wahrheit."
Ubermensch
@Ubermensch Dein Glaube ist Fakt. Informatik ist NICHT nur die Theorie der Programmierung. Informatik gab es schon, bevor es Computer gab.
Casey Patton
1

Wenn Programmieren Tischlerei ist, dann ist Informatik Architektur / Design.

Bearbeiten

Weitere Informationen: In der Zimmerei interessieren Sie sich für Dinge wie die Reihenfolge, in der die Dinge eingebaut werden sollen (Rahmen, dann Unterboden, dann Innenwände, dann Trockenbau usw.). Wie baut man es so, dass es weniger Zeit in Anspruch nimmt, aber später geändert werden kann?

Bei der Architektur (die sowieso wie CS ist) geht es Ihnen um Dinge wie die Leistungsfähigkeit der Materialien. Wie groß ist ein Balken, um diese Spannweite von Wand / Dach zu unterstützen?

In ähnlicher Weise geht es bei CS um die theoretischen Fähigkeiten von Computern, bei der Programmierung um die praktische Anwendung dieses Wissens.

Scott Whitlock
quelle
3
Schlechte Analogie. Wenn Programmierung Tischlerei ist, dann ist Software-Design Architektur / Design. Informatik ist in dieser Hinsicht eher wie Dendrologie oder Biologie im Allgemeinen.
back2dos
Ok, vielleicht war mir unklar, also lassen Sie mich erklären, warum ich denke, dass Ihre Analogie nicht funktioniert. Sich mit den Fähigkeiten des Materials zu befassen ist Materialwissenschaft, mit der Stabilität der Struktur ist Statik. Keines von ihnen ist wirklich das, worum es bei Design geht, sie schränken es nur ein. Beim Entwurf (Software, Gebäude usw.) geht es darum, alle Anforderungen und Einschränkungen (technisch, finanziell, psychologisch usw.) zu berücksichtigen und eine Lösung zu entwickeln, die diesen Anforderungen entspricht.
back2dos
1

Informatik ist Programmieren wie Physik Maschinenbau.

Informatik ist theoretisch, sie geht wissenschaftlich und mathematisch mit Informationen um und berechnet sie.

Computerprogrammierung ist praktisch, es ist der Prozess des Entwerfens, Schreibens, Testens, Debuggens und Verwaltens des Quellcodes von Computerprogrammen.

Sie sind verschiedene, aber verwandte Bereiche. Beide haben voneinander profitiert.

bbb
quelle
0

Ein Abschluss in Informatik ist viel umfassender und deckt die Theorie hinter dem Rechnen ab. Ein Abschluss in Computerprogrammierung hingegen zielt darauf ab, die Codier- oder Programmierfähigkeiten der Schüler durch die Ausbildung in verschiedenen Programmiersprachen zu verbessern. Wenn Sie verwirrt sind, können Sie die Details dieser beiden Programme am California College San Diego durchsehen. Das kann Ihnen Klarheit über den Umfang dieser Abschlüsse verschaffen!

user45390
quelle
0

Informatik : Es ist das Studium der Problemlösung mit Computern / Rechenmethoden.

Computerprogrammierung: Es ist der Teil dieses Problemlösungsprozesses, der das Gebiet der Informatik ausmacht. Computerprogrammierung ist nur ein kleiner Teil der Informatik.

Ramneet
quelle
-1

Beim Programmieren geht es um Menschen. Leute lesen, schreiben und pflegen Code. In der Informatik geht es um Mathematik - sie implementieren und beschreiben Algorithmen.

DeadMG
quelle
3
@ SK-Logik und DeadMG. Ich habe alle diese Kommentare gelöscht. Wenn Sie eine Diskussion (oder ein Argument) haben möchten, nehmen Sie es bitte woanders hin.
ChrisF
1
Das ist ein bisschen eng. Zumindest möchte das Labor "Algorithmen, Maschinen und Menschen" an meiner Universität nicht zustimmen :). Und dieses Labor enthält einige der besten CS-Forscher. Auch all die HCI-Leute überall. Ich bin ein bisschen scherzhaft, aber CS ist wirklich umfassender als nur Algorithmen und Mathematik.
Tikhon Jelvis
-1

Beim Programmieren (Entwickeln) geht es darum, Geld zu verdienen. In der Wissenschaft geht es darum, neue Dinge zu entdecken.

Brei
quelle
7
Jemand hat vergessen, die Open-Source-Community zu informieren.
Webbiedave
2
@webbiedave - es mag ein oder zwei echte Altruisten geben, aber letztendlich geht es bei Open Source auch darum, Geld zu verdienen. Ich wage zu sagen, dass die meisten Leute, die an Open Source-Projekten beteiligt sind, dies tun, um ihre Fähigkeiten und / oder Lebensläufe zu verbessern und ihr zukünftiges Einkommenspotenzial zu steigern. Viele Open-Source-Projekte bringen auch kommerzielle / Unternehmensversionen hervor, um Einnahmen aus dem Projekt zu generieren. Die Open-Source-Community ist also sehr auf dem Laufenden, wenn es darum geht, Geld zu verdienen;)
pap
Und dasselbe gilt nicht für die Wissenschaft? ;)
webbiedave
@webbiedave - Nein, dem stimme ich nicht zu. Während Geld ein Nebenprodukt der Wissenschaft sein mag, ist es nicht das primäre Ziel (und sollte es auch nicht sein). Wissenschaft ist Entdeckung für sich. Unternehmen betreiben Forschung und Entwicklung, aber es geht nicht darum, neue Dinge zu entdecken, sondern bereits entdeckte Dinge zu monetarisieren.
Pap
Der einzige Grund, warum die meisten Wissenschaftler mehr Geld wollen, ist, dass sie mehr Forschung betreiben können. Ich denke dasselbe gilt für Open Source. Open Source zu betreiben, um Ihren Lebenslauf zu verbessern, klingt für mich nach einem Scheitern. Es sollte sich um Neugier, Entdeckung und Kratzen handeln.
Tjaart