पृष्ठ पलटने के लिए स्क्रॉल करें
Computer Science Principles · AP Computer Science Principles
बिट, कंप्रेशन और सूचना
कंप्यूटर जो कुछ भी रखता है, संख्या, नाम, फ़ोटो, गाना, मूल रूप से बिट का एक पैटर्न है।
एक बिट (बाइनरी डिजिट का संक्षिप्त रूप) या तो 0 होता है या 1। कंप्यूटिंग डिवाइस डेटा को डिजिटल रूप में निरूपित करते हैं: किसी भी मान के सबसे निचले स्तर के घटक बिट होते हैं।
आकृति बाइनरी में गिनती करती है। हर खाना एक बिट है, 0 के लिए कागज़ी पक्ष और 1 के लिए लाल पक्ष, अपने स्थानीय मान 128, 64, 32, 16, 8, 4, 2, 1 के नीचे। हर चरण 1 जोड़ता है: सबसे दाहिना बिट पलटता है, और जहाँ कहीं 1 पलटकर 0 होता है वहाँ कैरी एक स्थान बाईं ओर लहरती है, जैसे 00000111 (7) से 00001000 (8) बनने पर।
प्रोग्राम डेटा मानों को वेरिएबल में, मदों की लिस्ट में, या अकेले कॉन्स्टेंट के रूप में रखते हैं, उन्हें प्रक्रियाओं को इनपुट के रूप में देते हैं और आउटपुट के रूप में वापस पाते हैं। रूप जो भी हो, मान बिट के रूप में संग्रहीत होते हैं, और प्रोग्राम उन्हें लोगों के पढ़ने योग्य रूप में बदलते हैं।
यह अध्याय AP Computer Science Principles का Big Idea 2, डेटा, है, जो बहुविकल्पीय परीक्षा का 17–22% है: बाइनरी संख्याएँ (2.1), डेटा कंप्रेशन (2.2), डेटा से सूचना निकालना (2.3) और डेटा के साथ प्रोग्राम का उपयोग (2.4)।
बिट जो एब्स्ट्रैक्शन में समूहित हैं
एक बाइट 8 बिट का होता है। अकेले एक बाइट का कोई अर्थ नहीं: उसका अर्थ इस पर निर्भर है कि उसे पढ़ने वाला प्रोग्राम उसे क्या मानता है।
एब्स्ट्रैक्शन मुख्य विचार पर ध्यान देकर जटिलता घटाने की प्रक्रिया है। सामने के प्रश्न से असंबद्ध विवरण छिपाकर और संबंधित तथा उपयोगी विवरण एक साथ लाकर, एब्स्ट्रैक्शन आपको बिट के बजाय विचार के बारे में सोचने देता है।
बिट को एब्स्ट्रैक्शन निरूपित करने के लिए समूहित किया जाता है, जिनमें (पर इन्हीं तक सीमित नहीं) संख्याएँ, वर्ण और रंग हैं। आकृति एक बाइट, 01000001, को तीन तरह से पढ़ती है:
| इसके रूप में पढ़ा गया | इसका अर्थ |
|---|---|
| एक बाइनरी संख्या | 65 |
| एक वर्ण (ASCII और Unicode कोड 65) | अक्षर A |
| एक पिक्सेल की चमक, 0 (काला) से 255 (सफ़ेद) | एक गहरा ग्रे |
इसलिए बिट का वही अनुक्रम अलग-अलग संदर्भों में अलग-अलग प्रकार के डेटा को निरूपित कर सकता है। एक रंगीन चित्र आमतौर पर प्रति पिक्सेल ऐसी तीन संख्याएँ रखता है, लाल, हरे और नीले के लिए एक-एक: 3 बाइट, 24 बिट।
स्थानीय मान, दाएँ से 0 से क्रमांकित
डेटा को निरूपित करने के लिए संख्या आधारों का उपयोग होता है, जिनमें बाइनरी और दशमलव शामिल हैं। दशमलव (आधार 10) केवल अंक 0–9 का उपयोग करता है; बाइनरी (आधार 2) केवल 0 और 1 का।
दशमलव की तरह ही, किसी अंक का स्थान उसका मान तय करता है: संख्यात्मक मान अंक गुणा उसके स्थान का स्थानीय मान होता है। स्थानीय मान आधार की उस स्थान के घात के बराबर होता है, और स्थान सबसे दाहिने पर 0 से क्रमांकित होते हैं, बाईं ओर 1-1 बढ़ते हुए। दशमलव में, 305 = 3 × 102 + 0 × 101 + 5 × 100।
बाइनरी में हर स्थान अपने दाईं ओर वाले स्थान से दुगने मान का होता है। 10110101 के लिए:
| स्थान | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| स्थानीय मान | 27 = 128 | 26 = 64 | 25 = 32 | 24 = 16 | 23 = 8 | 22 = 4 | 21 = 2 | 20 = 1 |
| बिट | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
जहाँ बिट 1 है वहाँ के स्थानीय मान जोड़ें: 128 + 32 + 16 + 4 + 1 = 181। 0 बिट कुछ नहीं जोड़ता। आकृति बाएँ से दाएँ पढ़ती है; हर 1 अपना स्थानीय मान योग में डालता है।
वह सबसे बड़ा स्थानीय मान लें जो समाता हो
किसी धनात्मक पूर्ण संख्या को बाइनरी में लिखने के लिए सबसे बड़े स्थानीय मान से नीचे की ओर चलें: जहाँ स्थानीय मान शेष में समाता है, 1 लिखें और उसे घटा दें; जहाँ नहीं समाता, 0 लिखें।
आठ बिट के साथ 100 के लिए:
| स्थानीय मान | शेष | समाता है? | बिट | बाद में बचा |
|---|---|---|---|---|
| 128 | 100 | no | 0 | 100 |
| 64 | 100 | yes | 1 | 36 |
| 32 | 36 | yes | 1 | 4 |
| 16 | 4 | no | 0 | 4 |
| 8 | 4 | no | 0 | 4 |
| 4 | 4 | yes | 1 | 0 |
| 2 | 0 | no | 0 | 0 |
| 1 | 0 | no | 0 | 0 |
इसलिए 100 = 01100100: 64 + 32 + 4 = 100। आगे के शून्य कुछ नहीं बदलते, इसलिए 01100100 और 1100100 एक ही संख्या हैं।
दूसरी विधि: बार-बार 2 से भाग दें, और शेषफल अंतिम से पहले की ओर पढ़ें। 100 ÷ 2 = 50 शेष 0; 50 ÷ 2 = 25 शेष 0; 25 ÷ 2 = 12 शेष 1; 12 ÷ 2 = 6 शेष 0; 6 ÷ 2 = 3 शेष 0; 3 ÷ 2 = 1 शेष 1; 1 ÷ 2 = 0 शेष 1। ऊपर की ओर पढ़ें: 1100100।
आकृति में नीली पट्टी 100 का शेष है; हर 1 अपना स्थानीय मान पट्टी से तोड़ता है और उसका खाना लाल हो जाता है।
और बाइनरी संख्याओं की तुलना
एक बिट के 2 पैटर्न होते हैं। हर अतिरिक्त बिट गिनती को दुगना करता है: हर पुराना पैटर्न एक बार आगे 0 के साथ, और एक बार 1 के साथ। इसलिए n बिट के 2n पैटर्न होते हैं।
आकृति उन्हें बनाती है: 1 बिट, 2; 2 bits, 4; 3 bits, 8; 4 bits, 16। एक बाइट के 28 = 256 पैटर्न होते हैं, पूर्ण संख्याएँ 0 से 255 तक। सबसे बड़ी n-बिट संख्या सारे 1 की होती है: 2n − 1।
26 अक्षरों में से हर एक को अपना पैटर्न देने के लिए कितने बिट चाहिए? 24 = 16 बहुत कम है; 25 = 32 पर्याप्त है: 5 बिट।
तुलना और क्रम। दोनों संख्याओं को बिट की समान संख्या दें (आगे शून्य लगाकर) और बाईं ओर से स्कैन करें। जिस पहले स्थान पर वे भिन्न हों वही निर्णय करता है: वहाँ जिसमें 1 है वह बड़ी है, क्योंकि वह एक स्थानीय मान अपने दाईं ओर के सभी स्थानों के कुल मान से अधिक है (2p > 2p − 1)।
01101100 और 01011111 पहली बार स्थान 5 पर, यानी 32 के स्थान पर, भिन्न होते हैं, जहाँ पहली में 1 है: 108 > 95, उसके बाद के बिट कुछ भी हों।
ओवरफ़्लो और राउंड-ऑफ़
कई प्रोग्रामिंग भाषाओं में पूर्णांक बिट की एक निश्चित संख्या से निरूपित होते हैं। इससे पूर्णांक मानों की सीमा और उन पर होने वाली गणित सीमित हो जाती है, और ओवरफ़्लो या अन्य त्रुटियाँ हो सकती हैं।
आकृति के काउंटर (काल्पनिक) में 4 बिट हैं: यह 0 से 15 तक रखता है। 15 (1111) में 1 जोड़ने के लिए पाँचवाँ बिट चाहिए; कैरी के पास जाने की जगह नहीं, और काउंटर 0 दिखाता है। यही ओवरफ़्लो है।
अन्य भाषाएँ ऐसा एब्स्ट्रैक्शन देती हैं जिसमें पूर्णांकों का आकार केवल कंप्यूटर की मेमोरी के आकार से सीमित होता है। परीक्षा की रेफ़रेंस शीट वाली भाषा इन्हीं में से एक है: इसके पूर्णांक ओवरफ़्लो नहीं होते।
वास्तविक संख्याएँ (भिन्नात्मक भाग वाली) भी बिट की निश्चित संख्या में संग्रहीत होती हैं, जिससे उनकी सीमा और उन पर गणित सीमित हो जाती है और राउंड-ऑफ़ तथा अन्य त्रुटियाँ हो सकती हैं: कुछ वास्तविक संख्याएँ केवल सन्निकटन के रूप में संग्रहीत होती हैं। 3 भिन्न बिट के साथ (आकृति, काल्पनिक) केवल 1/8 = 0.125 के गुणज होते हैं; 0.1 को 0.125 के रूप में संग्रहीत किया जाता है, 0.025 के अंतर से।
वास्तविक भाषाएँ कहीं अधिक बिट का उपयोग करती हैं, इसलिए त्रुटि बहुत छोटी होती है पर मिटती नहीं: उनमें से कई में 0.1 + 0.2 का मान 0.30000000000000004 आता है। वास्तविक संख्याओं की विशिष्ट सीमाएँ पाठ्यक्रम और परीक्षा के दायरे से बाहर हैं।
एक डिजिटल सन्निकटन
एनालॉग डेटा के मान समय के साथ असतत अंतरालों में नहीं, सहजता से बदलते हैं: संगीत की पिच और आवाज़, किसी चित्र के रंग, दौड़ के दौरान धावक की स्थिति।
कंप्यूटर बिट संग्रहीत करता है, इसलिए वह एनालॉग डेटा का केवल सन्निकटन कर सकता है। वास्तविक संसार के एनालॉग डेटा का सन्निकटन करने के लिए डिजिटल डेटा का उपयोग एब्स्ट्रैक्शन का एक उदाहरण है।
एनालॉग डेटा का डिजिटल रूप में सैंपलिंग से निकट सन्निकटन किया जा सकता है: एनालॉग सिग्नल के मानों को नियमित अंतरालों पर मापना, जिन्हें सैंपल कहते हैं। हर सैंपल को उसे संग्रहीत करने के लिए आवश्यक सटीक बिट निकालने हेतु मापा जाता है।
आकृति उसी सहज सिग्नल को दो बार सैंपल करती है। पहले 8 सैंपल, हर एक 4 स्तरों में से एक पर राउंड किया गया (2 बिट): 8 × 2 = 16 बिट, एक खुरदरी सीढ़ी। फिर 8 स्तरों पर 16 सैंपल (3 बिट): 16 × 3 = 48 बिट, और सीढ़ी वक्र के अधिक निकट चलती है (सिग्नल से उसकी औसत दूरी 43% घट जाती है)।
अधिक सैंपल और प्रति सैंपल अधिक बिट निकटतर सन्निकटन देते हैं, और संग्रहीत करने या भेजने में अधिक बिट लगते हैं। सैंपल की कोई सीमित संख्या इसे सटीक नहीं बना सकती।
छोटा, और ठीक वैसा ही वापस
डेटा कंप्रेशन प्रेषित या संग्रहीत डेटा का आकार (बिट की संख्या) घटा सकता है। लॉसलेस एल्गोरिदम आमतौर पर इसे घटा सकता है और साथ ही मूल डेटा के पूर्ण पुनर्निर्माण की गारंटी देता है।
आकृति की पंक्ति में 20 पिक्सेल हैं, हर एक एक बाइट का: 20 बाइट (काल्पनिक)। रन-लेंथ एन्कोडिंग एक रंग के हर रन को एक गिनती और एक रंग के रूप में रखती है: 7W 4R 6W 3B, 4 रन × 2 बाइट = 8 बाइट।
डिकोड करने पर 7 white, 4 red, 6 white, 3 blue मिलता है: ठीक मूल पंक्ति, पिक्सेल-दर-पिक्सेल। कुछ खोया नहीं, इसलिए कम बिट का अर्थ आवश्यक रूप से कम सूचना नहीं है।
आकार में कमी की मात्रा मूल डेटा में रिडंडेंसी की मात्रा और लागू किए गए कंप्रेशन एल्गोरिदम दोनों पर निर्भर करती है। लंबे रन अच्छी तरह कंप्रेस होते हैं। जिस पंक्ति में हर पिक्सेल पर रंग बदलता है (WRWRWR…) उसमें 1 के 20 रन होते हैं: एन्कोड करने पर वह 40 बाइट लेती है, जो उसके शुरुआती 20 से अधिक है।
और भी छोटा, पर केवल एक सन्निकटन
लॉसी एल्गोरिदम संग्रहीत या भेजे गए बिट की संख्या को काफ़ी घटा सकता है, पर मूल के केवल एक सन्निकटन का पुनर्निर्माण होने देता है।
आकृति के 16 पिक्सेल (काल्पनिक चमकें, हर एक एक बाइट का) हर जोड़ी का केवल औसत रखते हैं: 8 बाइट, आधा आकार। डिकोड करने पर हर पिक्सेल को उसकी जोड़ी का औसत मिलता है: 16 में से 14 अलग लौटते हैं, 10 तक के अंतर से। ग्रे छायाएँ मूल हैं, और 8 बाइट में कुछ भी उन्हें वापस नहीं ला सकता: जोड़ियाँ 200, 180 और 190, 190 दोनों का औसत 190 है।
लॉसी एल्गोरिदम आमतौर पर लॉसलेस की तुलना में बिट को अधिक घटा सकते हैं। कौन-सा चुनें, यह स्थिति पर निर्भर है:
| सबसे अधिक क्या मायने रखता है | आमतौर पर चुना जाता है |
|---|---|
| गुणवत्ता, या मूल को ठीक-ठीक पुनर्निर्मित करने की क्षमता (प्रोग्राम फ़ाइल, टेक्स्ट दस्तावेज़) | लॉसलेस |
| डेटा का आकार या प्रेषण का समय न्यूनतम करना (धीमे कनेक्शन पर वीडियो स्ट्रीमिंग) | लॉसी |
पैटर्न, और वे क्या सिद्ध नहीं करते
सूचना डेटा से निकाले गए तथ्यों और पैटर्न का संग्रह है। डेटा प्रवृत्तियाँ पहचानने, संबंध बनाने और समस्याएँ हल करने के अवसर देता है।
आकृति एक समुद्रतटीय कस्बे के 24 काल्पनिक दिन आलेखित करती है: बिके आइसक्रीम बनाम धूप से झुलसने के मामले। जैसे एक बढ़ता है, दूसरा भी: एक प्रबल सहसंबंध (सहसंबंध गुणांक r = 0.86; 1 एक पूर्ण सीधी रेखा होगी)।
आइसक्रीम धूप से झुलसना पैदा नहीं करती। दिनों को तापमान से रंगें तो कारण दिखता है: 7 गर्म दिन (लाल, 27 °C या अधिक) अधिक आइसक्रीम और अधिक धूप दोनों लाते हैं। डेटा में मिला सहसंबंध आवश्यक रूप से यह नहीं दर्शाता कि कारण-संबंध मौजूद है; संबंध की सटीक प्रकृति समझने के लिए अतिरिक्त शोध चाहिए।
यहाँ अकेले बिक्री के रिकॉर्ड इसे नहीं दिखा सकते थे। अक्सर कोई एक स्रोत निष्कर्ष निकालने के लिए आवश्यक डेटा नहीं रखता, और कई स्रोतों (बिक्री, क्लिनिक में आगमन, मौसम रिकॉर्ड) के डेटा को मिलाना पड़ता है।
डेटा के बारे में डेटा
मेटाडेटा डेटा के बारे में डेटा है। फ़ोटो डेटा है; उसके मेटाडेटा में उसके बनने की तिथि, फ़ाइल का आकार, उसके आयाम और उसके टैग हो सकते हैं।
मेटाडेटा में किए गए परिवर्तन और विलोपन मूल डेटा को नहीं बदलते। आकृति में टैग “sunset” हटाया जाता है; 64 पिक्सेल में से एक भी नहीं बदलता।
मेटाडेटा का उपयोग जानकारी खोजने, व्यवस्थित करने और प्रबंधित करने के लिए होता है: फ़ोटो लाइब्रेरी एक भी पिक्सेल देखे बिना 14 जून को ली गई हर फ़ोटो, या “beach” टैग वाली हर फ़ोटो सूचीबद्ध कर सकती है। मेटाडेटा अतिरिक्त जानकारी देकर डेटा के प्रभावी उपयोग को बढ़ाता है, और डेटा को संरचित और व्यवस्थित होने देता है।
परीक्षा में, कोई परिदृश्य एकत्र किया गया डेटा और मेटाडेटा देता है और पूछता है कि क्या खोजा जा सकता है। पूछें कि हर फ़ील्ड क्या दर्ज करता है। केवल तिथियों और टैग वाली लाइब्रेरी “जून में कितनी फ़ोटो ली गईं?” का उत्तर दे सकती है पर “यह फ़ोटो कहाँ ली गई थी?” का नहीं: किसी फ़ील्ड में स्थान दर्ज नहीं है।
एकरूप, अर्थ बदले बिना
डेटा सेट आकार चाहे जो हो चुनौतियाँ पैदा करते हैं: डेटा को साफ़ करने की ज़रूरत, अपूर्ण डेटा, अमान्य डेटा, और डेटा स्रोतों को मिलाने की ज़रूरत। डेटा को प्रोसेस करने की क्षमता उपयोगकर्ताओं और उनके उपकरणों की क्षमताओं पर निर्भर करती है।
डेटा कैसे एकत्र किया गया, इसके आधार पर वह एकरूप नहीं भी हो सकता। जब उपयोगकर्ता खुले फ़ील्ड में टाइप करते हैं, तो संक्षिप्त करने, वर्तनी और अक्षर-रूप (बड़े-छोटे) का तरीका उपयोगकर्ता-दर-उपयोगकर्ता बदलता है। आकृति के साइन-अप फ़ॉर्म (काल्पनिक) में 2 शहरों की 7 अलग-अलग वर्तनियाँ हैं।
सफ़ाई डेटा को उसका अर्थ बदले बिना एकरूप बनाती है, सभी समतुल्य संक्षेपों, वर्तनियों और अक्षर-रूपों को एक ही शब्द से बदलकर: 5 प्रविष्टियाँ दोबारा लिखी जाती हैं, और 7 वर्तनियाँ 2 बन जाती हैं। अब शहर के अनुसार साइन-अप गिनने वाला प्रोग्राम सही गिनता है।
सफ़ाई जो गायब है उसे गढ़ नहीं सकती। एक पंक्ति में उम्र नहीं है (अपूर्ण) और एक में −4 है (अमान्य); उन्हें चिह्नित किया जाता है, जाँचने या विश्लेषण से बाहर रखने के लिए, अनुमान लगाने के लिए नहीं।
अधिक डेटा बेहतर डेटा नहीं होता
पूर्वाग्रह की समस्याएँ अक्सर एकत्र किए जा रहे डेटा के प्रकार या स्रोत से पैदा होती हैं। पूर्वाग्रह केवल अधिक डेटा एकत्र करने से समाप्त नहीं होता।
आकृति का सर्वेक्षण (काल्पनिक) जनसंख्या के केवल बाएँ भाग तक पहुँचता है, मान लें किसी एक वेबसाइट के पाठक। पूरी जनसंख्या में 41% लाल मत रखते हैं। 30 उत्तरों के बाद सर्वेक्षण 80% कहता है; 60 के बाद, 78%। उत्तर दुगने, वही गलत तस्वीर, क्योंकि हर उत्तर उसी अप्रतिनिधिक स्रोत से आता है।
आकार फिर भी मायने रखता है: डेटा सेट का आकार इससे निकाली जा सकने वाली सूचना की मात्रा को प्रभावित करता है। पर बड़े डेटा सेट को एक अकेले कंप्यूटर से प्रोसेस करना कठिन होता है और उनके लिए समानांतर सिस्टम की ज़रूरत पड़ सकती है, जिनमें कई प्रोसेसर डेटा के हिस्सों पर एक साथ काम करते हैं।
डेटा सेट के साथ काम करते समय सिस्टम की स्केलेबिलिटी एक महत्वपूर्ण विचार है, क्योंकि सिस्टम की गणनात्मक क्षमता तय करती है कि डेटा सेट कैसे प्रोसेस और संग्रहीत किए जा सकते हैं।
लिस्ट को प्रोसेस करने वाले प्रोग्राम
सूचना पाने के लिए डेटा को प्रोसेस करने में प्रोग्राम का उपयोग हो सकता है। खोज उपकरण जानकारी कुशलता से खोजने के लिए उपयोगी हैं, और डेटा फ़िल्टरिंग सिस्टम जानकारी खोजने और डेटा में पैटर्न पहचानने के महत्वपूर्ण उपकरण हैं।
फ़िल्टरिंग केवल वे अवयव रखती है जो किसी शर्त को पूरा करते हैं, जैसे लिस्ट से केवल धनात्मक संख्याएँ रखना, या केवल वे छात्र जिन्होंने बैंड के लिए साइन-अप किया:
data ← [4, -2, 7, 0, -5, 3] positives ← [] FOR EACH n IN data { IF(n > 0) { APPEND(positives, n) } } आकृति इसे चलाती है, चल रही पंक्ति लाल में। हर n की जाँच होती है; केवल n > 0 वाले ही जोड़े जाते हैं। positives अंत में [4, 7, 3] होती है; 0 नहीं रखा जाता, क्योंकि 0 > 0 असत्य है।
रूपांतरण हर अवयव को बदलता है, जैसे लिस्ट के हर अवयव को दुगना करना, या हर छात्र रिकॉर्ड में अभिभावक का ईमेल जोड़ना। पहले doubled ← [] के साथ:
FOR EACH n IN data { APPEND(doubled, 2 * n) } doubled अंत में [8, −4, 14, 0, −10, 6] होती है। डेटा का अनुवाद और रूपांतरण करने से अंतर्दृष्टि आ सकती है, और प्रोग्राम से डेटा रूपांतरित करने पर पैटर्न उभर सकते हैं। प्रोग्रामर डेटा को फ़िल्टर और साफ़ करने के लिए भी प्रोग्राम का उपयोग करते हैं।
कई से एक संख्या, और एक चार्ट
मिलाना या तुलना करना कई मानों को एक उत्तर में घटाता है: संख्याओं की लिस्ट जोड़ना, या सबसे ऊँचे GPA वाला छात्र खोजना। विज़ुअलाइज़ करना डेटा सेट को चार्ट, ग्राफ़ या किसी अन्य दृश्य निरूपण के रूप में दिखाता है।
एक क्लब 6 सप्ताहों के साइन-अप दर्ज करता है (काल्पनिक): signups ← [12, 18, 9, 22, 15, 20]।
total ← 0 most ← signups[1] FOR EACH n IN signups { total ← total + n IF(n > most) { most ← n } } DISPLAY(total) DISPLAY(most) यह 96 22 प्रदर्शित करता है: 6 सप्ताह, कुल 96 साइन-अप, सबसे अच्छे सप्ताह में 22। most signups[1] से, पहले मान से, शुरू होता है, 0 से नहीं, इसलिए सभी मान ऋणात्मक होने पर भी यह काम करेगा। चलते समय आकृति हर सप्ताह को एक बार के रूप में बनाती है: डेटा पढ़े जाने के साथ चार्ट बनता है।
तालिकाएँ, आरेख, टेक्स्ट और अन्य दृश्य उपकरण डेटा से मिली अंतर्दृष्टि और ज्ञान बताने के लिए उपयोग हो सकते हैं। स्प्रेडशीट जैसे प्रोग्राम सूचना को कुशलता से व्यवस्थित करने और उसमें प्रवृत्तियाँ खोजने में मदद करते हैं।
प्रोग्राम पुनरावृत्तीय और इंटरैक्टिव ढंग से उपयोग होते हैं: चार्ट देखें, नया प्रश्न पूछें, फिर फ़िल्टर या रूपांतरित करें। डेटा स्रोतों को मिलाना, डेटा की क्लस्टरिंग (समान मदों को समूहित करना) और वर्गीकरण (मदों को श्रेणियों में छाँटना) डेटा से अंतर्दृष्टि और ज्ञान पाने के लिए प्रोग्राम के उपयोग के भाग हैं।