France Première Computer Science (specialty)
अध्याय: 7
1. History of computing
Key events in computing history
- कंप्यूटर का इतिहास: गियर से वेब तक – कंप्यूटिंग गिनने के औज़ारों से बढ़कर प्रोग्राम पर चलने वाली मशीनों तक पहुँची। पास्कल ने 1642 में गियर वाला कैलकुलेटर बनाया। बैबेज ने प्रोग्राम से चलने वाली मशीन डिज़ाइन की और एडा लवलेस ने 1843 में पहले प्रोग्राम का विचार लिखा। 1936 में एलन ट्यूरिंग ने एक सार्वभौमिक मशीन बताई। पहले बड़े इलेक्ट्रॉनिक कंप्यूटर, जैसे ENIAC (1945), कमरे भर के थे; प्रोग्रामिंग भाषाओं (फ़ोर्ट्रान 1957, C 1972) ने उन्हें चलाना आसान बनाया। चिप ने कंप्यूटर छोटे किए: पर्सनल कंप्यूटर 1970 के दशक के अंत और 1980 के दशक में आए। ARPANET (1969) इंटरनेट बना और वर्ल्ड वाइड वेब 1991 में खुला। कॉड के रिलेशनल मॉडल (1970) ने डेटाबेस को मज़बूत आधार दिया। लिनक्स (1991) जैसे ओपन-सोर्स सॉफ़्टवेयर ने कोड बाँटना संभव किया। इस कहानी को कई वैज्ञानिकों ने गढ़ा।
2. Data representation
Base types: binary, integers, floats, booleans, text · Tuples, lists, dictionaries
- संख्या पद्धति और कूटन (Encoding) – संख्या पद्धति अंकों और आधार से संख्याएँ लिखने का तरीका है। दशमलव (आधार 10) में 0–9, बाइनरी (आधार 2) में 0 और 1, ऑक्टल (आधार 8) में 0–7, और हेक्साडेसिमल (आधार 16) में 0–9 और A–F। दशमलव से किसी आधार में: आधार से बार-बार भाग देकर शेष नीचे से ऊपर पढ़ें; भिन्न भाग के लिए आधार से गुणा करके पूर्णांक ऊपर से नीचे पढ़ें। दशमलव में: हर अंक × स्थानीय मान, फिर जोड़ें। बाइनरी ↔ ऑक्टल में 3 बिट के समूह, बाइनरी ↔ हेक्स में 4 बिट के। टेक्स्ट कूटन से रखा जाता है: ASCII (7 बिट, 128 अक्षर), ISCII (8 बिट, भारतीय लिपियाँ) और यूनिकोड (हर लिपि), जो UTF-8 (1–4 बाइट) या UTF-32 (4 बाइट) में सहेजा जाता है।
- डेटा संरचना: ऐरे, लिस्ट, स्टैक, क्यू और ट्री – डेटा संरचना मेमोरी में डेटा को ऐसे जमाने का तरीका है कि प्रोग्राम उसे अच्छे से इस्तेमाल कर सके। ऐरे चीज़ों को क्रमांकित डिब्बों में रखता है ताकि सूचकांक से तुरंत पहुँच हो। लिंक्ड लिस्ट नोड्स को पॉइंटर से जोड़ती है, इसलिए बीच में डालना आसान है। स्टैक LIFO (अंतिम आया, पहले गया) और क्यू FIFO (पहले आया, पहले गया) पर चलते हैं। डिक्शनरी कुंजी (key) से मान खोजती है और ट्री डेटा को स्तरों में रखता है ताकि खोज तेज़ हो।
3. Tabular data
Indexing, searching, sorting, merging tables
- डेटाबेस संकल्पनाएँ: DBMS, रिलेशन और की – अलग-अलग फ़ाइलों में डेटा रखने से दोहराव, असंगति और कमज़ोर सुरक्षा होती है। डेटाबेस संबंधित डेटा को एक व्यवस्थित जगह रखता है, और DBMS (जैसे MySQL) उसे सँभालने वाला सॉफ़्टवेयर है। रिलेशनल मॉडल में डेटा तालिकाओं (रिलेशन) में रहता है, जिनमें स्तंभ (एट्रिब्यूट) और पंक्तियाँ (टपल) होती हैं; डोमेन किसी स्तंभ के अनुमत मानों का समूह है। कैंडिडेट की हर पंक्ति को अलग पहचानती है; उनमें से एक प्राइमरी की चुनी जाती है और बाकी ऑल्टरनेट की होती हैं।
4. Human–machine interaction on the Web
HTML, CSS, JS, HTTP, forms
- वेब सेवाएँ: वेबसाइट खोलने पर क्या होता है – वर्ल्ड वाइड वेब (WWW) इंटरनेट पर रखे आपस में जुड़े वेब पेजों की व्यवस्था है, जिन्हें ब्राउज़र से खोलते हैं। वेब पेज HTML में लिखे जाते हैं, जो तय टैग से सामग्री दिखाता है; XML अपने बनाए टैग से डेटा रखता और ले जाता है। हर वेबसाइट का डोमेन नेम होता है, जैसे example.org, जिसे DNS IP एड्रेस में बदलता है। URL किसी एक संसाधन का पूरा पता है: प्रोटोकॉल, डोमेन और पाथ। वेबसाइट जुड़े वेब पेजों का समूह है। वेब ब्राउज़र पेज माँगकर दिखाता है; वेब सर्वर उन्हें रखकर भेजता है; वेब होस्टिंग ऐसे सर्वर पर जगह किराए पर लेना है ताकि साइट हमेशा ऑनलाइन रहे।
5. Hardware and operating systems
Von Neumann model, networks, OS, sensors
- कंप्यूटर आर्किटेक्चर (Computer Architecture) – कंप्यूटर आर्किटेक्चर यह योजना है कि कंप्यूटर के हिस्से मिलकर कैसे काम करते हैं। ज़्यादातर कंप्यूटर वॉन न्यूमन मॉडल पर चलते हैं: एक CPU और एक मुख्य मेमोरी, जिसमें प्रोग्राम और डेटा दोनों रहते हैं, और ये पता बस, डेटा बस और कंट्रोल बस से जुड़े हैं। CPU बार-बार फ़ेच-डिकोड-एक्ज़िक्यूट चक्र चलाता है, विशेष रजिस्टरों (PC, MAR, MDR, CIR, ACC), कंट्रोल यूनिट और ALU की मदद से। गति क्लॉक स्पीड, कोर की संख्या और कैश पर निर्भर है। निर्देश मशीन कोड (बाइनरी) में होते हैं; असेंबली उन्हें छोटे नाम देती है। हार्वर्ड, RISC/CISC और एम्बेडेड सिस्टम इसके अलग-अलग रूप हैं।
6. Languages and programming
Programming constructs, specification and testing
- पायथन की मूल बातें: मोड, वेरिएबल, डेटा प्रकार और ऑपरेटर – पायथन इंटरैक्टिव मोड (एक-एक पंक्ति) या स्क्रिप्ट मोड (सहेजी गई .py फ़ाइल) में चलता है। ब्लॉक इंडेंटेशन से पहचाने जाते हैं। वेरिएबल मान से बँधे नाम हैं; हर मान का एक डेटा प्रकार होता है, और कुछ प्रकार परिवर्तनशील हैं। ऑपरेटर व्यंजक बनाते हैं जिन्हें पायथन प्राथमिकता के क्रम से हल करता है। input() टेक्स्ट पढ़ता है, int()/float()/str() प्रकार बदलते हैं, और डिबगिंग से सिंटैक्स, रनटाइम और तार्किक त्रुटियाँ ठीक होती हैं।
- Python से शुरुआत – Python उच्च स्तरीय, मुफ़्त व ओपन सोर्स, इंटरप्रेटेड, पोर्टेबल और केस-सेंसिटिव भाषा है जो पढ़ने में आसान है। इसे इंटरैक्टिव मोड (>>> के बाद लिखो, परिणाम तुरंत) या स्क्रिप्ट मोड (.py फ़ाइल में सेव करके चलाओ) में चलाते हैं। इसके कैरेक्टर सेट में अक्षर, अंक, विशेष चिह्न, खाली जगह और यूनिकोड अक्षर हैं। प्रोग्राम की सबसे छोटी इकाई टोकन है: कीवर्ड, पहचानकर्ता, लिटरल, ऑपरेटर और विराम चिह्न। वेरिएबल एक नाम है जो किसी मान की ओर इशारा करता है; असाइनमेंट में दायाँ भाग (r-value) पहले निकलकर बाएँ (l-value) में रखा जाता है। # से शुरू टिप्पणी को Python छोड़ देता है।
- कक्षा 12 के लिए पायथन रिवीजन: कक्षा 11 की सारी बातें एक जगह – कक्षा 12 का पायथन कक्षा 11 पर टिका है। आपको टोकन (कीवर्ड, आइडेंटिफ़ायर, लिटरल, ऑपरेटर, पंक्चुएटर), डेटा प्रकार (int, float, bool, str, list, tuple, dict), कौन-से प्रकार अपनी जगह पर बदल सकते हैं (म्यूटेबल) और कौन नहीं (इम्यूटेबल), ऑपरेटरों का क्रम, if-elif-else, for और while लूप, break-continue, स्ट्रिंग स्लाइसिंग और लिस्ट, ट्यूपल, डिक्शनरी के मुख्य मेथड आने चाहिए।
7. Algorithms
Traversal, sorting, binary search, greedy, kNN
- समस्या समाधान का परिचय – कंप्यूटर से समस्या हल करने के चरण: समस्या का विश्लेषण (इनपुट, आउटपुट, नियम), एल्गोरिद्म बनाना (सीमित, स्पष्ट, क्रमबद्ध चरण), प्रोग्रामिंग भाषा में कोड करना, अलग-अलग इनपुट से जाँचना (टेस्ट), और डीबग (गलतियाँ ढूँढकर हटाना)। एल्गोरिद्म को फ़्लोचार्ट (अंडाकार = शुरू/रुको, समांतर चतुर्भुज = इनपुट/आउटपुट, आयत = प्रक्रिया, हीरा = निर्णय, तीर = दिशा) या स्यूडोकोड (सरल संरचित भाषा) में दिखाते हैं। विघटन बड़ी समस्या को छोटी उप-समस्याओं में तोड़ता है।