కంప్యూటరు శాస్త్రం

144px|alt=Expression for Church numerals in lambda calculus|Programming language theory|link=Programming language theory 144px|alt=Plot of a quicksort algorithm|Computational complexity theory|link=Computational complexity theory 144px|alt=Example of Computer animation produced using Motion capture|Artificial intelligence|link=Artificial intelligence 144px|alt=Half-adder circuit|Computer architecture|link=Computer architecture
కంప్యూటరు శాస్త్రం సమాచార గణన, సైద్ధాంతిక పరిశోధన ఇంకా నిర్వహణ లాంటి విస్తృతమైన విభాగాలలో ఉపయోగంలో ఉంది 
కంప్యూటర్ శాస్త్రం అనగా సమాచారం గురించి, గణన గురించిన సైద్ధాంతిక పరిశోధన, దానిని కంప్యూటర్లలో అమలు పరచడం, నిర్వహణ."Computer science is the study of information"

Department of Computer and   Information Science , Guttenberg Information Technologies"Computer science is the

study of computation." Computer Science   Department, College of Saint Benedict , Saint John's University"Computer Science is

the study of all aspects of computer systems, from the theoretical foundations to the very

practical aspects of managing large software projects."  major_code=2010&prog_code=93068 Massey University  కంప్యూటర్ శాస్త్రంలో ఎన్నో విధాలయినటువంటి ఉప విభాగాలున్నాయి. వాటిలో కొన్ని ప్రత్యేకమైన ఫలితాలపై చొరవ చూపిస్తే (ఉదా: కంప్యూటర్ గ్రాఫిక్సు), మరికొన్ని సంక్లిష్టమైన గణిత సంబంధిత ఫలితాలకోసం అణ్వేషిస్తాయి. ఇంకా కొన్ని గణితాన్ని అమలు చేయడంలో గల సవాళ్ళపై దృష్టి సారిస్తాయి. ఉదాహరణకి ప్రోగ్రామింగ్ భాషాసిద్ధాంతం గణనపరమైన విషయాల గురించి విశదీకరిస్తే, కంప్యూటర్ భాషీకణం(computer programming) ఒక ప్రత్యేకమైన ప్రోగ్రామింగ్ భాషతో నిర్దిష్టమైన గణన సంబంధిత సమస్యలను పరిష్కరిస్తుంది.

 చరిత్ర
 thumb | right| చార్లెస్ బాబ్బేజ్ఆధునిక బీజ కంప్యూటర్ కనిపెట్టక ముందే చాలా తతంగం జరిగింది. గణన కోసం అబాకస్ లాంటి వాటిని ఉపయోగించేవారు. విల్హెల్మ్ షికార్డ్ 1963 లో మొదటి క్యాలిక్యులేటర్ ను నిర్మించాడు. తర్వాత చార్లెస్ బాబేజ్ విక్టోరియా రాణి కాలంలో డిఫరెన్సు ఇంజన్ను  నిర్మించాడు. దాదాపు 1900వ సంవత్సరంలో ఐ.బి.యం కంపనీ వారు పంచ్ కార్డ్ మెషీన్లను  తయారుచేసి అమ్మేవారు. అయినప్పటికీ ఈ యంత్రాలన్నీ ఒకేసారి ఒకటికన్నా ఎక్కువ పనులు చేసేవి కావు. 1920 కన్నా ముందు కంప్యూటర్ అనే పదం గణించే ఉద్యోగినుద్దేషించి వాడబడేది. మొదటి తరం కంప్యూటర్ శాస్త్రపరిశోధకులైన కర్ట్ గోడెల్, అలోంజో చర్చ్, అలన్ ట్యూరింగ్ ఒక గుమాస్తా ఎలా పనిచేస్తాడో గమనించారు. ఒక గుమాస్తా సృజనాత్మకత ఏదీ లేకుండా గంటలకు గంటలు ఇవ్వబడిన సూచనల ప్రకారం పని చేయడం వారిని ఆకర్షించింది. ఈ విధమైన పనులకు స్వయంచాలిత యంత్రాలను ఉపయోగించినట్టైతే మానవ తప్పిదాలను నివారించవచ్చనే ఆలోచన వచ్చింది. ఈ పరిశీలన వారిని గణన యంత్రాలను నిర్మించేందుకు పురికొల్పింది. వారియొక్క సూక్ష్మబుద్ధి సకల విధాలైన గణిత సంబధిత పనులను చేసేటటువంటి యంత్రాలను తయారు చేయవచ్చనే యూనివర్సల్ కంప్యూటర్ సిద్ధాంతానికి రూపకల్పన చేసింది. యూనివర్సల్ కంప్యూటర్ సిద్ధాంతమే ఆధునిక కంప్యూటర్ శాస్త్రానికి పునాది వేసింది. 1940 ల తర్వాత మరింత శక్తివంతమైన గణన యంత్రాలను తయారు చేయడం మొదలు పెట్టారు. క్రమేణా కంప్యూటర్ అనే పదం మనుషులను కాక యంత్రాలను సూచించే పదంగా పరివర్తన చెందింది. కంప్యూటర్లు కేవలం గణిత సంబంధితమైన పనులకే పరిమితంకావని తెలుసుకున్న తరువాత కంప్యూటర్ శాస్త్రం దినదినాభివృద్ధి చెందడం మొదలు పెట్టింది. 1960 లో కంప్యూటర్ శాస్త్రం విశ్వ విద్యాలయాలలో ఒక అధ్యయన విభాగంగా రూపు దిద్దుకొని పట్టభద్రులను తయారు చేయడం మొదలైంది. కంప్యూటర్ల లభ్యత బాగా పెరగడంతో వివిధ రకాలైన కంప్యూటర్ అప్లికేషన్లకు ప్రత్యేకమైన బోధనా తరగతులు ప్రారంభించ బడ్డాయి.

 ముఖ్యమైన మైలురాళ్ళు 
