Przejdź do zawartości

Informatyka: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Wycofano ostatnią zmianę treści (wprowadzoną przez 95.160.157.234) i przywrócono wersję 68534152 autorstwa PG
Znacznik: Ręczne wycofanie zmian
xd
Znaczniki: Zastąpiono Wycofane usuwanie dużej ilości tekstu (filtr nadużyć) VisualEditor
Linia 1: Linia 1:
{{Inne znaczenia|2=czasopismo [[Informatyka (czasopismo)|„Informatyka”]]}}
{{Inne znaczenia|2=czasopismo [[Informatyka (czasopismo)|„Informatyka”]]}}
{{Spis treści}}{{Przypisy}}
<div class="thumb tright">
<div class="thumbinner" style="width:300px;">
{| style="border:1px solid #ccc;"
|-
| [[Plik:Lambda calculus-Church numerals.png|144px|alt=Expression for Church numerals in lambda calculus|Programowanie komputerów|link=Programowanie komputerów]]
| [[Plik:Sorting quicksort anim.gif|144px|alt=Plot of a quicksort algorithm|Algorytmika|link=Algorytmika]]
|-
| [[Plik:Activemarker2.PNG|144px|alt=Example of Computer animation produced using Motion capture|Sztuczna inteligencja|link=Sztuczna inteligencja]]
| [[Plik:Half Adder.svg|144px|alt=Half-adder circuit|Architektura komputera|link=Architektura komputera]]
|}
<div class="thumbcaption">Informatyka zajmuje się teoretycznymi podstawami informacji, algorytmami i architekturami układów ją przetwarzających oraz praktycznymi technikami ich stosowania.</div>
</div>
</div>
'''Informatyka''' ({{Niem.|Informatik}}, {{Ang.|computer science, computing, computer engineering, IT, ICT}})<ref>{{Cytuj |autor = |tytuł = Informatics Europe – Informatics Job Platform |data = |opublikowany = www.informatics-europe.org |url = https://www.informatics-europe.org/services/informatics-job-platform.html}}</ref> – [[Nauki ścisłe|nauka ścisła]] oraz [[Technika|techniczna]] zajmująca się przetwarzaniem informacji, w tym również [[technologia]]mi przetwarzania informacji oraz technologiami wytwarzania [[system]]ów przetwarzających informacje<ref name=":2">{{Cytuj |tytuł = What is informatics? |url = https://www.ed.ac.uk/files/atoms/files/what20is20informatics.pdf}}</ref>. Zajmuje się rozwiązywaniem problemów obliczeniowych, opisem procesów [[algorytm]]icznych oraz tworzeniem [[Program komputerowy|programów]] komputerowych i częściowo sprzętu komputerowego (z wyłączeniem zagadnień materialnych i energetycznych)<ref name=":4" /><ref name=":5" /><ref name=":6">{{Cytuj |autor = |tytuł = Computer Science or Informatics? Wstęp do informatyki |data = |url = https://fulmanski.pl/zajecia/ics/pres_en_history.pdf}}</ref>. Informatyka początkowo stanowiła część [[matematyka|matematyki]], z czasem wyodrębniła się do oddzielnej dyscypliny. W języku polskim termin „informatyka” zaproponował w październiku 1968 r. [[Romuald Marczyński]] (w Zakopanem, na ogólnopolskiej konferencji podczas wykładu zatytułowanego ''„Informatyka, czyli maszyny matematyczne i przetwarzanie informacji”'')<ref>{{Cytuj książkę |nazwisko = Wasielewska |imię = Karolina |tytuł = Cyfrodziewczyny |rok = 2020 |wydawca = Wydawnictwo Krytyki Politycznej |isbn = 9788366232877}}</ref>, na wzór francuskiego ''informatique'' i niemieckiego ''Informatik''.
{{Spis treści}}

== Etymologia ==
Termin ''informatics'' nie mógł zostać wprowadzony do słownictwa amerykańskiego z uwagi na problemy prawne – istniało tam przedsiębiorstwo o nazwie {{Link-interwiki|pl=Informatics General|lang=en|tam=Informatics General|tekst=Informatics Inc}}, co zablokowało chęć zmiany nazwy [[Association for Computing Machinery|ACM]] na ''Society for Informatics''. Wówczas popularny był już tam termin ''computer science'' – dosłownie: „nauka o komputerze” – co może być mylące, stąd spotykał się często z krytyką środowisk akademickich<ref>{{cytuj stronę |url = http://miesiecznik.uz.zgora.pl/wydawnictwo/miesiecznik11-2002/17.pdf |tytuł = Informatyka – nauka, sztuka, czy rzemiosło? |autor = Marian Adamski |data = 2002-09-30 |opublikowany = „Uniwersytet Zielonogórski” – Miesięcznik Społeczności Akademickiej | język = |data dostępu = 2017-07-15}}</ref>. Proponowano wiele alternatywnych nazw, m.in. ''Computer Studies, Computics, Computing Science, Computation Science, Information engineering, Information Technology''. Association for Computing Machinery będące najważniejszą organizacją branżową przyjął termin ''computing'' na nazwę ogólnej dyscypliny. Częściowo powrócono jednak później do ''computer science'' ze względu na to, że termin ten się silnie zakorzenił. Współcześnie określenie ''computing'' odnosi się do całej dyscypliny, a ''computer science'' to jej część w której obowiązuje rygor naukowy, podczas gdy [[informatyka techniczna]] skupia się na aspektach praktycznych i traktowana jest jako nauka inżynierska. W informatyce technicznej można wyróżnić szereg specjalności, takich jak [[inżynieria komputerowa]] (''computer engineering, technische Informatik<ref>{{Cytuj |tytuł = Technische Informatik Studium |data dostępu = 2020-03-31 |opublikowany = www.ingenieurwesen-studieren.de |url = https://www.ingenieurwesen-studieren.de/studiengaenge/technische-informatik/}}</ref>'') związana z tworzeniem sprzętu komputerowego i oprogramowania wbudowanego'','' [[Technika informatyczna|technologia informacyjna]] (''information technology''), współcześnie najczęściej spotykana w tworzeniu oprogramowania dla zastosowań biznesowych, [[inżynieria oprogramowania]] (''software engineering''), odnosząca się ogólnie do programowania, lecz ściśle związana z zarządzaniem procesem wytwarzania oprogramowania. SE i IT są czasem na wzór niemiecki zbiorczo nazywane informatyką praktyczną (niem. ''praktische Informatik'')<ref>{{Cytuj |tytuł = Informatyka o profilu praktycznym {{!}} Uniwersytet Gdański – University of Gdańsk |data dostępu = 2020-03-31 |opublikowany = ug.edu.pl |url = https://ug.edu.pl/86372/informatyka_o_profilu_praktycznym,%20/86372/informatyka_o_profilu_praktycznym}}</ref><ref>{{Cytuj |tytuł = Praktische Informatik Master of Science (M.Sc.) – FernUniversität in Hagen |data dostępu = 2020-03-31 |opublikowany = www.fernuni-hagen.de |url = https://www.fernuni-hagen.de/mi/studium/msc_prinformatik/}}</ref>.

Przetwarzanie informacji jest różnie interpretowane, przez co istnieją różne definicje informatyki. [[Uniwersytet Edynburski]] definiuje ją jako naukę o systemach obliczeniowych, w której centralną notacją jest transformacja informacji<ref name=":2" />. Według [[Peter J. Denning|Petera J. Denninga]] podstawowym pytaniem leżącym u podstaw informatyki jest: ''„Co można zautomatyzować?”''<ref>{{Cytuj |tytuł = Wayback Machine |data = 2006-05-25 |data dostępu = 2020-01-15 |opublikowany = web.archive.org |url = https://web.archive.org/web/20060525195404/http://www.idi.ntnu.no/emner/dif8916/denning.pdf}}</ref>. Według teorii Stuarta C. Shapiro, informatyka jest nauką przyrodniczą, która bada procedury. Adam Olszewski wyróżnił pięć rodzajów obiektów, które są przedmiotem zainteresowania informatyki: funkcje efektywnie obliczalne, [[algorytm]]y, [[Program komputerowy|programy komputerowe]], realizacje i maszyny<ref>{{Cytuj |tytuł = 46. spotkanie – Granice informatyki |data = 2017-11-22 |data dostępu = 2020-04-19 |opublikowany = Filozofia w informatyce |url = https://filozofiainformatyki.wordpress.com/2017/11/22/46-spotkanie-granice-informatyki/}}</ref>. W roku 2005, w [[Association for Computing Machinery|ACM]] ''Computing Curricula''<ref>{{Cytuj |autor = The Joint Task Force for Computing Curricula 2005 |tytuł = Computing Curricula 2005 |url = https://web.archive.org/web/20141021153204/http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf}}</ref> przedstawiono następujący opis:
{{Cytat
|treść = Ogólnie rzecz biorąc, możemy zdefiniować informatykę (computing) jako jakąkolwiek zorientowaną na cel działalność wymagającą, korzystającą z lub tworzącą maszyny obliczeniowe. W związku z tym informatyka obejmuje projektowanie i budowanie systemów sprzętu i oprogramowania do szerokiego zakresu celów; przetwarzanie, strukturyzację i zarządzanie różnymi rodzajami informacji; obliczeniowe badania naukowe; sprawianie, by systemy komputerowe zachowywały się inteligentnie; (...) Lista jest praktycznie nieskończona, a możliwości są ogromne.
|styl = środek
}}

== Przegląd dyscyplin informatycznych ==
{{Cytat
|treść = Informatyka jest tylko o komputerach, tak jak astronomia tylko o teleskopach.
|autor = [[Edsger Dijkstra]]
|źródło =
|styl = środek
}}
Jako dyscyplina informatyka obejmuje szereg tematów, od teoretycznych badań nad [[algorytm]]ami i [[Teoria obliczalności|teorią obliczalności]] po praktyczne zagadnienia związane z implementowaniem systemów obliczeniowych zarówno w [[Sprzęt komputerowy|warstwie sprzętowej]], jak i [[Oprogramowanie|oprogramowaniu]]<ref name=":4">{{Cytuj |tytuł = Computer Science as a Profession |data = 2008-06-17 |data dostępu = 2020-01-14 |opublikowany = web.archive.org |url = https://web.archive.org/web/20080617030847/http://www.csab.org/comp_sci_profession.html}}</ref><ref name=":5">{{Cytuj |autor = National Research Council |tytuł = Computer Science: Reflections on the Field, Reflections from the Field |data = 2004-10-04 |data dostępu = 2020-01-14 |isbn = 978-0-309-09301-9 |url = https://www.nap.edu/catalog/11106/computer-science-reflections-on-the-field-reflections-from-the-field | język = en}}</ref>. CSAB, dawniej zwana ''Computing Sciences Accreditation Board'' – w skład której wchodzą przedstawiciele ''[[Association for Computing Machinery]]'' (ACM) oraz ''IEEE Computer Society'' (IEEE CS)<ref>{{Cytuj |tytuł = CSAB, Inc. |data dostępu = 2020-01-14 |opublikowany = www.csab.org |url = http://www.csab.org/}}</ref> – identyfikuje cztery obszary, które uważa za kluczowe dla informatyki: [[teoria obliczeń]], [[Algorytmika|algorytmy]] i [[Struktura danych|struktury danych]], [[Język programowania|języki]] i metodologia [[Programowanie komputerów|programowania]] oraz [[Inżynieria komputerowa|budowa]] i [[Architektura komputera|architektura komputerów]]. Oprócz tych czterech podstawowych obszarów, CSAB identyfikuje również takie dziedziny, jak [[inżynieria oprogramowania]], [[sztuczna inteligencja]], [[Sieć komputerowa|sieci komputerowe]] i komunikacja, [[Baza danych|systemy baz danych]], [[obliczenia równoległe]], [[obliczenia rozproszone]], [[interakcja człowiek–komputer]], [[grafika komputerowa]], [[System operacyjny|systemy operacyjne]] oraz [[Metoda numeryczna|metody numeryczne]] i [[Obliczenia symboliczne|symboliczne]] jako będące ważnymi dziedzinami informatyki<ref name=":4" />.

Początkowo towarzystwa ACM i IEEE CS publikowały własne oddzielne zalecenia dotyczące programów studiów. Z czasem postanowiono utworzyć wspólną dyscyplinę oraz wspólne zalecenia dotyczące programów kształcenia. W pracach nad ujednoliceniem programów studiów uczestniczyły organizacje: ACM, IEEE Computer Society, Association for Information Systems, ACM SIG Information Technology Education, British Computer Society, International Federation for Information Processing, ABET and CSAB. Wyróżniono 5 głównych specjalizacji<ref>{{Cytuj |autor = The Joint Task Force for Computing Curricula |tytuł = A volume of the Computing Curricula Series |data = 2015 |data dostępu = 2020-04-17 |opublikowany = web.archive.org |url = https://web.archive.org/web/20141021153204/http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf}}</ref>: [[inżynieria komputerowa]] (ang. ''computer engineering'', CE), informatyka naukowa (ang. ''computer science'', CS), [[System informacyjny|systemy informacyjne]] (ang. ''information systems'', IS), [[Technika informatyczna|technologia informacji]] (ang. ''information technology'', IT), [[inżynieria oprogramowania]] (ang. ''software engineering'', SE). W 2020 podobna grupa organizacji przygotowała programy studiów dla kolejnych 2 specjalizacji: [[cyberbezpieczeństwo]] (ang. ''cybersecurity)'' oraz [[Danologia|danologię]] (ang. ''data Science)''. W Niemczech zwyczajowo dzieli się natomiast na informatykę teoretyczną, techniczną, praktyczną oraz realizacje i stosowaną.
[[Plik:Architektur-der-informatik.png|center|Architektur der Informatik]]
Peter J. Denning z kolei w swoim artykule o informatyce<ref name=":3">{{Cytuj |autor = Peter J. Denning |tytuł = Computer Science: The Discipline |url = http://denninginstitute.com/pjd/PUBS/ENC/cs99.pdf}}</ref> pogrupował treści w następujące działy: [[algorytm]]y i [[Struktura danych|struktury danych]], [[Język programowania|języki oprogramowania]], architektura [[Architektura komputera|komputerów]] i [[Architektura oprogramowania|oprogramowania]], [[System operacyjny|systemy operacyjne]] i [[Sieć komputerowa|sieci]], [[inżynieria oprogramowania]], [[Baza danych|bazy danych]] i [[wyszukiwanie informacji]], [[sztuczna inteligencja]] i [[robotyka]], [[grafika komputerowa]], [[interakcja człowiek–komputer]], [[symulacja komputerowa|symulacje komputerowe]] i [[metoda numeryczna|obliczenia numeryczne]], [[informatyka ekonomiczna]], [[bioinformatyka]].
Jednocześnie dla każdego z tych obszarów zaproponował podział na trzy podejścia dotyczące strony teoretycznej, abstrakcyjnej oraz twórczej.

=== Informatyka teoretyczna ===
Teoretyczna informatyka (ang. theoretical computer science) ma ducha matematycznego i abstrakcyjnego, ale motywację czerpie z praktycznych i codziennych obliczeń. Jej celem jest zrozumienie natury obliczeń, w konsekwencji czego wprowadza ich coraz bardziej efektywne metody. Jest ona częścią [[matematyka|matematyki]] i informatyki, która grupuje matematyczne podstawy informatyki. Jej najważniejsze obszary to teoria obliczeń, teoria informacji oraz algorytmika. Informatyka teoretyczna stara się odpowiedzieć na fundamentalne pytania w informatyce np. [[P versus NP problem]] i stanowi trzon dla bardziej praktycznych dziedzin.
{{Cytat
|treść = Algorytmika to więcej niż dział informatyki. Tkwi ona w centrum wszystkich działów informatyki.
|autor =
|źródło = [[David Harel]], Algorithmics. The Spirit of Computing<ref>{{Cytuj |tytuł = prof.Krzysztof Diks, slajd z wykładu, moment 12:28 |url = https://www.youtube.com/watch?v=Xmudle0HjWk?t=748}}</ref>
|styl = środek
}}

==== Algorytmika. Algorytmy i struktury danych ====
{{Osobny artykuł|Algorytmika|Algorytm|Struktura danych}}
Algorytmika zajmuje się projektowaniem i analizą [[algorytm]]ów i [[Struktura danych|struktur danych]]. Jest najstarszą i jedną z najważniejszych dziedzin informatyki. Wśród jej podstawowych obszarów można wymienić projektowanie i [[Analiza algorytmów|analizę algorytmów]], [[Geometria obliczeniowa|geometrię obliczeniową]], optymalizację kombinatoryczną oraz [[Logika algorytmiczna|logikę algorytmiczną]]. Historycznie podstawowymi zagadnieniami są algorytmy [[Sortowanie|sortowania]], [[Kompresja (informatyka)|kompresji]], [[Przechodzenie drzewa|przeszukiwania]] czy [[Kryptologia|szyfrowania]] oraz [[Metoda numeryczna|metody numeryczne]]. Algorytmy podlegają klasyfikacji, wyróżniając np. [[Algorytm zachłanny|algorytmy zachłanne]] jak [[algorytm Dijkstry]] czy [[algorytm Kruskala]], [[:Kategoria:Generowanie liczb losowych|metody generowania liczb losowych]], [[:Kategoria:Metody optymalizacji|metody optymalizacji]] itd. Do podstawowych struktur danych należą [[Struktura (programowanie)|rekord]], [[Tablica (informatyka)|tablica]], [[Stos (informatyka)|stos]], [[lista]], [[Kolejka (informatyka)|kolejka]], [[Drzewo (informatyka)|drzewa]] czy [[Teoria grafów|grafy]]. Próbą połączenia idei struktur danych i algorytmów jest paradygmat [[Programowanie obiektowe|programowania obiektowego]].
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Comparison computational complexity.svg|96px]]
| [[Plik:Sorting quicksort anim.gif|96px]]
| [[Plik:Tree (computer science).svg|96px]]
| [[Plik:TSP Deutschland 3.png|96px]]
| [[Plik:SimplexRangeSearching.svg|96px]]
| [[Plik:Contraction vertices.jpg|96px]]
|-
| [[Analiza algorytmów]]
| [[Algorytmika|Projektowanie algorytmów]]
| [[Struktury danych]]
| [[Algorytm zachłanny|Algorytmy zachłanne]]
| [[Geometria obliczeniowa]]
| [[Algorytm probabilistyczny|Algorytmy probabilistyczne]]
|}

==== Teoria obliczeń. Języki, automaty, złożoność ====
{{Osobny artykuł|Teoria obliczeń|Teoria automatów}}
Teoria obliczeń dzieli się on na trzy główne części: [[Teoria automatów|teorię automatów]], [[teoria obliczalności|teorię obliczalności]] oraz [[złożoność obliczeniowa|teorię złożności]]. Teoria automatów zajmuje definicjami i własnościami [[Model obliczeń|modeli obliczeń]], matematycznymi modelami maszyn liczących. W uproszczeniu zajmuje się ona odpowiedzią na pytanie czym jest komputer, teoria obliczalności odpowiedzią na pytanie, które problemy dają się rozwiązać przy pomocy [[komputer]]a, a teoria złożoności – odpowiedzą na pytanie jak szybko da się to zrobić<ref>{{Cytuj |autor = Michael Sipser |tytuł = Wprowadzenie do teorii obliczeń}}</ref><ref>{{Cytuj |tytuł = Computational Complexity: A Modern Approach / Sanjeev Arora and Boaz Barak |data dostępu = 2020-03-27 |opublikowany = theory.cs.princeton.edu |url = http://theory.cs.princeton.edu/complexity/}}</ref>. Przykładowymi zagadnieniami są [[Maszyna Turinga]] czy [[Hipoteza Churcha-Turinga]]. [[Język formalny|Języki formalne]] stanowią podstawę badań nad językami komputerowymi, jak i naturalnymi w [[lingwistyka|lingwistyce]]. [[System formalny|Systemy formalne]] są tworzone i badane zarówno jako samodzielne abstrakcyjne twory, jak i systemy opisu rzeczywistości.
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:DFAexample.svg|130px]]
| [[Plik:Syntax tree.svg|96px]]
| <math>M= \{ X : X \notin X \}</math>
| [[Plik:Complexity classes.svg|120px]]
| [[Plik:Kellerautomat.svg|96px]]
|-
| [[Teoria automatów]]
| [[Język formalny]]
| [[Teoria obliczalności]]
| [[Teoria złożoności obliczeniowej]]
| [[Automat komórkowy]]
|}

==== Teoria informacji i kodowania ====
{{Osobny artykuł|Teoria informacji}}
Matematyczna teoria informacji zajmuje się problematyką informacji, w tym podstawami teoretycznymi dla przetwarzania i przesyłania informacji, np. w celu ich [[Transmisja|transmisji]] lub [[Kompresja (informatyka)|kompresji]]. Przykładowo wprowadza takie pojęcia jak [[komunikat]], [[Entropia (teoria informacji)|entropia]], [[ciało skończone]] czy [[bit]] będący podstawową jednostką w informatyce. [[Teoria kodowania]] zajmuje się tworzeniem i analizą [[:Kategoria:Komputerowe reprezentacje danych|reprezentacji danych w komputerze]]. Wyróżnia się m.in. [[Zestaw znaków|kodowanie znaków]] czy [[kodowanie transportowe]], do których należą np. [[kod stałopozycyjny]].

==== Informatyka kwantowa ====
{{Osobny artykuł|Informatyka kwantowa}}
Informatyka kwantowa to gałąź informatyki łącząca ją z [[Mechanika kwantowa|mechaniką kwantową]], w której do przetwarzania informacji wykorzystywane są własności [[Układ kwantowy|układów kwantowych]]<ref>{{Cytuj |autor = Nielsen, Michael A.; Chuang, Isaac L. |tytuł = Quantum Computation and Quantum Information (10th anniversary ed.) |data = June 2012 |isbn = 9780511992773}}</ref>. Elementarnym nośnikiem [[Informacja kwantowa|informacji kwantowej]] jest [[kubit]], kwantowy odpowiednik bitu. Stan kubitu opisany jest przez dowolną [[Kombinacja liniowa|kombinację liniową]] stanów bazowych. W najbardziej popularnym modelu kwantowego przetwarzania informacji, operacje na kubitach są reprezentowane za pomocą [[Bramka kwantowa|bramek kwantowych]]. Najbardziej spektakularny sukces informatyki kwantowej to [[Kryptologia kwantowa|kwantowa kryptografia]]. Natomiast najbardziej obiecującym kierunkiem badań są prace dotyczące idei [[Komputer kwantowy|kwantowego komputera]]. Dynamiczny rozwój technologii w ostatnich latach spowodował że gałąź ta wyłamuje się poza czysto-teoryczne rozważania. Stworzono pewne realizacje bramek kwantowych, a na targach CES w 2018 roku amerykańskie przedsiębiorstwo informatyczne [[IBM]] zaprezentowała swój działający, 50-kubitowy komputer kwantowy<ref>{{Cytuj |tytuł = IBM zaprezentuje najpotężniejszy na świecie 53-kubitowy komputer kwantowy – NeeWS – GeekWeek.pl |data dostępu = 2020-03-27 |opublikowany = www.geekweek.pl |url = https://www.geekweek.pl/news/2019-09-21/ibm-zaprezentuje-najpotezniejszy-na-swiecie-53-kubitowy-komputer-kwantowy/}}</ref>.

==== Teoria języków programowania, typów, kompilacji ====
{{Osobny artykuł|Teoria języków programowania}}
Teoria języków programowania (ang. ''Programming language theory, PLT'') to dziedzina informatyki zajmująca się projektowaniem, wdrażaniem, analizą, charakteryzacją i klasyfikacją [[Język programowania|języków programowania]] oraz ich indywidualnymi cechami<ref>{{Cytuj |autor = List |tytuł = Classic Papers in Programming Languages and Logic |data = |url = https://www.cs.cmu.edu/~crary/819-f09/}}</ref>. Przykładowymi obszarami PLT są semantyki formalne (ang. ''formal semantics''), [[teoria typów]] (ang. ''type theory'')<ref>{{Cytuj |autor = Robert L. Constable |tytuł = Naïve Computational Type Theory |data = 2002 |data dostępu = 2020-03-27 |isbn = 978-1-4020-0608-1 |miejsce = Dordrecht |wydawca = Springer Netherlands |s = 213–259 |doi = 10.1007/978-94-010-0413-8_7}}</ref> czy [[metaprogramowanie]]. Na języki programowania składa się składnia, semantyka i [[Biblioteka standardowa|biblioteki standardowe]], zazwyczaj posiadają co najmniej obsługę [[Urządzenie wejścia-wyjścia|wejścia-wyjścia]], obsługę [[Plik danych|plików]], obsługę [[Wielowątkowość|wielowątkowości]], zarządzanie [[Pamięć operacyjna|pamięcią operacyjną]], podstawowe typy danych, funkcje do zarządzania nimi np. operacje na ciągach znaków. Ważnym obszarem PLT jest też [[Kompilator|teoria kompilacji]], na której proces składa się wykonanie poleceń [[preprocesor]]a, [[analiza leksykalna]], [[analiza składniowa]], [[analiza semantyczna]], [[optymalizacja kodu wynikowego]] i [[generacja kodu]]. Języki klasyfikuje się według poziomu abstrakcji na którym operują na [[Język niskiego poziomu|języki niskiego poziomu]] oraz [[Język wysokiego poziomu|języki wysokiego poziomu]], wyróżnia się także wiele [[Paradygmat programowania|paradygmatów programowania]]<ref>{{Cytuj |tytuł = Overview of the four main programming paradigms |data dostępu = 2020-03-27 |opublikowany = people.cs.aau.dk |url = http://people.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigm-overview-section.html}}</ref><ref>{{Cytuj |autor = KrishnamurthiShriram |tytuł = Teaching programming languages in a post-linnaean age |czasopismo = ACM SIGPLAN Notices |data = 2008-11-30 |data dostępu = 2020-03-27 |doi = 10.1145/1480828.1480846 |url = https://dl.acm.org/doi/abs/10.1145/1480828.1480846 | język = en}}</ref>.
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Logic.svg|96px]]
| [[Plik:Compiler.svg|96px]]
| [[Plik:Lambda lc.svg|96px]]
| [[Plik:Python add5 syntax.svg|96px]]
| [[Plik:Programming paradigms.svg|96px]]
|-
| [[Teoria typów]]
| [[Kompilator|Teoria kompilacji]]
| [[Teoria języków programowania]]
| [[Język programowania|Języki programowania]]
| [[Paradygmat programowania|Paradygmaty programowania]]
|}

=== Inżynieria komputerowa ===
{{Osobny artykuł|Inżynieria komputerowa}}
Inżynieria komputerowa (ang. ''computer engineering'', niem. Technishe Informatik) – zajmuje się tworzeniem systemów komputerowych. Do jej zadań należy projektowanie, wytwarzanie, integracja i eksploatacja sprzętu cyfrowego, w tym urządzeń sieciowych. Początkowo zajmowała się głównie tworzeniem procesorów, a współcześnie ważną jej rolę stanowi także tworzenie sprzętu i sterowników dla systemów wbudowanych, które wraz z pojawieniem się koncepcji [[IoT]] mają coraz większe znaczenie<ref>{{Cytuj |tytuł = definicje |data dostępu = 2020-05-18 |opublikowany = www.iszkowski.eu |url = https://www.iszkowski.eu/definicje}}</ref>. Do jej zagadnień należy [[Architektura komputera|architekturą]] i organizacją [[System komputerowy|systemów komputerowych]] na [[Sprzęt komputerowy|poziomie sprzętowym]] oraz [[Oprogramowanie sprzętowe|oprogramowania sprzętowego]].

==== Logika obliczeniowa i technika cyfrowa ====
{{Osobny artykuł|Technika cyfrowa}}
Technika cyfrowa zajmuje się projektowaniem i analizą [[Układ cyfrowy|układów cyfrowych]]. Do jej elementarnych zagadnień należą [[Bramka logiczna|bramki logiczne]], [[Rejestr procesora|rejestry]], [[Układ sekwencyjny|układy sekwencyjne]] i [[Układ kombinacyjny|układy kombinacyjne]]. Obejmuje syntezę logiczną i odwzorowanie technologiczne<ref name=":0">{{Cytuj |tytuł = TC Moduł 1 – Studia Informatyczne |data dostępu = 2020-01-15 |opublikowany = wazniak.mimuw.edu.pl |url = http://wazniak.mimuw.edu.pl/index.php?title=TC_Modu%C5%82_1}}</ref>. Współcześnie jej zagadnienia są kształtowane z jednej strony przez [[Hardware Description Language|języki opisu sprzętu]], a z drugiej przez [[Bezpośrednio programowalna macierz bramek|bezpośrednio programowalne macierze bramek]]<ref name=":0" /><ref name="TC Moduł 12 - Studia Informatyczne">{{Cytuj |tytuł = TC Moduł 12 – Studia Informatyczne |data dostępu = 2020-03-28 |opublikowany = wazniak.mimuw.edu.pl |url = http://wazniak.mimuw.edu.pl/index.php?title=TC_Modu%C5%82_12}}</ref>. Układy logiczne początkowo implementowano jako układy mechaniczne, następnie jako elektromechaniczne i dominujące współcześnie układy elektroniczne.

==== Architektura i organizacja komputerów ====
{{Osobny artykuł|Architektura komputera}}
Architektura komputerów ('''AK''') to główny obszar [[Inżynieria komputerowa|inżynierii komputerowej]] zajmujący się projektowaniem i podstawową strukturą systemów komputerowych oraz budową i organizacją ich podzespołów. Główny obszar AK stanowi [[Architektura procesora|architektura procesorów]] na którą składa się [[model programowy procesora]] oraz [[mikroarchitektura procesora]]<ref>{{Cytuj |autor = |tytuł = Architektura komputerów, wykłady |data = |url = https://www.wsti.pl/files/przedmioty/ARH.pdf}}</ref>. Procesory są głównym elementem systemów komputerowych. Szczególna uwaga jest poświęcona na sposobie, w jaki [[procesor]] wykonuje instrukcje i uzyskuje dostęp do adresów w [[Pamięć komputerowa|pamięci]]. Przykładowe zagadnienia to [[Direct Memory Access|DMA]] czy [[Kontroler (informatyka)|kontroler]]<ref>{{Cytuj |autor = P. Metzger, A. Jełowiecki |tytuł = Anatomia PC |data = 2000 |wydawca = Helion}}</ref><ref>{{Cytuj |autor = J. Biernat |tytuł = Architektura komputerów |data = 2002 |wydawca = Wydawnictwo Politechniki Wrocławskiej}}</ref>. Ważnymi obszarami AK są także [[Magistrala komunikacyjna|magistrale]] oraz [[Pamięć komputerowa|pamięci komputerowe]]. Pamięcią komputerową nazywa się różnego rodzaju urządzenia i bloki funkcjonalne komputera, służące do przechowywania [[Dane|danych]] i programów ([[System operacyjny|systemu operacyjnego]] oraz [[Oprogramowanie użytkowe|aplikacji]]). Istnieje jej wiele rodzajów, m.in. [[Rejestr procesora|rejestry procesora]], [[pamięć podręczna procesora]], [[RAM|pamięć RAM]], [[Napęd SSD|dyski półprzewodnikowe]] (SSD), [[Dysk twardy|dyski twarde]] (HDD). Wyróżnia się [[Pamięć zewnętrzna|pamięci zewnętrzne]] i wewnętrzne. Magistralę komunikacyjną (ang. ''bus'') definiuje się jako zespół linii przenoszących [[sygnał]]y oraz [[Układ wejścia-wyjścia|układy wejścia-wyjścia]] służące do przesyłania sygnałów między połączonymi urządzeniami w systemach mikroprocesorowych<ref>{{Cytuj |tytuł = Wykład II. Pamięci półprzewodnikowe. Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych – PDF Darmowe pobieranie |data dostępu = 2020-03-31 |opublikowany = docplayer.pl |url = https://docplayer.pl/19566429-Wyklad-ii-pamieci-polprzewodnikowe-studia-stacjonarne-inzynierskie-kierunek-informatyka-architektura-systemow-komputerowych.html}}</ref>.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:ABasicComputer.gif|96px]]
| [[Plik:Z80 arch.svg|96px]]
| [[Plik:Intel Nehalem arch.svg|96px]]
| [[Plik:Computer system bus(fixed).svg|96px]]
| [[Plik:Intel Core2 arch.svg|96px]]
| [[Plik:Uarm metal wiki2.jpg|96px]]
|-
| [[Architektura procesora|Architektura procesorów]]
| [[Pamięć komputerowa|Architektura pamięci]]
| [[Magistrala komunikacyjna|Magistrale]]
| [[Mikroarchitektura procesora|Mikroarchitektura procesorów]]
| [[Pamięć komputerowa]]
| [[Urządzenie wejścia-wyjścia|Urządzenia wejścia-wyjścia]]
|}

==== Przetwarzanie równoległe i rozproszone ====
{{Osobny artykuł|Przetwarzanie współbieżne|Obliczenia równoległe|Obliczenia rozproszone}}
Obliczenia równoległe to obszar badający możliwość [[Obliczenia|obliczeń]], w której wiele [[Rozkaz (informatyka)|instrukcji]] jest wykonywanych jednocześnie. Taka forma przetwarzania danych była wykorzystywana przez wiele lat, głównie przy wykorzystaniu [[superkomputer]]ów, a szczególne zainteresowanie zyskała w ostatnich latach, z uwagi na fizyczne ograniczenia uniemożliwiające dalsze zwiększanie [[Taktowanie|częstotliwości taktowania]] procesorów. Obliczenia równoległe stały się dominującym wzorcem w [[Architektura komputera|architekturze komputerowej]], głównie za sprawą upowszechnienia [[Procesor wielordzeniowy|procesorów wielordzeniowych]]. Ze względu na skalę można wyróżnić obliczenia równoległe na poziomie: bitów, instrukcji, danych i zadań. [[Przetwarzanie współbieżne|Współbieżność]] jest właściwością systemów, w których obliczenia wykonuje się jednocześnie i potencjalnie korzystają ze wspólnych zasobów i/lub wchodzą w interakcje ze sobą. Opracowano wiele modeli obliczeń równoległych, w tym [[Sieć Petriego|sieci Petriego]], [[rachunek procesowy]] (ang.'' process calculus'') i [[model maszyny dostępu równoległego]] (ang. ''parallel random-access machine, PRAM''). Kiedy wiele komputerów jest podłączonych do sieci podczas korzystania ze współbieżności, jest to nazywane [[System rozproszony|systemem rozproszonym]]. w którym to komputery mają własną pamięć, a informacje są wymieniane, by osiągnąć wspólne cele.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:SIMD cpu diagram1.svg|96px]]
| [[Plik:Distributed-parallel.svg|96px]]
| [[Plik:MIMD.svg|96px]]
| [[Plik:Superscalarpipeline.png|96px]]
| [[Plik:An illustration of the dining philosophers problem.png|96px]]
|-
| [[Przetwarzanie współbieżne]]
| [[Obliczenia rozproszone|Przetwarzanie rozproszone]]
| [[Obliczenia równoległe|Przetwarzanie równoległe]]
| [[Potokowość]]
| [[Problem ucztujących filozofów|Problem 5 filozofów]]
|}

==== Programowanie niskopoziomowe ====
{{Osobny artykuł|Programowanie niskopoziomowe}}
Oprogramowanie niskopoziomowe pisze się w [[Język niskiego poziomu|językach niskiego poziomu]]. Są to głównie języki [[asembler]]a, stanowią symboliczny zapis [[Instrukcja (informatyka)|instrukcji]] procesora i danych, który w prosty sposób odpowiada zapisowi binarnemu. Języki asemblerowe wprowadzone w celu czytelnej dla człowieka reprezentacji [[Język maszynowy|języków maszynowych]] komputerów. W przeciwieństwie do języków wysokiego poziomu, typowe języki asemblerowe charakteryzują się strukturą liniową (wierszową). Każdy wiersz tekstu może zawierać pojedynczą instrukcję procesora lub [[Dyrektywa (informatyka)|dyrektywę asemblera]]<ref>{{Cytuj |autor = Studia informatyczne MIMUW |tytuł = Programowanie niskopoziomowe – Moduł 1 |url = http://wazniak.mimuw.edu.pl/index.php?title=Programowanie_niskopoziomowe_/_Modu%C5%82_1:_Wiadomo%C5%9Bci_podstawowe}}</ref>.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:CPU block diagram.svg|96px]]
| [[Plik:Apple II Monitor.png|96px]]
| [[Plik:Wikipedia in binary.gif|96px]]
| [[Plik:X86 Paging 4K.svg|96px]]
| [[Plik:IF-THEN-ELSE-END flowchart.svg|96px]]
|-
| [[Rozkaz (informatyka)|Rozkazy]]
| [[Język maszynowy|Kod maszynowy]]
| [[Dwójkowy system liczbowy|Kod binarny]]
| [[Rejestr stanu|Rejestry]]
| [[Instrukcja (informatyka)|Instrukcje]]
|}

==== Sieci komputerowe ====
{{Osobny artykuł|Sieć komputerowa}}
Sieci komputerowe to gałąź informatyki mająca na celu tworzenie sieci między komputerami nazywanych węzłami, umożliwiając im współdzielenie zasobów. W sieciach komputerowych urządzenia komputerowe wymieniają się danymi za pomocą [[Model OSI#Warstwy wyższe|warstw sieciowych]]. W [[Model OSI|modelu OSI]] wyróżnia się warstwę aplikacji, prezentacji, sesji, transportową, sieciową, [[Warstwa łącza danych|łącza danych]] i fizyczną, a w [[Model TCP/IP|modelu TCP/IP]] – będącym podstawą struktury [[internet]]u – wyróżnia się warstwy aplikacji, transportową, internetową i dostępu do sieci. Te łącza danych są ustanawiane za pomocą mediów kablowych, takich jak [[skrętka]] lub [[Kabel światłowodowy|kable światłowodowe]], oraz mediów bezprzewodowych, takich jak np. [[Wi-fi|Wi-Fi]]<ref>{{Cytuj |tytuł = Sieci komputerowe – Studia Informatyczne |data dostępu = 2020-03-29 |opublikowany = wazniak.mimuw.edu.pl |url = http://wazniak.mimuw.edu.pl/index.php?title=Sieci_komputerowe}}</ref>. Jednymi z podstawowych zagadnień sieci są protokoły oraz urządzenia sieciowe. Do najpopularniejszych urządzeń sieciowych należy [[karta sieciowa]], [[router]], [[Koncentrator sieciowy|koncentrator]], [[Przełącznik sieciowy|przełącznik]], [[Punkt dostępu|punkt dostępowy]], most, ekspander zasięgu Wi-Fi (repeater Wi-Fi), adaptery PowerLine, [[Serwer wydruku|serwery wydruku]], kamery IP, bramki VoIP orazy telefony IP<ref>{{Cytuj |tytuł = Popularne urządzenia sieciowe |data dostępu = 2020-03-29 |opublikowany = miroslawzelent.pl |url = https://miroslawzelent.pl/informatyka/urzadzenia-sieciowe/}}</ref>. Protokołem komunikacyjnym nazywa się zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia sieciowe w celu nawiązania łączności i wymiany danych. Definiują one syntaks, semantykę, synchronizację komunikacji oraz możliwe metody naprawiania błędów. Protokoły te mogą zostać wdrożone za pomocą hardware'u, oprogramowania lub obu jednocześnie<ref>{{Cytuj |tytuł = Zestawienie protokołów |data dostępu = 2020-03-29 |opublikowany = pasja-informatyki.pl |url = https://pasja-informatyki.pl/sieci-komputerowe/protokoly-zestawienie/}}</ref>.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Rozszerzonagwiazda.jpeg|96px]]
| [[Plik:Kapsułkowanie danych wg modelu odniesienia OSI.svg|96px]]
| [[Plik:DHCP session.svg|96px]]
| [[Plik:SPOF pl.png|96px]]
| [[Plik:Internet map 1024.jpg|96px]]
|-
| [[Topologia sieci komputerowej|Topologie sieci komputerowej]]
| [[Architektura sieci]]
| [[Protokół sieciowy|Protokoły sieciowe]]
| [[Urządzenie sieciowe]]
| [[Internet]]
|}

==== Systemy operacyjne ====
{{Osobny artykuł|System operacyjny}}
Systemy operacyjny pełnią szczególną rolę w informatyce. Jest to [[oprogramowanie]] zarządzające [[System komputerowy|systemem komputerowym]], tworzące [[środowisko]] do uruchamiania i kontroli [[Zadanie (informatyka)|zadań]]. Najważniejszym elementem systemu operacyjnych jest jego [[Jądro systemu operacyjnego|jądro]] wykonujące i kontrolujące zadania m.in. [[Dyspozytor|planisty]] czasu procesora, ustalającego które zadanie i jak długo będzie wykonywane czy przełącznika zadań, odpowiedzialnego za przełączanie pomiędzy uruchomionymi zadaniami. System operacyjny posiada także swoją [[Powłoka systemowa|powłokę]], czyli specjalny [[Oprogramowanie|program]] komunikujący użytkownika z systemem operacyjnym oraz [[system plików]] – sposób ustrukturyzowanego zapisu danych na [[Nośnik danych|nośniku]]. Osoby administrujące systemami nazwa się [[Administrator systemów komputerowych|administratorami]] (pot. adminami). Współcześnie najważniejszą rodziną systemów operacyjnych jest [[GNU/Linux]] oraz [[Microsoft Windows|Windows]].

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Device-driver-pl.svg|96px]]
| [[Plik:Thread pool.svg|96px]]
| [[Plik:System operacyjny schemat ogolny.svg|96px]]
| [[Plik:Dir command in Windows Command Prompt.png|96px]]
| [[Plik:FSV-OSX-screenshot.png|96px]]
|-
| [[Sterownik urządzenia|Sterowniki]]
| [[Dyspozytor|Planista]]
| [[Jądro systemu operacyjnego]]
| [[Powłoka systemowa]]
| [[System plików]]
|}

=== Informatyka praktyczna ===
{{Osobny artykuł|Programowanie komputerów|Kategoria:Konstrukcje programistyczne}}
Programowanie komputerów to proces projektowania, tworzenia, testowania i utrzymywania [[Kod źródłowy|kodu źródłowego]] [[Program komputerowy|programów komputerowych]] w tym dla urządzeń [[mikroprocesor]]owych ([[mikrokontroler]]y). Programowanie pod różnymi postaciami jest obecne w większości działów informatyki. Kod źródłowy jest napisany w [[Język programowania|języku programowania]], z użyciem określonych reguł, może on być modyfikacją istniejącego programu lub czymś zupełnie nowym. Programowanie wymaga wiedzy i doświadczenia w wielu dziedzinach, jak projektowanie aplikacji, [[algorytmika]], [[Struktura danych|struktury danych]], [[Język programowania|języki programowania]] i narzędzia programistyczne, [[kompilator]]y, czy sposób działania podzespołów komputera. Między programistami trwają debaty, czy programowanie komputerów jest sztuką, rzemiosłem czy procesem inżynieryjnym. Bezpośrednią formą sztuki w tej dziedzinie jest [[demoscena]]. Programowanie komputerów integruje ze sobą większość gałęzi informatyki. Istnieje wiele gałęzi rozwoju technik programowania, jednak wszystkie z nich bazują na wspólnych podstawach. Niezależnie czy to będzie aplikacja webowa w [[JavaScript|Javascript]], gra komputerowa w [[C++]] czy program mikrokontrolera w [[C (język programowania)|C]], używają one podstawowych konstrukcji programistycznych. Podstawymi pojęciami od których zaczyna się naukę programowania są między innymi [[Zmienna (informatyka)|zmienne]], [[Tablica (informatyka)|tablice]], [[Instrukcja warunkowa|instrukcje warunkowe]], [[Pętla (informatyka)|pętle]], [[Wskaźnik (typ danych)|wskaźniki]], [[Tekstowy typ danych|łańcuchy]], [[Podprogram|funkcje]], [[debugowanie]], [[Biblioteka programistyczna|biblioteki]] oraz [[zarządzanie pamięcią]]. Języki dzieli sią na generacje: [[2GL]], [[3GL]], [[4GL]], [[5GL]]. Wyróżnia się między innymi [[Język akcji|języki akcji]], [[Język algorytmiczny|języki algorytmiczne]], [[Język dziedzinowy|języki dziedzinowe]], [[Język interpretowany|języki interpretowane]], [[Język kompilowany|języki kompilowane]], [[Język mnemoniczny|języki mnemoniczne]], [[Język nieproceduralny|języki nieproceduralne]], [[Język niezależny komputerowo|języki niezależne komputerowo]], [[Język niskiego poziomu|języki niskiego poziomu]], [[Język opisu zadań|języki opisu zadań]], [[Język problemowy|języki problemowe]], [[Język proceduralny|języki proceduralne]], [[Język symulacyjny|języki symulacyjne]], [[Język uniwersalny|języki uniwersalne]], [[Język wysokiego poziomu|języki wysokiego poziomu]] i języki uniwersalne. Do najpopularniejszych języków programowania zalicza się: [[Java]], C, [[Python]], C++, [[Visual Basic .NET]], [[C Sharp|C#]], [[JavaScript]], [[PHP]], [[SQL]], [[Asembler#Język asemblera|Język Asemblera]], [[Swift (język programowania LLVM)|Swift]], [[Objective-C]], [[Ruby (język programowania)|Ruby]], [[Groovy]], [[Go (język programowania)|Go]], [[Perl]], [[Embarcadero Delphi|Delphi]], [[MATLAB]], [[Visual Basic]].

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Programmiersprache Umfeld.png|96px]]
| [[Plik:For loop.png|96px]]
| [[Plik:Mapa conceptual del software libre.png|96px]]
| [[Plik:C Hello World Program.png|96px]]
| [[Plik:Quellcodebeispiel C++.png|96px]]
|-
| [[Język wysokiego poziomu|Języki wysokiego poziomu]]
| [[Przepływ sterowania]]
| [[Biblioteka programistyczna|Biblioteki programistyczne]]
| [[Programowanie obiektowe]]
| [[Programowanie strukturalne]]
|}

==== Grafika komputerowa ====
{{Osobny artykuł|Grafika komputerowa}}
Grafika komputerowa to dział informatyki zajmujący się cyfrową syntezą i manipulacją treści wizualnych. Ze względu na reprezentację danych dzieli się na [[Grafika rastrowa|grafikę rastrową]] i [[Grafika wektorowa|wektorową]], a ze względu na charakter danych na [[Grafika dwuwymiarowa|grafikę dwuwymiarową]], [[Grafika 3D|trójwymiarową]] i [[Animacja komputerowa|ruchomą]]. Obejmuje także obecnie szybko rozwijające się [[Cyfrowe przetwarzanie obrazów|przetwarzenie obrazów]]. Grafikę komputerową można także podzielić na teoretyczną skupiającą się [[:Kategoria:Algorytmy graficzne|algorytmach graficznych]] i praktyczną, skupiającą się [[Retusz|manipulacji obrazem]] czy modelowaniu 3D np. w programie [[Blender (program)|Blender]]. Grafika komputerowa stanowi podstawę współczesnych [[Gra komputerowa|gier]], [[Animacja komputerowa|animacji]], [[Symulacja komputerowa|symulacji]] czy [[Wizualizacja (informatyka)|wizualizacji]] komputerowych. Renderowanie polega na analizie stworzonego wcześniej modelu danej sceny oraz utworzenie na jej podstawie dwuwymiarowego obrazu wyjściowego w formie statycznej lub animacji. Podczas renderowania rozpatrywane są m.in. odbicia, cienie, załamania światła, wpływy atmosfery (w tym mgła), efekty wolumetryczne itp.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Raster graphic fish 20x23squares sdtv-example.png|96px]]
| [[Plik:DeCasteljau-evaluate point.svg|96px]]
| [[Plik:Texture mapping demonstration animation.gif|96px]]
| [[Plik:Raytracing-schemat.png|96px]]
| [[Plik:Pavlovsk Railing of bridge Yellow palace Winter bw threshold.jpg|96px]]
|-
| [[Grafika rastrowa]]
| [[Grafika wektorowa]]
| [[Grafika trójwymiarowa]]
| [[Renderowanie]] i [[Animacja komputerowa|animacja]]
| [[Cyfrowe przetwarzanie obrazów]]
|}

==== Inżynieria oprogramowania ====
{{Osobny artykuł|Inżynieria oprogramowania}}
Inżynieria oprogramowania, także ''inżynieria systemów informatycznych'' – zajmuje się procesem i metodykami tworzenia [[System informatyczny|systemów informatycznych]]: od analizy i określenia wymagań, przez projektowanie i wdrożenie, aż do ewolucji gotowego oprogramowania. Termin ''inżynieria oprogramowania'' po raz pierwszy został użyty w przełomie lat 1950/60 (ale oficjalnie za narodziny tej dyscypliny podaje się lata 1968 i 1969, w których miały miejsce dwie konferencje sponsorowane przez [[NATO]], odpowiednio w [[Garmisch-Partenkirchen|Garmisch]] i [[Rzym]]ie). Wyróżnia [[Fazy produkcji oprogramowania|fazy produkcji oprogramwania]]: specyfikacji, projektowania, [[Implementacja (informatyka)|implementacji]], integracji i ewoluacji, a także dostarcza systematycznych [[Metodyka|metodyk]] jego tworzenia, jak m.in. [[model kaskadowy]], [[Model prototypowy|prototypowy]] czy [[Programowanie zwinne|zwinny]], w tym [[scrum]]. Wprowadza takie pojęcia jak np. [[cykl życia programu]] czy [[metryka oprogramowania]]. Wyróżnia się także jej specjalizacje np. inżynieria systemów mobilnych, inżynieria systemów baz danych, inżynieria sytemów wbudowanych czy inżynieria gier komputerowych. Wzorcem projektowym ([[Język angielski|ang.]] design pattern) nazywa się uniwersalne, sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych. Pokazuje powiązania i zależności pomiędzy klasami oraz obiektami i ułatwia tworzenie, modyfikację oraz utrzymanie kodu źródłowego. Jest opisem rozwiązania, a nie jego implementacją. Architekturą oprogramowania nazwywa podstawową organizację systemu wraz z jego komponentami, wzajemnymi powiązaniami, środowiskiem pracy i regułami ustanawiającymi sposób jego budowy i rozwoju. Metody formalne – tworzenie specyfikacji, projektowania i weryfikacji [[Oprogramowanie|oprogramowania]] lub systemów informatycznych w języku formalnym. Metody formalne najlepiej opisać jako zastosowanie dość szerokiej gamy podstaw teoretycznych informatyki, w szczególności [[Rachunek zdaniowy|rachunku logicznego]], [[Język formalny|języków formalnych]], teorii automatów, systemu dynamiki zdarzeń dyskretnych i semantyki programów, a także systemów typów i [[Typ danych|typów danych]] algebraicznych do specyfikacji i weryfikacji problemów w oprogramowaniu i sprzęcie.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:UML Diagrams.jpg|96px]]
| [[Plik:Prototyp.svg|96px]]
| [[Plik:Wikimedia Server Architecture (simplified).svg|96px]]
| [[Plik:SoftwareDevelopmentLifeCycle.jpg|96px]]
| [[Plik:CodeCmmt002.svg|96px]]
|-
| [[UML|Diagramy UML]]
| [[Wzorzec projektowy (informatyka)|Wzorce projektowe]]
| [[Architektura oprogramowania]]
| [[Programowanie zwinne|Metodyki wytwarzania oprogramowania]]
| [[Metody formalne]]
|}

==== Cyberbezpieczeństwo i kryptologia ====
{{Osobny artykuł|Bezpieczeństwo komputerowe|Kryptologia}}
Kryptologia dzieli się na [[kryptografia|kryptografię]], czyli gałąź wiedzy o utajnianiu wiadomości oraz [[Kryptoanaliza|kryptoanalizę]], czyli gałąź wiedzy o przełamywaniu zabezpieczeń oraz o deszyfrowaniu wiadomości przy braku klucza lub innego wymaganego elementu schematu szyfrowania ([[szyfr]]u). Przykładowe metody to [[atak brute force]] czy [[kryptoanaliza liniowa]]. Bezpieczeństwo komputerowe (ang. ''computer security'''', pot. ''cybersecurity, hacking'') zajmuje się zapewnianiem [[Poufność|poufności]] i [[Bezpieczeństwo teleinformatyczne|bezpieczeństwa danych]]. Osoby posiadające szeroką i zaawansowaną wiedzę informatyczną, lecz nieetycznie z niej korzystający nazywani są [[Haker (bezpieczeństwo komputerowe)|hakerami]]. Ich szczególnym zainteresowaniem jest wyszukiwanie luk (dziur) w systemach operacyjnych, programach, sieciach komputerowych czy urządzeniach do niej podłączonych w celu przejęcia nad nimi zdalnej kontroli. Wyróżnia się wiele klasycznych [[:Kategoria:Ataki komputerowe|ataków komputerowych]] takich jak na przykład [[DDoS]], [[HTTP Flood]], [[UDP flood]], [[smurf attack]], [[session hijacking]], a także wiele rodzajów [[Wirus komputerowy|wirusów komputerowych]], [[Koń trojański (informatyka)|trojanów]], [[sniffer]]ów czy [[rootkit]]ów. W odpowiedzi powstało wiele technik obrony systemów informatycznych, np. [[Obrona w głąb (informatyka)|obrona w głąb]], [[security through obscurity]] czy [[głębokie ukrycie]]<ref>{{Cytuj |autor = Daniel Schatz, Rabih Bashroush, Julie Wall |tytuł = Towards a More Representative Definition of Cyber Security |czasopismo = Journal of Digital Forensics, Security and Law |data = 2017-06-30 |data dostępu = 2020-03-28 |issn = 1558-7215 |wolumin = 12 |numer = 2 |doi = 10.15394/jdfsl.2017.1476 |url = https://commons.erau.edu/jdfsl/vol12/iss2/8}}</ref><ref>{{Cytuj |autor = Nikola Zlatanov |tytuł = Computer Security and Mobile Security Challenges |data = December 2015 |url = https://www.researchgate.net/publication/298807979_Computer_Security_and_Mobile_Security_Challenges}}</ref>.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Virus Blaster.jpg|96px]]
| [[Plik:Rkhunter on Mac OS X.png|96px]]
| [[Plik:Circle of spam.svg|96px]]
| [[Plik:SHA-1.svg|96px]]
| [[Plik:CPU ring scheme.svg|96px]]
|-
| [[Wirus komputerowy|Wirusy komputerowe]]
| [[Sniffer]]y i [[Rootkit]]y
| [[Botnet (bezpieczeństwo komputerowe)|Botnet]]
| [[Funkcja skrótu|Funkcje skrótu]]
| [[Obrona w głąb (informatyka)|Obrona w głąb]]
|}

==== Bazy danych, eksploracja danych, danologia ====
[[Danologia]] (ang. ''Data science'') wykorzystuje metody naukowe, procesy, algorytmy, narzędzia i systemy informatyczne do wydobywania wiedzy i spostrzeżeń z wielu danych strukturalnych i nieustrukturyzowanych, tzw. [[Big data]]. Eksploracją danych (ang. ''data mining'') nazywa się jeden z procesów uzyskiwania wiedzy z [[Baza danych|baz danych]]. Idea eksploracji danych polega na wykorzystaniu szybkości komputera do znajdowania ukrytych dla człowieka (właśnie z uwagi na ograniczone możliwości czasowe) prawidłowości w [[Dane|danych]] zgromadzonych w [[Hurtownia danych|hurtowniach danych]]. Big data to termin odnoszący się do dużych, zmiennych i różnorodnych [[Zbiór danych|zbiorów danych]], których przetwarzanie i analiza jest trudna, ale jednocześnie wartościowa. Obecne użycie terminu ''big data'' zwykle odnosi się do użycia analizy predykcyjnej, analizy zachowania użytkownika lub niektórych innych zaawansowanych metod analizy danych, które wydobywają wartość z danych, a rzadko do określonego rozmiaru zestawu danych. Baza danych to zorganizowany [[zbiór danych]], ogólnie przechowywanych i dostępnych z systemu komputerowego. Tam, gdzie bazy danych są bardziej złożone, często są opracowywane przy użyciu formalnych technik projektowania i modelowania. [[System zarządzania bazą danych]] (DBMS) to oprogramowanie, które współdziała z użytkownikami końcowymi, aplikacjami i samą bazą danych w celu przechwytywania i analizy danych. Oprogramowanie DBMS obejmuje dodatkowo podstawowe narzędzia do zarządzania bazą danych.

=== Systemy i technologie komputerowe ===
{{Osobny artykuł|System komputerowy|System informatyczny|Technika informatyczna}}Systemy informatyczne (ang. information processing systems) może opisać jako zbiór powiązanych ze sobą elementów, które przetwarzają informacje, najczęściej z wykorzystaniem sprzętu i oprogramowania komputerowego.

==== Sztuczna inteligencja ====
{{Osobny artykuł|Sztuczna inteligencja}}
Sztuczna inteligencja (SI, ang. ''Artificial intelligence, AI'') to obszar informatyki zajmujący się komputerowym symulowaniem [[Inteligencja|inteligencji]] – tworzeniem modeli zachowań inteligentnych oraz systemów komputerowych symulujących te zachowania<ref>{{Cytuj |autor = Katalog Niemieckiej Biblioteki Narodowej |tytuł = Kontrola Autorytatywna |data dostępu = 2020-03-31 |opublikowany = portal.dnb.de |url = https://portal.dnb.de/opac.htm?method=simpleSearch&cqlMode=true&query=nid=4033447-8}}</ref><ref>{{Cytuj |autor = University of British Columbia, Faculty of Computer Science |tytuł = Computational Intelligence and Knowledge |url = https://www.cs.ubc.ca/~poole/ci/ch1.pdf}}</ref>. Szczególnym zainteresowaniem darzy się problemy które nie są bezpośrednio algorytmizowalne, jak [[rozpoznawanie obrazów]], [[Tłumaczenie automatyczne|tłumaczenie maszynowe]] czy [[rozpoznawanie mowy]]. Sztuczna inteligencja jest związana z [[Logika rozmyta|logiką rozmytą]], [[Algorytm ewolucyjny|algorytmami ewolucyjnymi]], [[Sieć neuronowa|sieciami neuronowymi]], [[robot]]yką i [[sztuczne życie|sztucznym życiem]]. SI bywa nazywane także inteligencją obliczeniową (ang. ''Computational Intelligence'', ''CI''). Uczeniem maszynowym (ang. ''Machine learning'', ''ML'') nazwa się analizę procesów uczenia się oraz tworzeniem systemów, które doskonalą swoje działanie na podstawie doświadczeń z przeszłości. Jedną z wiodących technologii jest [[TensorFlow]]<ref>{{Cytuj |autor = Bharath Ramsundar, Reza Bosagh Zadeh |tytuł = Głębokie uczenie z TensorFlow |data = 2019 |isbn = 978-83-283-5705-1 |url = https://helion.pl/ksiazki/glebokie-uczenie-z-tensorflow-od-regresji-liniowej-po-uczenie-przez-wzmacnianie-bharath-ramsundar-reza-bosagh-zadeh,glutef.htm}}</ref>. Systemy te posiadają zdolność do samouczenia się i nazywa się je systemami samouczącymi. Podstawowymi metodami ML są symboliczne uczenie się (nazywane także indukcyjnym, ang. ''symbolic/inductive learning'') oraz [[Sieć neuronowa|sztuczne sieci neuronowe]] (ang. ''artificial neural networks'')<ref>{{Cytuj |autor = Jerzy Stefanowski |tytuł = Wprowadzenie do maszynowego uczenia się |miejsce = Instytut Informatyki, Politechnika Poznańska |url = http://www.cs.put.poznan.pl/jstefanowski/ml/NEWML_W1lastr.pdf}}</ref>. Nazywa się tak połączone grupy węzłów, podobne do rozległej sieci neuronów w ludzkim mózgu. Głębokie sieci neuronowe (także głębokie uczenie maszynowe, ang. ''deep learning'' lub ''differential programming'') to podkategoria uczenia maszynowego – nazywa się tak metody oparte na sztucznych sieciach neuronowych z uczeniem reprezentatywnym (ang. feature learning lub representation learning). Uczenie się może być [[Uczenie nadzorowane|nadzorowane]], [[Uczenie częściowo nadzorowane|częściowo nadzorowane]] lub [[Uczenie nienadzorowane|nienadzorowane]]<ref>{{Cytuj |tytuł = Machine learning i deep learning – samouczące systemy. Leksykon 2017 {{!}} |data dostępu = 2020-03-29 |url = http://it-filolog.pl/machine-learning-i-deep-learning-samouczace-systemy-leksykon-2017/ |język = pl}}</ref>. Sztuczne życie (ang. ''artificial life, AL,'' niem''. Künstliches Leben, KL'') to kierunek badań, zorientowany na zrozumienie i wykorzystanie istoty życia. Pomysłodawcą i ojcem chrzestnym tego podejścia był amerykański matematyk i informatyk [[Christopher Langton]], który zaproponował je w 1986 roku. Dziedzina obejmuje między innymi: tworzenie różnorodnych modeli życia oraz prowadzenie symulacji w środowisku programowym, sprzętowym i biochemicznym, symulacje ewolucji biologicznej oraz innych procesów biologicznych za pomocą metod informatycznych, badania i symulacje układów niebiologicznych, zachowujących się podobnie jak układy biologiczne (np. [[Automat komórkowy|automatów komórkowych]]), [[Algorytm ewolucyjny|algorytmy ewolucyjne]] i ewolucję programów komputerowych.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Artificial neural network.svg|96px]]
| [[Plik:Kernel Machine.svg|96px]]
| [[Plik:Tensorflow logo.svg|96px]]
| [[Plik:Dnaconformations.png|96px]]
| [[Plik:Rule alignment.gif|96px]]
|-
| [[Sieć neuronowa]]
| [[Uczenie maszynowe]]
| [[TensorFlow]]
| [[Algorytmy ewolucyjne]]
| [[Inteligencja rozproszona]]
|}

==== Systemy wbudowane i obliczenia czasu rzeczywistego ====
{{Osobny artykuł|System wbudowany|System czasu rzeczywistego}}
Systemy wbudowane to systemy komputerowe specjalnego przeznaczenia, który staje się integralną częścią obsługiwanego przez niego [[Sprzęt komputerowy|sprzętu komputerowego]] (''hardware''). System wbudowany musi spełniać określone wymagania ściśle zdefiniowane pod kątem zadań, które ma wykonywać. Każdy system wbudowany oparty jest na [[mikroprocesor]]ze (lub [[mikrokontroler]]ze) zaprogramowanym do wykonywania ograniczonej liczby zadań lub nawet wyłącznie do jednego zadania. W systemach wbudowanych najpopularniejszymi [[Model programowy procesora|modelami programowymi]] procesorów są [[RISC]] oparte na zasadach [[Architektura harwardzka|architektury harvardzkiej]] lub [[ARM (architektura)|ARM]]. W systemach czasu rzeczywistego wynik i efekt działania jest zależny od chwili wypracowania tego wyniku. Systemy wbudowane współcześnie znajdują zastosowania np. do w autonomicznych pojazach, w ineternecie rzeczy czy w urządzeniach rozrywkowych.

==== Widzenie komputerowe i rozpoznawanie wzorców ====
{{Osobny artykuł|Rozpoznawanie wzorców}}
Rozpoznawanie wzorców (ang. ''pattern recognition'') to pole badawcze w obrębie uczenia maszynowego. Może być definiowane jako działanie polegające na pobieraniu surowych [[Dane|danych]] i podejmowaniu dalszych czynności zależnych od kategorii do której należą te dane. W rozpoznawaniu wzorców dąży się do klasyfikacji danych (wzorców) w oparciu o wiedzę aprioryczną lub o informacje uzyskane na drodze statystycznej analizy danych służącej wydobywaniu cech obiektów. Klasyfikowane wzorce to zazwyczaj grupy wyników pomiaru lub obserwacji definiujące położenie odpowiadających im punktów w wielowymiarowej przestrzeni cech.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Intersection over Union - object detection bounding boxes.jpg|96px]]
| [[Plik:Cosine Series Plus Noise TFM.png|96px]]
| [[Plik:OpenCV Logo with text svg version.svg|96px]]
| [[Plik:Corner.png|96px]]
| [[Plik:Cluster-2.svg|96px]]
|-
| [[Rozpoznawanie obrazów|Computer Vision]]
| [[Rozpoznawanie mowy]]
| [[OpenCV]]
| [[Przetwarzanie języka naturalnego]]
| [[Analiza skupień]]
|}

==== Przetwarzanie obrazów i mowy ====
Sygnały cyfrowe to strumienie bitów informacji, ich przetwarzanie polega na wykonaniu na nich pewnych operacji oraz ich interpretacją. Do głównych zastosowań należy przetwarzanie dźwięku, kompresja dźwięku, segmentacja obrazów, kodowanie wideo, przetwarzanie mowy, rozpoznawanie mowy oraz telekomunikacja cyfrowa.

==== Gry komputerowe i symulatory ====
{{Osobny artykuł|Gra komputerowa|Symulacja komputerowa|Programista gier komputerowych}}
Gry komputerowe to rodzaj [[Program komputerowy|oprogramowania komputerowego]] przeznaczonego do celów rozrywkowych lub edukacyjnych, wymagające od użytkownika ([[gracz]]a) rozwiązywania zadań logicznych lub zręcznościowych. Gry komputerowe mogą być uruchamiane na komputerach osobistych, [[Automat do gry|specjalnych automatach]], [[Konsola gier wideo|konsolach do gry]], [[telewizor]]ach, telefonach komórkowych oraz innych urządzeniach mobilnych. Gry, podobnie jak [[Symulacja komputerowa|symulacje komputerowe]] mają wirtualizować pewien fragment rzeczywistości. Zaawansowane gry i symulacje są pisane w czystych językach programowania, najczęściej obiektowych – jak [[Simula]] czy [[C++]] lub są oparte na silnikach jak [[Unity (silnik gry)|Unity]]. Dla mniej wymagających symulacji powstały także uniwersalne programy.

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Osmosis computer simulation.jpg|96px]]
| [[Plik:Screenshot phun.PNG|96px]]
| [[Plik:Battle for Mandicor 0.0.5.png|96px]]
| [[Plik:Raytracing reflection.png|96px]]
| [[Plik:Activemarker2.PNG|96px]]
|-
| [[Silnik graficzny|Silniki graficzne]]
| [[Komputerowa gra symulacyjna|Gra symulacyjna]]
| [[Tworzenie gry komputerowej]]
| [[Renderowanie]]
| [[Modelowanie (3D)|Modelowanie trójwymiarowe]]
|}

==== Interfejsy i interakcje człowiek-komputer ====
{{Osobny artykuł|Interakcja człowiek–komputer}}
Interakcją człowiek–komputer nazywa się wzajemne [[oddziaływanie]] między człowiekiem a komputerem zachodzące poprzez [[interfejs użytkownika]], czyli część sprzętu i oprogramowania zajmującą się obsługą urządzeń wejścia-wyjścia przeznaczonych dla interakcji z użytkownikiem. Istnieje wiele rodzajów interfejsów, są to m.in. [[wiersz poleceń]], [[interfejs tekstowy]] czy [[Graficzny interfejs użytkownika|interfejs graficzny]]. Obecnie prowadzone są intensywne badania nad [[Rzeczywistość wirtualna|wirtualną rzeczywistością]], a także [[Interfejs mózg–komputer|interfejsami mózg-komputer]].

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Linux command-line. Bash. GNOME Terminal. screenshot.png|96px]]
| [[Plik:Head-mounted display and wired gloves, Ames Research Center.jpg|96px]]
| [[Plik:Image-AR TD0.jpg|96px]]
| [[Plik:The.Matrix.glmatrix.2.png|96px]]
| [[Plik:Reactable Multitouch.jpg|96px]]
|-
| [[Wiersz poleceń]]
| [[Rzeczywistość wirtualna]]
| [[Rzeczywistość rozszerzona]]
| [[Interfejs mózg–komputer]]
| [[User experience]]
|}

==== Technologie webowe, mobilne i multimedia ====
Aplikacja internetowa (ang. web application), zwana również aplikacją webową – program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową z hostem użytkownika komputera z wykorzystaniem przeglądarki internetowej użytkownika, będącego w takim przypadku interaktywnym klientem aplikacji internetowej. Od komputerów mobilnych (np. [[smartfon]]y, [[Tablet (komputer)|tablety]]) oczekuje się, że mogą być swobodnie transportowane podczas normalnego użytkowania, oraz pozwalają na przesyłanie danych, głosu i wideo. System mobilny, także [[przetwarzanie mobilne]] (ang. ''mobile computing'') obejmuje komunikację mobilną oraz [[Urządzenie mobilne|sprzęt i oprogramowanie mobilne]]. Kwestie komunikacyjne obejmują [[Sieć ad hoc|sieci ad hoc]], infrastrukturę sieci, a także właściwości komunikacyjne, [[Protokół komunikacyjny|protokoły]], formaty danych i konkretne technologie. Typowy sprzęt mobilny zawiera często różne [[Czujnik|sensory]], np. [[Przyspieszeniomierz|akcelerometry]], które są w stanie wykrywać i odbierać sygnały. Najważniejsze mobilne systemy operacyjne to [[iOS]] oraz [[Android (system operacyjny)|Android Linux]], gdzie dominują języki [[Java]] i [[Kotlin (język programowania)|Kotlin]]<ref>{{Cytuj |autor = Łukasz Majchrzyk |tytuł = Najpopularniejsze języki programowania (styczeń 2019 r.) |data = 2019-01-10 |data dostępu = 2020-04-16 |opublikowany = mobiRANK.pl |url = https://mobirank.pl/2019/01/10/najpopularniejsze-jezyki-programowania-styczen-2019-r/}}</ref>.

=== Informatyka stosowana ===
==== Informatyka w biologii, chemii i kognitywistyce ====
* [[Bioinformatyka]] (z niem''. Bioinformatik'') – interdyscyplinarna dziedzina obejmujmująca rozwój metod obliczeniowych służących do badania struktury, funkcji i ewolucji [[gen]]ów, [[genom]]ów i [[Białka|białek]]. Ponadto odpowiada za rozwój metod wykorzystywanych do zarządzania i analizy informacji biologicznej gromadzonej w toku badań genomicznych oraz badań prowadzonych z zastosowaniem wysokoprzepustowych technik eksperymentalnych<ref>{{Cytuj |autor = prof. dr hab. inż. Jacek Błażewicz |tytuł = Bioinformatyka i jej perspektywy |data = 2011 |url = http://www2.cs.put.poznan.pl/wp-content/uploads/2011/11/wyklad_inauguracyjny_2011.pdf}}</ref>.

* [[Chemioinformatyka]] (z niem''. Chemoinformatik)'', także [[informatyka chemiczna]] to nauka zajmująca się wykorzystaniem informatyki do rozwiązywania różnorodnych problemów chemicznych jak np. teoria grafów chemicznych czy badania przestrzeni chemicznej<ref>{{Cytuj |autor = Gasteiger J.(Editor), Engel T.(Editor) |tytuł = Chemoinformatics: A Textbook |data = 2004 |isbn = 3-527-30681-1}}</ref><ref>{{Cytuj |autor = A.R. Leach, V.J. Gillet |tytuł = An Introduction to Chemoinformatics |data = |isbn = 1-4020-1347-7}}</ref>. Te techniki, nazywane często metodami ''in silico'', wykorzystywane są do przeprowadzania obliczeń w blisko związanej z nią chemii obliczeniowej oraz w chemii kwantowej i procesie projektowania leków. Nauka ta znajduje zastosowanie w wielu gałęziach przemysłu chemicznego do analizy i przetwarzania danych chemicznych.

* [[Neuroinformatyka]] (z niem. ''Neuroinformatik'') znajduje zastosowania w [[Kognitywistyka|kognitywistyce]], przy badaniu przetwarzania informacji przez systemy nerwowe w celu zastosowania ich w systemach technicznych, m.in. w tworzeniu [[Symulacja komputerowa|modeli obliczeniowych]], narzędzi analitycznych i baz danych do udostępniania, integracji i analizy danych eksperymentalnych oraz rozwoju teorii na temat funkcji układu nerwowego. W kontekście INCF neuroinformatyka odnosi się do informacji naukowych na temat podstawowych danych eksperymentalnych, ontologii, metadanych, narzędzi analitycznych i modeli obliczeniowych układu nerwowego. [[Informatyka kognitywna]] także odnosi się do zastosowań w kognitywistyce<ref>{{Cytuj |autor = |tytuł = Wydawnictwo AGH – Podstawy informatyki kognitywnej |data = |data dostępu = 2020-08-22 |opublikowany = www.wydawnictwoagh.pl |url = https://www.wydawnictwoagh.pl/PODSTAWY-INFORMATYKI-KOGNITYWNEJ;s,karta,id,672}}</ref>. Jednym z najbardziej znanych specjalistów kognitywstyki w Polsce jest [[Włodzisław Duch]]. Kolejnym powiązanym obszarem jest [[informatyka afektywna]].

{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|-
| [[Plik:Genome viewer screenshot small.png|96px]]
| [[Plik:Evolution fate duplicate genes - vector.svg|96px]]
| [[Plik:TE-Nervous system diagram.svg|96px]]
| [[Plik:The protein interaction network of Treponema pallidum.png|96px]]
| [[Plik:Svm separating hyperplanes.png|96px]]
|-
| [[Bioinformatyka]]
| {{Link-interwiki|pl=Genoinformatyka|lang=en|tam=Genome informatics|tekst=Genoinformatyka}}
| [[Neuroinformatyka]]
| [[Chemioinformatyka]]
| [[Informatyka afektywna]]
|}

==== Dalsze zastosowania ====
* [[Socjoinformatyka]], także [[informatyka społeczna]] odnosi się do szeroko rozumianego związku pomiędzy [[Technika informatyczna|technologiami informatycznymi]] i [[Społeczeństwo|światem społecznym]]. Obejmuje między innymi [[web mining]], [[reality mining]], [[Symulacja społeczeństw|symulacje społeczeństw]] i [[Bot społeczny (program)|boty społeczne]]. Przedmiotem zainteresowania badaczy jest także z jednej strony wpływ informatycznych technologii komunikacyjnych na zmiany społeczne i psychologiczne wśród osób, które z nich korzystają. Z drugiej strony badany jest wpływ zjawisk społecznych na [[System informatyczny|systemy informatyczne]], między innymi [[Komunikator internetowy|komunikatory]], [[Serwis społecznościowy|serwisy społecznościowe]].

* [[Geoinformatyka]] – zajmuje się numerycznym przetwarzaniem i analizowaniem [[Informacja geograficzna|informacji geograficznej]] ([[Geoinformacja|geoinformacji]]). Geoinformatyka jest opisywana jako nauka i technika zajmująca się strukturą i charakterem informacji geograficznych, jej przechwytywaniem, klasyfikacją, przetwarzaniem, przedstawieniem i wizualizacją<ref>{{Cytuj |autor = P.L.N. Raju |tytuł = Fundamentals of Geographic Information Systems}}</ref>. Do zastosowań geoinformatyki zalicza się [[Kartografia|kartografię]], [[Geodezja|geodezję]], [[Global Positioning System|GPS]], [[Fotogrametria|fotogrametrię]], [[Teledetekcja|teledetekcję]], [[Analiza danych przestrzennych|analizę danych przestrzennych]], [[mapowanie webowe]] i [[Nawigacja|nawigację]].

* [[Informatyka śledcza]] – dostarcza cyfrowych środków dowodowych dotyczących przestępstw popełnionych cyfrowo lub przy użyciu systemów teleinformatycznych. Jej zadaniami są: zbieranie, [[Odzyskiwanie danych|odzyskiwanie]], analiza i prezentacja cyfrowych danych, znajdujących się na różnego rodzaju nośnikach ([[Dysk twardy|dyski twarde]] [[komputer]]ów, [[Dyskietka|dyskietki]], [[Płyta kompaktowa|płyty CD]], [[Pamięć komputerowa|pamięci]] przenośne, [[serwer]]y, [[Telefon komórkowy|telefony komórkowe]] itp.), oraz w coraz popularniejszych ostatnio systemach i serwisach zdalnego gromadzenia, przechowywania i przetwarzania danych, takich jak [[Serwis społecznościowy|serwisy społecznościowe]], [[Chmura obliczeniowa|przestrzeń dyskowa w chmurze]] czy [[Wyszukiwarka internetowa|wyszukiwarki internetowe]].

* [[Informatyka mechaniczna]], także mechainformatyka (z niem. ''Maschinenbauinformatik'') – zastosowania informatyki w mechanice. Zajmuje się m.in. informatycznymi aspektami druku 3D, programowania CNC, mechaniki komputerowej, oraz oprogramowaniem do projektownia CAD.

* [[Informatyka medyczna]] – zajmujuje się zbieraniem, przetwarzaniem, przechowywaniem, udostępnianiem i przesyłaniem danych medycznych oraz metodami tworzenia urządzeń i systemów informatycznych wykorzystywanych w [[Medycyna|medycynie]]. Informatyka medyczna znajduje zastosowania między innymi w systemach wspomagania diagnostyki (np. ''IBM Watson for Oncology'')<ref>{{Cytuj |tytuł = IBM Watson for Oncology |data dostępu = 2020-04-18 |url = https://www.ibm.com/products/clinical-decision-support-oncology}}</ref>, oprogramowaniu robotów medycznych, systemach rejestracji, przetwarzania i analizy sygnałów i obrazów medycznych oraz systemach teleinformatycznych dla telemedycyny<ref>{{Cytuj |tytuł = Informatyka medyczna to przyszłość – WSIiZ wykształci potrzebnych specjalistów! |data dostępu = 2020-04-19 |opublikowany = WSIiZ w Rzeszowie |url = https://wsiz.rzeszow.pl/aktualnosci/informatyka-medyczna-to-przyszlosc-wsiiz-wyksztalci-potrzebnych-specjalistow/}}</ref>.
* [[Informatyka materiałowa]] – zastosowania informatyki w materiałoznawstawie i inżynierii materiałowej.

* [[Informatyka przemysłowa]] – zastosowania informatyki w przemyśle.

* [[Informatyka ekonomiczna]] (czasem określana również jako informatyka gospodarcza lub informatyka zarządcza) – jej przedmiotem zainteresowania są systemy informatyczne w [[organizacja]]ch (szczególnie w [[Przedsiębiorstwo|przedsiębiorstwach]]).

== Edukacja ==
=== Szkoła podstawowa, liceum i technikum ===
W ramach I etapu edukacji (klasy I-III) uczniowie mają zajęcia z ''edukacji informatycznej'' w ramach edukacji wczesnoszkolnej. Klasy IV-VIII (II etap edukacyjny) realizują przedmiot ''informatyka''<ref>{{Cytuj |tytuł = Edukcja informatyki w szkole podstawowej – Portal Oświatowy |data dostępu = 2020-04-03 |opublikowany = www.portaloswiatowy.pl |url = https://www.portaloswiatowy.pl/organizacja-zajec-szkolnych/nazewnictwo-zajec-informatycznych-w-poszczegolnych-klasach-szkoly-podstawowej-15887.html}}</ref>. Najważniejszym celem kształcenia informatycznego uczniów jest rozwój umiejętności myślenia obliczeniowego (z ang. ''computational thinking''), skupionego na kreatywnym rozwiązywaniu problemów z różnych dziedzin ze świadomym i bezpiecznym wykorzystaniem przy tym metod i narzędzi wywodzących się z informatyki<ref name=":1">{{Cytuj |tytuł = Podstawa programowa – Informatyka – Liceum/technikum |data dostępu = 2020-04-19 |opublikowany = podstawaprogramowa.pl |url = https://podstawaprogramowa.pl/Liceum-technikum/Informatyka}}</ref>. Takie podejście, rozpoczęte w szkole podstawowej, jest kontynuowane w liceum ogólnokształcącym i technikum zarówno w zakresie podstawowym, jak i rozszerzonym. Przedmiot informatyka jest realizowany przez wszystkich uczniów w każdej klasie, począwszy od klasy I szkoły podstawowej i jest kontynuowany w liceum ogólnokształcącym i technikum<ref name=":1" />.

=== Studia wyższe ===
Informatyka jest wykładana na [[uniwersytet]]ach oraz na [[politechnika]]ch. Na politechnikach programy studiów są nastawione na zagadnienia inżynierskie, a na uniwersytetach na zagadnienia naukowe. Istnieją także programy studiów nastawione na praktyczne zastosowania. Z uwagi na ograniczoną liczbę miejsc oraz fakt że informatyka jest chętnie wybieranym kierunkiem studiów, obowiązują na nią stosunkowo wysokie progi punktowe. W roku akademickim 2018/2019 zgłosiło się 42759 chętnych<ref>{{Cytuj |autor = Wojciech Martyński |tytuł = Kierunki studiów 2020 (Najlepsze i najbardziej przyszłościowe) |data = 2015-08-11 |data dostępu = 2020-04-03 |opublikowany = InterviewMe |url = https://interviewme.pl/blog/kierunki-studiow}}</ref>. W najlepszych uczelniach w kraju w pierwszej kolejności są przyjmowani finaliści [[Olimpiada informatyczna|Olimpiady Informatycznej]]. Spośród najlepszych jest wyłaniana reprezentacja Polski na różne międzynarodowe konkursy informatyczne np. [[Akademickie mistrzostwa świata w programowaniu zespołowym]]<ref>{{Cytuj |autor = Stefan Jackowski |tytuł = Jak zmieniał się Wydział Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego w latach 1991–2016}}</ref>.

== Zobacz też ==
* [[informatyk]]
* [[informatyka stosowana]]

{{Siostrzane projekty
|commons = Category:Computing
|słownik = informatyka
|źródła = Kategoria:Informatyka
|cytaty = Informatyka
|news = Portal:Informatyka
|books = Kategoria:Informatyka
|species =
}}

== Przypisy ==
{{Przypisy}}


{{Nauki przyrodnicze i ścisłe}}
{{Nauki przyrodnicze i ścisłe}}

Wersja z 14:05, 9 lis 2022