Számítástudomány
A számítástudomány (computing science) és a számítógép-tudomány (computer science) egymáshoz nagyon közeli, egymást majdnem teljesen átfedő és szorosan összefüggő területeket ölel fel, ezért tárgyalásuk csak együttesen értelmezhető. Mindkét tudományág lényege, hogy az információkezelést és -feldolgozást állítja vizsgálata fókuszába elméleti és gyakorlati megközelítésben. Kialakulása az 1940-es években kezdődött, nemcsak időben egybeesve, de szoros kapcsolatban is az első elektronikus számítógépek tervezésével.
A számítástudomány nem azonos sem az informatikával, sem a számítástechnikával (főleg ha a szilíciumcsipek gyártásának technikáját is ideértjük), sem pedig az információelmélettel, bár vannak kisebb-nagyobb átfedések. A számítástudománynak nem feladata konkrét szoftverek fejlesztése, bár foglalkozik azzal, miképp lehet a szoftverek hatékony tervezését segíteni, és ennek milyen elméleti alapjai vannak. Nem feladata konkrét információfeldolgozó gépek tervezése, bár szintén foglalkozik azzal, hogyan lehet ezek hatékonyságát elméleti szinten növelni; végképp nem feladata pedig ezek megépítése, bár a tudományág úttörői, mint Alan Turing vagy Neumann János, munkatársként részt vettek a számítógépek korai modelljeinek építésében, kialakításában is (elméleti munkásságukkal szoros kapcsolatban).
Vizsgálati területei
szerkesztésSzámítástudomány
szerkesztésA számítástudomány[1][2] a matematika egyik, igen fiatal tudományága, amely az információfeldolgozó gépek (például számítógépek) tervezésének és működtetésének elméleti, matematikai alapjaival foglalkozik.[3] Némileg elnagyoltan az algoritmusok általános elméletének is nevezhető.[4]
„A számítógépek megjelenése, a mechanikus számítási eljárások megindították az algoritmus definíciójának és a programok írásmódjának formalizálását, az algoritmusok és programok szintaktikai (utasítások, vezérlési struktúra), szemantikai (helyesség, ekvivalencia), valamint kiszámíthatósági (a bemeneti értékekhez tartozó kiszámítási idő és memóriaszükséglet) tulajdonságainak mélyreható vizsgálatát. E kutatási területeket összefoglalóan matematikai számítástudománynak nevezzük.”[5][6]
Az információkezelés és -feldolgozás matematikai alapjai köré csoportosul, és a számítások alapvető természetének megértésére irányul, mely számos alkalmazáshoz vezet a hatékony algoritmusok elemzésében és tervezésében, valamint a megbízható hardver- és szoftverrendszerek tervezésére és ellenőrzésére szolgáló formális módszerek fejlesztésében.
Elméleti alapjai:
- az automataelmélet,
- a fordítóprogramok,
- az adatbázis-elmélet.
Gyakorlati területei:
- a számítógépes irányítás és szabályozás,
- a nagy rendszerek analízise és szintézise,
- a mérnöki tervezés.
Ezek alapjait a halmazok, ítéletek, relációk, függvények, a számelmélet, a különböző algebrai struktúrák, azon belül főként a Boole-algebra adja. Fontos része a kódelmélet, azon belül a zajmentes és zajos csatornák, az optimális és hibajavító kódolás alapelemei, az automaták és formális nyelvek elmélete, a párhuzamos és elosztott számítási rendszerek elmélete, valamint az algebra, a logika és a kategóriák a számítástudományban. Komplex vizsgálati területe a kiszámíthatóságelmélet, valamint annak kiterjesztése, a bonyolultságelmélet, mely azt vizsgálja, miképp lehet osztályozni az algoritmikusan megoldható problémákat, feladatokat a megoldásukhoz szükséges erőforrások mennyisége szerint.
A számítógép-tudománnyal átfedésben levő átmeneti elemei:
- az adatstruktúrák,
- az algoritmusok,
- a programozási nyelvek,
- a szoftvertechnológia,
- a mesterséges intelligencia,
- az adatbázis-kezelés.
Számítógép-tudomány
szerkesztésA számítógép-tudomány[7][8][9] tárgya maga a számítógép mint eszköz; az információfeldolgozó gépek tervezésének és használatának elméleti kérdéseit kutatja. A matematika egyik igen fiatal tudományága, amely az információfeldolgozó gépek (például számítógépek) tervezésének és működtetésének elméleti, matematikai alapjaival foglalkozik. Némileg elnagyoltan az algoritmusok általános elméletének is nevezhető.[10] Eredményei és tárgya közé tartoznak a számításokat végző rendszerek és módszerek megértésével, tervezési módszerekkel, algoritmusokkal és eszközökkel, a fogalmak tesztelésének, valamint az analízisnek és verifikációnak módszereivel, a tudásreprezentációval és ennek implementációjával foglalkozó elméletek. Komplex vizsgálati területei a véges automaták, valamint a veremautomaták, mint a Turing-gép speciális esetei.
Fő elemei: az algoritmusok és adatszerkezetek, a programozási módszertan és nyelvek, valamint a számítógépes elemek és architektúrák.
Története és alágai
szerkesztésA számítógép-tudomány a matematika egyik legkésőbb, mintegy fél évszázada önállósult ága. Keletkezését 1936-tól, Alan Turing angol matematikus automata- és algoritmuselméleti cikkeinek megjelenésétől, illetve Neumann János, Stephen Cole Kleene, Andrej Markov, George H. Mealy, Edward Forrest Moore, Emil Post, Kurt Gödel, John McCarthy és más kutatók hasonló jellegű munkáinak napvilágra kerülésétől kezdve számíthatjuk.
A számítógép-tudomány fejlődése rendkívül gyors, a legtöbb alágnak azonban már van kialakult és közmegegyezéses jellegű elnevezése és feladatköre. Néhány alága, elméletcsoportja:[11]
- kiszámíthatóságelmélet, rekurzióelmélet: az algoritmusok futásának befejeződését, eredményes lefutásának lehetőségét és viszonyait vizsgálja,[12] más szavakkal: egyes függvényeknek, műveleteknek más függvényekkel való kiszámíthatóságával foglalkozik, tekinthető a számításelmélet egy olyan ágának vagy testvérterületének is, mely Turing-gépek és automaták helyett hagyományos matematikai fogalmakra (függvény, generált struktúra stb.) alapoz. E terület úttörője Stephen Cole Kleene volt (érdekesség, hogy a matematikai logika részének is tekinthető).[13]
- A bonyolultságelmélet a kiszámíthatóságelmélet kiterjesztése. Azt vizsgálja, hogyan lehet osztályozni az algoritmikusan megoldható problémákat, feladatokat a megoldásukhoz szükséges erőforrások mennyisége szerint.[14]
- automataelmélet,[8] számításelmélet, bonyolultságelmélet vagy komplexitáselmélet: formális nyelvek, formális nyelvtanok és automaták elmélete: ide sorolhatóak a generatív nyelvtanok, általánosabban a produkciós rendszerek, az automatatípusok által generált és elfogadott nyelvek vizsgálata, az egyes automatatípusok összehasonlítása. Ennek az alágnak rengeteg fontos kutatója volt mind nyugaton, mind a Szovjetunióban, ill. Oroszországban. Fontos terület a Turing-gépek és hasonló automaták elmélete, mégpedig az ezek által futtatott algoritmusok idő-és memóriaigényének vizsgálata. Központi problémája a hatékonysági vagy bonyolultsági osztályok (P, NP stb.) közti kapcsolatok megállapítása, illetve az indeterminisztikus algoritmusok vizsgálata és alkalmazása;
- absztrakt adatszerkezetek elmélete:[6] ide tartozik a gráfelméleti algoritmusok vizsgálata (keresési problémák és például a matroidok alkalmazása az ilyesfajta problémákra), az informatika bizonyos alapfogalmainak (adatszerkezetek) matematikai leírása;
- formális szemantika: ez a fordítóprogramok különböző formális nyelvtanokkal való leírásának matematikai elméletéből nőtte ki magát; fontos szerepet játszanak benne az attribútumnyelvtanok és rekurzív nyelvtanok elmélete (például), vagy például a logikai programozás elméleti leírása;
- logikai tervezés és optimalizálás:[8] ez a hagyományosan mérnöki tudomány a számítógép-tudomány absztrakt modelljeinek tanulmányozásával egy időben alakult ki, nagyrészt tőlük függetlenül, logikai áramköröket ugyanis nemcsak számítógépekben, hanem egyszerűbb automatákban is használnak. Az áramkörök tervezésével és optimalizálásával foglalkozik, logikainak azért nevezik, mert az áramkörmodelleket ún. logikai kapukból építi fel: egy logikai kapu olyan elektronikus szerkezet, amely a bemenő digitális (a gyakorlatban szinte mindig elektronikus) jelek valamilyen logikai függvényét képes előállítani. Optimális egy áramkör (általában), ha a kapuk számát sikerül minimalizálni.
- mesterségesintelligencia-kutatás[8] (pontosabban ennek matematikai alapjai): az az algoritmusok hatékonyságát azok önállóságának, önműködésének szempontjából vizsgálja; ez az elmélet a számítógép-tudomány, az informatika és a kognitív tudomány érdekes határterületeiből nőtt össze és ki;
Számos terület (pl. a párhuzamos algoritmusok elmélete, az axiomatikus bonyolultságelmélet stb.) azonban még mindig inkább csak születőfélben lévő elmélet, mintsem önálló névvel rendelkező tudományág formájában létezik, és nehezebben sorolható a fenti alágak közé.
Kapcsolódó szócikkek
szerkesztésJegyzetek
szerkesztés- ↑ Katona Gyula – Recski András – Szabó Csaba: A számítástudomány alapjai. Typotex Kft., 2002.; ISBN 978-963-9664-19-7; ISBN 963-9664-19-7.
- ↑ A BME számítástudományi és információelméleti tanszékének honlapja. Hiv. beill.: 2011. 12. 19.
- ↑ Computer science Archiválva 2010. május 27-i dátummal a Wayback Machine-ben - Szótári bejegyzés az amerikai NITRD (A Hálózati és Információs Technológia Nemzeti Együttműködést Irányító Hivatala - National Coordination Office for Networking and Information Technology) honlapján.
- ↑ Dayton Codebreakers.com[halott link]
- ↑ Giorgio Ausiello: Algoritmusok és rekurzív függvények bonyolultságelmélete. Műszaki Könyvkiadó, Bp., 1984. ISBN 963-10-5159-5. 14. o.
- ↑ a b U. S. National Research Council Committee on the Fundamentals of Computer Science : Computer Science. Google elektronikus könyv (PDF), (erősen) korlátozott előnézet. Hiv. beill. 2010. július 12.; 11.-13. o.Hiv. beillesztése: 2011. 12. 19.
- ↑ A kombinatorika és a séta mestere (beszélgetés Szemerédi Endre matematikussal). Magyar Tudomány; 2008./06.; hiv. beill. 2010. augusztus 1. Vö.: „Az elméleti számítástechnika művelése ugyanis sokszor nagyon nehéz, bonyolult matematikai eszközöket és gondolatokat igényel: szóval, az elméleti számítástechnika szerintem a matematika egyik ága! Egyébként Magyarországon folyt vita arról, miképp nevezzék a gyereket, elméleti számítástechnika, számítógép-tudomány és ki tudja, mi még – egyik sem tűnik túl szerencsésnek. Talán az elméleti számítástechnika a legjobb magyar fordítás…”
- ↑ a b c d Ralston, Anthony: Programozás és számítógép-tudomány. Műszaki Könyvkiadó, Bp., 1974. ISBN 963-10-0616-6.
- ↑ Az ELTE számítógép-tudományi tanszékének honlapja Archiválva 2010. május 15-i dátummal a Wayback Machine-ben. Hiv. beill.: 2011. 12. 19.
- ↑ Tudomány és még sok minden. mindenkilapja.hu. [2016. augusztus 15-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. január 13.)
- ↑ Tasnádi Attila: Számítástudomány gazdaságinformatikusoknak | bookline. [2008. november 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. július 12.)
- ↑ Algoritmizálás alapjai. tankonyvtar.hu, 2011. (Hozzáférés: 2016. január 13.)
- ↑ (ld. angolul). [2004. április 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2004. október 3.)
- ↑ Ésik, Zoltán. A számítástudomány alapjai. TypotexKiadó, 5. o. (2011). Hozzáférés ideje: 2016. január 13.
További információk
szerkesztés- Alice és Bob – 6. rész: Alice és Bob a kiszámíthatóság határán
- Alice és Bob – 7. rész: Alice és Bob egymillió dolláros kérdése
- Alice és Bob – 8. rész: Alice és Bob biztonsága
- Ralston, Anthony: Programozás és számítógép-tudomány. Műszaki Könyvkiadó, Bp., 1974. ISBN 963-10-0616-6. (er. mű: Introduction to Programming and Computer Science, McGraw-Hill Inc.; ford. Dr. Szabados József).