తులనాత్మకంగా కంప్యూటర్ శాస్త్రం తక్కువ చరిత్ర కలిగినదే అయినప్పటికీ, సమాజంలో కొన్ని సమూలమైన మార్పులకు కారణభూతమైంది. అవి:

 కంప్యూటేషన్, కంప్యూటబులిటీ లకు సంపూర్తి నిర్వచనాన్నిచ్చింది అలాగే గణనాత్మక అసంభవ, అసాధ్యమైనప్రశ్నలను నిర్వచించింది.
 ప్రోగ్రామింగ్ పరిభాషఅనే ఒక క్రొత్త భావనను, ఒక విస్పష్టమైనటువంటి భావ వ్యక్తీకరణ విధానాన్ని, అంచెలతో కూడినటువంటి సమరూప్యతా భావాలను(abstraction)  ఆవిష్కరించింది.

 ప్రోగ్రామింగు భాషల మధ్య తర్జుమాకై కంపైలింగుకి సంబంధించిన సైద్ధాంతిక, వ్యావహారిక విధానాలకు రూపకల్పన జరిగింది.
 సాధించిన వాటిలో కొన్ని: పి.సి., ఇంటర్నెట్, సెర్చి ఇంజన్లు, శాస్త్రీయ కంప్యూటింగ్.

 ఇతర శాస్త్రాలతో సంబంధము 

పేరును చూసి కంప్యూటర్ శాస్త్రం అంటే కంప్యూటర్ గూర్చి పరిశోధన అనుకుంటే పప్పులో కాలేసినట్టే. నిజానికి, ప్రముఖ కంప్యూటర్ శాస్త్రవేత్త ఎజర్ దిక్స్త్రాల్ చెప్పిన విధంగా, "సౌర శాస్త్రం దూర దర్శిని గూర్చి ఎంత పరిశోధిస్తుందో కంప్యూటర్ శాస్త్రం కంప్యూటర్ గూర్చి అంతే పరిశోధిస్తుంది". కంప్యూటర్ తయారీ, అనుసంధాన పరమైన విషయాలు సాధారణంగా కంప్యూటర్ శాస్త్రానికి చెందని విభాగాలు చూసుకుంటాయి. ఉదాహరణకి కంప్యూటర్ హార్డువేర్ కంప్యూటర్ ఇంజనేరింగ్కి సంబంధించితే, వ్యాపారత్మకమైన కంప్యూటర్ నిర్వహణ ఇన్ఫర్మేషన్ టెక్నాలజీ కిందికి వస్తుంది. అసలు కంప్యూటర్ శాస్త్రమే శాస్త్రీయమైనది కాదని కుడా విమర్శలున్నాయి. స్టాన్ కెల్లీ బూటిల్Computer Language, Oct 1990 మాటల ప్రకారం "కుళాయి రిపేరుకి హైడ్రో డైనమిక్సు ఎంత అవసరమో కంప్యూటర్ కి సైన్సు కూడా అంతే అవసరం." ఎవరేమన్నప్పటికీ, కంప్యూటర్ ఆధారిత విభాగాలకు చెందిన ఎన్నో భావనలతో కంప్యూటర్ శాస్త్రం సంకరం చెందిదన్న విషయం మాత్రం నిజం. కంప్యూటర్ శాస్త్ర పరిశోధన అక్కడితో ఆగిపోక, ఎన్నో ఇతర విభాగాలకు ద్వారాలు తెరిచింది. ఉదా: ఆర్టిఫీషియల్ ఇంటెలిజెన్సు, cognitive science, భౌతిక శాస్త్రం(క్వాంటం కంప్యూటింగ్), భాషా శాస్త్రం.

