कंप्यूटर विज्ञान सिद्धांत, प्रयोग और इंजीनियरिंग है जो कंप्यूटर के डिजाइन और उपयोग के लिए आधार बनाते हैं। इसमें डिजिटल जानकारी को प्रोसेस करने, स्टोर करने और संवाद करने वाले एल्गोरिदम का अध्ययन शामिल है। एक कंप्यूटर वैज्ञानिक कम्प्यूटेशन के सिद्धांत और कम्प्यूटेशनल सिस्टम के डिजाइन में माहिर हैं।
इसके क्षेत्रों को विभिन्न प्रकार के सैद्धांतिक और व्यावहारिक विषयों में विभाजित किया जा सकता है। कुछ क्षेत्र, जैसे कम्प्यूटेशनल जटिलता सिद्धांत (जो कम्प्यूटेशनल और अट्रैक्टिव समस्याओं के मूलभूत गुणों की पड़ताल करते हैं), अत्यधिक सार होते हैं, जबकि कंप्यूटर ग्राफिक्स जैसे क्षेत्र वास्तविक दुनिया के दृश्य अनुप्रयोगों पर जोर देते हैं। अन्य क्षेत्र कम्प्यूटेशन को लागू करने में चुनौतियों पर ध्यान केंद्रित करते हैं। उदाहरण के लिए, प्रोग्रामिंग भाषा सिद्धांत कम्प्यूटेशन के विवरण के लिए विभिन्न दृष्टिकोणों पर विचार करता है, जबकि कंप्यूटर प्रोग्रामिंग का अध्ययन स्वयं प्रोग्रामिंग भाषाओं और जटिल प्रणालियों के उपयोग के विभिन्न पहलुओं की जांच करता है। मानव-कंप्यूटर इंटरैक्शन कंप्यूटर और कम्प्यूटेशन को मानव के लिए उपयोगी, उपयोगी और सार्वभौमिक रूप से सुलभ बनाने में चुनौतियों पर विचार करता है।