మరికొందరి దృష్టిలో కంప్యూటర్ శాస్త్రం గణిత శాస్త్రంతో ఎక్కువగా పెనవేసుకోబడింది. ఆది దశలో కంప్యూటర్ శాస్త్రంపై కర్ట్ గోడెల్ మొదలైన గణిత శాస్త్ర వేత్తల ప్రభావం పడ్డ కారణంగా ఈ రెండు విభాగాల భావజాలం తార్కిక గణితం, category theory, domain theory,, బీజ గణితం వంటి విషయాలలో ఇచ్చి పుచ్చుకోవడం జరుగుతుంది. కంప్యూటర్ శాస్త్రం, సాఫ్టువేరు ఇంజనీరింగుల మధ్య సంబంధం మొదటినుండి వివాదాస్పదమే అయినా, సాఫ్టువేర్ ఇంజనీరింగ్ అంటే ఏమిటి అనే చర్చ అలాగే కంప్యూటర్ సైన్సు యొక్క నిర్వచనం దాన్ని మరింత జటిలం చేసింది. సాఫ్టువేర్ ఇంజనీరింగ్ కంప్యూటర్ సైన్సు యొక్క ఉప విభాగమని కొంతమంది నమ్మకం. ఇంజనీరింగ్, సైన్సుల మధ్య ఉన్న సంబంధాన్ని పసిగట్టిన వారికి మాత్రం కంప్యూటర్ సైన్సు గణన పద్ధతులపై అధ్యయనం చేస్తే, కంప్యూటర్ ఇంజనీరింగ్ ఈ పద్ధతులను వివిధ విభాగాలకు ఎలా అనువర్తింపజేయాలనే విషయంపై దృష్టి సారించాలని అర్థం అవుతుంది. ఈ భావాన్ని డేవిడ్ పార్నస్ మరికొందరితో కలిసి వ్యప్తిలోకి తీసుకుని వచ్చారు., p. 19: "Rather than treat software engineering as a subfield of
computer science, I treat it as an element of the set, {Civil Engineering, Mechanical

Engineering,
Chemical Engineering, Electrical Engineering,....}." మరికొందరైతే సాఫ్టువేరు అసలు ఇంజనీరింగే కాదని అంటారు.

 కంప్యూటరు శాస్త్ర ఉప విభాగాలు 

కంప్యూటర్ శాస్త్రం గణన వ్యవస్థల గురించిన సిద్ధాంతాలను, వాటి నిరూపణలకై శోధిస్తుంది. అంకితమైన విభాగం యొక్క విధానాలను గూర్చి పరిశోధించి, సార్వ జనీనమైన ప్రమాణాలను ఆవిష్కరిసస్తుంది కాబట్టి దీన్ని ఒక శాస్త్రంగా భావించవచ్చు. అన్ని శాస్త్రాల వలెనే, ఈ సిద్ధాంతాలను ఉపయోగించి ఉపయుక్తమైన ఇంజనీరింగ్ అప్లికేషన్లను తయారు చేయుటకు, తద్వారా మరిన్ని క్రొత్త ఆవిష్కరణలకు పునాదులు వేయడానికి ఉపయోగించవచ్చు.

 గణిత పునాది 

 తార్కిక గణితము
 బూలియన్ తర్కము , ఇతర విధములైన తార్కిక ప్రశ్నలు; సాంప్రదాయిక నిరూపణల యొక్క పరిమితులు.
 సంఖ్యా శాస్త్రము
 సంఖ్యా విషయిక నిరూపణ సిద్దాంతాలు , నిరూపణలకొరకై పరిష్కార మార్గాలు. ఇవి క్రిప్టాలజీ , కృత్రిమ మేధస్సు పరీక్షించడంలో ఉపయోగ పడతాయి.
 గ్రాఫ్ సిద్ధాంతము
 విషయ పట్టికలు (data structures ) , అన్వేషణ algorithms  ల యొక్క పునాదులు.
 Type Theory
 డేటా టైపుల యొక్క విశ్లేషణ , ప్రోగ్రాం పటిష్టతలో వీటియొక్క ప్రాముఖ్యత పై అధ్యయనం.

 ప్రోగ్రామింగు భాషలు , కంపైలర్లు 

 కంపైలర్లు
 ఇవి గణిత తర్కాన్ననుసరించి కంప్యూటర్ ప్రోగ్రాంలను హైయర్ లెవెల్ భాష నుండి లోవర్ లెవెల్ భాషలోకి అనువదిస్తాయి
 ప్రోగ్రామింగ్ భాషలు
ప్రశ్నానువాదాలకు (algorithms) ఉపకరించే విధములైన పదజాలం , వ్యాకరణం.
ఉదాహరణకి సి,సి ++ ,జావా భాషలు చాల ప్రముఖమైనవి .

 కాంకరెంట్, పారలల్, , విభజనా విధానాలు 

 కాంకరెన్సీ
 ఎక్కువ మంది ఏక కాలంలో కంప్యూటరు ఉపయోగించడం; ఆ విధమైన బహుకార్య నిర్వహణ (multitasking) లేదా బహుశాఖ (multithreaded) విస్తరణ లో విశయ (data) భద్రత గూర్చిన జగ్రత్తలు.
 విభజనా కంప్యూటింగ్
 ఒక సమస్యను సాదించ డానికి ఒకే నెట్ వర్క్ లో ఉండే ఒకటి కంటె ఎక్కువ కంప్యూటర్ లను వాడడం.
 పారలల్ కంప్యూటింగ్
 ఏక కాలం లొ ఒకటి కంటె ఎక్కువ శాఖ(Thread)లను ఉపయోగించి గణించడము.

 కృత్రిమ మేథస్సు 

 కృత్రిమ మేధస్సు
 స్వీయ ఆలోచనాశక్తి కలిగిన సంవిధానాలయొక్క రూపకల్పన.

 రొబోటిక్సు
 రొబోట్లను నిర్దేశించుటకు కావలసిన అల్గోరిధంలు.

సున్నిత గణింపు (సాఫ్ట్ కంప్యూటింగు) 

ప్రత్యేకమైన సమస్యలను సాధించడానికి వాడే పద్ధతులకు ఈ వాక్యాన్ని వాడతారు. మరిన్ని వివరాలకు ప్రధాన వ్యాసాన్ని చూడండి

 కంప్యూటరు బొమ్మలు (కంప్యూటరు గ్రాఫిక్సు , గణణియంత్ర బొమ్మలు) 

 కంప్యూటర్ గ్రాఫిక్సు
 బొమ్మలు సృష్టించడానికి, వాటి సాకార దృగ్విషయాలను అనుసంధానించడానికి , మార్చడానికి కావలసిన అల్గోరిధంలు.
 ఇమేజ్ ప్రాసెసింగ్
 గణనం ద్వారా ఎదైనా ఒక బొమ్మ నుంచి వివరాలను(దానిలో వాడిన రంగులు మొదలైనవి) కనిపెట్టడం.

 మానవ-కంప్యూటర్ ముఖాముఖి
 మనిషి కంప్యూటర్ తో సంభాషించడానికి అవరమైన ఉపకరణాల అధ్యయనం , ప్రసృష్టి(design).

 శాస్త్రీయ గణింపు (సైంటిఫిక్ కంప్యూటింగు) 

 కంపుటేషనల్ భౌతిక శాస్త్రము
 పెద్ద పెద్ద అనలిటికల్ వ్యవస్థలను సాంఖ్య శాస్త్ర పరంగా సిములేట్ చేయడం 
 కంప్యుటేషనల్ రసాయన శాస్త్రము
 జీవసమాచారశాస్త్రము (బయో ఇన్ఫర్మేషన్)
 కంప్యూటరు శాస్త్రమును జీవ సంభంధిత సమాచారాన్ని దాచిపెట్టడానికి, విశ్లేషించడానికి, నిర్వహించడానికి ఉపయోగించే పదము , జీవ సంభంధిత సమస్యలను సాధించడానికి ఉపయోగపడే శాస్త్రము, ఉదాహరణకు ప్రోటీను అన్వేషణ 
 కంపుటేషనల్ న్యూరో శాస్త్రము
 నిజ మెదడులను కంప్యుటేషనలుగా రూపీకరణ 
 కాగ్నిటివ్ శాస్త్రము
 నిజ మనసులను కంప్యుటేషనలుగా రూపీకరణ

 కంప్యూటరు శాస్త్ర విద్య 
కొన్ని విశ్వవిద్యాలయాలలో కంప్యూటరు శాస్త్రాన్ని థీయరిటికల్ (?) స్టడీ ఆఫ్ కంప్యుటేషన్ గా, అల్గారిదమిక్ రీజనింగుగా భోధిస్తారు. ఈ బోధనలో మామూలుగా థీయరీ ఆఫ్ కంప్యుటేషన్, అల్గారిథంల విశ్లేషణ, ఫార్మల్ పద్ధతులు, కాంకరెన్స్, డాటాబేసులు, కంప్యూటరు గ్రాఫిక్సు, సిస్టం విశ్లేషణ వంటి కోర్సులు చెపుతారు. ఇంకా కంప్యూటరు ప్రోగ్రామింగు కూడా చెపుతారు, కానీ దీనిని ఇతర విభాగాలకు సహాయకారిగా ఎక్కువగా భావిస్తారు, ఉన్నత కోర్సుగా కాకుండా! ఇక కొన్ని కాలేజీలు, విశ్వవిద్యాలయాలు, సెకండరీ స్కూళ్ళు కంప్యూటరు శాస్త్రాన్ని వృత్తి విద్యగా చెపుతారు, ఈ కోర్సులలో కంప్యూటరు థీయరీ అల్గారిథంల పై కాకుండా కంప్యూటరు ప్రోగ్రామింగుపై ఎక్కువగా దృష్టి కేంద్రీకరిస్తారు. ఈ సిలబసు కంప్యూటరు విద్యను సాఫ్టువేర్ ఇండస్ట్రీకి ఉపయోగపడే ఉద్యోగులను తయారు చేయడంపైననే ఎక్కువగా దృష్టి కేంద్రీకరిస్తుంది. కంప్యూటరు శాస్త్రము యొక్క ప్రాక్టికల్ విషయాలను సాధారణంగా సాఫ్టువేర్ ఇంజినీరింగ్ అని పిలుస్తారు. కాకపోతే దేనిని సాఫ్టువేర్ ఇంజినీరింగు అన వచ్చు అనే విషయము పై ఏకాభిప్రాయము లేదు. ఉదాహరణకు చూడండి పీటర్ జే. జెన్నింగ్ కంప్యూటరు సిలబస్‌లో గొప్ప సూత్రాలు , టెక్నికల్ సింపోసియం ఆన్ కంప్యూటర్ సైన్సు ఎడుకేషన్, 2004.

 చూడండి 

 కంప్యూటింగు
 ఇన్ఫర్మేటిక్సు
 సామాన్య కంప్యూటరు శాస్త్ర విషయాల జాబితా 
 కంప్యూటరు శాస్త్ర సమావేశాల జాబితా 
 కంప్యూటరు శాస్త్రపు అపరిష్కృత సమస్యల జాబితా
 కంప్యూటరు శాస్త్రపు ప్రచురణల జాబితా 
Python programming examples with solutions 
 కంప్యూటరు శాస్త్రంలో ప్రముఖ వ్యక్తుల జాబితా 
 కంప్యూటరు ఇంజినీరింగు విషయాల జాబితా 
 కంప్యూటరు శాస్త్రపు ఉద్యోగావకాశాలు

 వనరులు 

 అసోషియేషన్ ఫర్ కంప్యూటర్ మిషినరీ(కంప్యూటరు యంత్రపు సమూహం). 1998 ఏసీయం కంప్యూటరు   వర్గీకరణ పద్దతి .
 ఐట్రిపులీ (ఐఈఈఈ, IEEE) కంప్యూటరు సంఘము, అసోషియేషన్ ఫర్ కంప్యూటర్ మిషినరీ(కంప్యూటరు యంత్రపు సమూహం).

Computing   Curricula 2001: కంప్యూటరు శాస్త్రము . 2001 డిసెంబరు 15.
 పీటర్ జె. డెన్నింగ్  .  id=1053309&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618 కంప్యూటరు శాస్త్రము, ఓ శాస్త్రమేనా?, ఏసీయం కమ్యునికేషన్స్, ఏప్రియల్ 2005 .

 బయటి లింకులు 

 డైరెట్రీ ప్రాజెక్టు: కంప్యూటరు శాస్త్రము 
జావాలో ప్రాథమిక హలో వరల్డ్ ప్రోగ్రామ్ 
 కంప్యూటరు శాస్త్రపు పుస్తకాల (బిబిలోగ్రఫీస్) సేకరన  

 

వర్గం:కంప్యూటరు శాస్త్రం