Computer Science Textbook for Class XI (PDF)
Document Details
Uploaded by Deleted User
2019
Tags
Summary
This textbook provides a comprehensive introduction to computer science for class XI, covering fundamental concepts, problem-solving techniques, and basic Python programming. The book explores topics like hardware and software, data representation, algorithms, and the societal impact of technology. It is designed with a focus on developing computational thinking and problem-solving skills.
Full Transcript
COMPUTER SCIENCE Textbook for Class XI Rationalised 2023-24 Prelims.indd 1 08-Apr-19 10:03:55 AM 11120 – Computer Science ISBN 978-93-5292-117-1...
COMPUTER SCIENCE Textbook for Class XI Rationalised 2023-24 Prelims.indd 1 08-Apr-19 10:03:55 AM 11120 – Computer Science ISBN 978-93-5292-117-1 Textbook for Class XI First Edition ALL RIGHTS RESERVED May 2019 Vaishakha 1941 No part of this publication may be reproduced, stored in a retrieval system or transmitted, in any form or by any means, Reprinted electronic, mechanical, photocopying, recording or otherwise without the prior permission of the publisher. June 2021 Jyeshtha 1943 This book is sold subject to the condition that it shall not, by November 2021 Agrahayana 1943 way of trade, be lent, re-sold, hired out or otherwise disposed of without the publisher’s consent, in any form of binding or cover other than that in which it is published. The correct price of this publication is the price printed on this page, Any revised price indicated by a rubber stamp or by a sticker or by any other means is incorrect and should be unacceptable. PD 30T RSP OFFICES OF THE PUBLICATION Division, NCERT © National Council of Educational NCERT Campus Research and Training, 2019 Sri Aurobindo Marg New Delhi 110 016 Phone : 011-26562708 108, 100 Feet Road Hosdakere Halli Extension Banashankari III Stage Bengaluru 560 085 Phone : 080-26725740 Navjivan Trust Building P.O.Navjivan Ahmedabad 380 014 Phone : 079-27541446 CWC Campus Opp. Dhankal Bus Stop Panihati Kolkata 700 114 Phone : 033-25530454 CWC Complex ` 195.00 Maligaon Guwahati 781 021 Phone : 0361-2674869 Publication Team Head, Publication : Anup Kumar Rajput Division Chief Editor : Shveta Uppal Printed on 80 GSM paper Chief Production : Arun Chitkara Published at the Publication Officer Division by the Secretary, National Chief Business : Vipin Dewan Council of Educational Research Manager and Training, Sri Aurobindo Marg, Editor : Bijnan Sutar New Delhi 110 016 and printed at Goyal Stationers, B-36/9, G.T. Production Assistant : Om Prakash Karnal Road Industrial Area, Cover and Layout Delhi 110 033 DTP Cell Rationalised 2023-24 Prelims.indd 2 11/29/2021 12:16:32 PM Foreword Computer science as a discipline has evolved over the years and has emerged as a driving force for socio-economic activities. It has made continuous inroads into diverse areas — be it business, commerce, science, technology, sports, health, transportation or education. With the advent of computer and communication technologies, there has been a paradigm shift in teaching learning at the school level. The role and relevance of this discipline is in focus because the expectations from the school pass-outs have grown to be able to meet the challenges of the twenty-first century. Today, we are living in an interconnected world where computer-based applications influence the way we learn, communicate, commute or even socialise! There is a demand for software engineers in various fields like manufacturing, services, etc. Today, there are a large number of successful startups delivering different services through software applications. All these have resulted in generating interest for this subject among students as well as parents. Development of logical thinking, reasoning and problem-solving skills are fundamental building blocks for knowledge acquisition at the higher level. Computer plays a key role in problem solving with focus on logical representation or reasoning and analysis. This book focuses on the fundamental concepts and problem-solving skills while opening a window to the emerging and advanced areas of computer science. The newly developed syllabus has dealt with the dual challenge of reducing curricular load as well as introducing this ever evolving discipline. As an organisation committed to systemic reforms and continuous improvement in the quality of its products, NCERT welcomes comments and suggestions which will enable us to revise the content of the textbook. Hrushikesh Senapaty Director New Delhi National Council of Educational 8 August 2018 Research and Training Rationalised 2023-24 Prelims.indd 3 08-Apr-19 10:03:55 AM Rationalised 2023-24 Prelims.indd 4 08-Apr-19 10:03:55 AM Preface In the present education system of our country, specialised or discipline- based courses are introduced at the higher secondary stage. This stage is crucial as well as challenging because of the transition from general to discipline-based curriculum. The syllabus at this stage needs to have sufficient rigour and depth while remaining mindful of the comprehension level of the learners. Further, the textbook should not be heavily loaded with content. Computers have permeated in every facet of life. Study of basic concepts of computer science has been desirable in education. There are courses offered in the name of Computer Science, Information and Communication Technology (ICT), Information Technology (IT), etc., by various boards and schools up to secondary stage, as optional. These mainly focus on using computer for word processing, presentation tools and application software. Computer Science (CS) at the higher secondary stage of school education is also offered as an optional subject. At this stage, students usually opt for CS with an aim of pursuing a career in software development or related areas, after going through professional courses at higher levels. Therefore, at higher secondary stage, the curriculum of CS introduces basics of computing and sufficient conceptual background of Computer Science. The primary focus is on fostering the development of computational thinking and problem-solving skills. This book has 11 chapters covering the following broader themes: Fundamentals: basic understanding of computer system, hardware components and software, data representation, number system, encoding as well as awareness of emerging trends in computer science. Problem-solving: problem analysis, algorithm, flowchart, implementation, testing and maintenance. Programming: basic constructs of a program using Python programming language — program structure, identifiers, variables, flow of control, advanced data types, functions. Societal impact: awareness of digital footprints, data privacy and protection, cyber crime, etiquettes in a digital society and implications on security, privacy, piracy, ethics, values and health concerns. Chapters 1, 2, 3, 4 and 11 have two additional components — (i) activities and (ii) think and reflect for self assessment while learning as well as to generate further interest in the learner. Python programming language is introduced that is easy to learn in interactive and script mode. A number of hands-on examples are given to gradually explain methodology to solve different types of problems across the Chapters 5 to 10. The programming examples as well as the exercises in these chapters are required to be solved in a computer and verify with the given outputs. Rationalised 2023-24 Prelims.indd 5 08-Apr-19 10:03:55 AM vi Group projects through case studies are proposed to solve complex problems. Peer assessment of these projects will promote peer-learning, team spirit and responsiveness. Some exercises have been made in case- study format to promote problem-finding and problem-solving skills. Box items (light green background) are pinned inside the chapters either to explain related concepts or to provide additional information related to the topic covered in that section. However, these box items are not to be assessed through examinations. Unicode encoding scheme for Indic scripts have also been introduced to motivate students to solve problems in public services and the local micro or small businesses in India. These chapters have been written by involving practicing teachers as well as subject experts. These have been iteratively peer-reviewed. I would like to place on record appreciation for Professor Om Vikas for leading the review activities of the book as well as for his guidance and motivation to the development team throughout. Several iterations have resulted into this book. Thanks are due to the authors and reviewers for their valuable contribution. Comments and suggestions are welcome to make this endeavour of par excellence. New Delhi Rejaul Karim Barbhuiya 9 August 2018 Assistant Professor Department of Education in Science and Mathematics, NCERT Rationalised 2023-24 Prelims.indd 6 08-Apr-19 10:03:55 AM Textbook Development Committee Chief Advisor Om Vikas, Professor (Retd.), Former Director, ABV-IIITM, Gwalior, M.P. Members Anuradha Khattar, Assistant Professor, Miranda House, University of Delhi Ashish Dhalwankar, PGT (Computer Science), Centre Point School, Nagpur, Maharashtra Chetna Khanna, Freelance Educationist, Delhi Harita Ahuja, Assistant Professor, Acharya Narendra Dev College, University of Delhi Mudasir Wani, Assistant Professor, Government College for Women, Nawakadal, Srinagar Pratiksha Majumdar, PGT (Computer Science), School of Scholars, Nagpur, Maharashtra Priti Rai Jain, Assistant Professor, Miranda House, University of Delhi Rinku Kumari, PGT (Computer Science), Kendriya Vidyalaya, Sainik Vihar, Delhi Sajid Yousuf Bhat, Assistant Professor, University of Kashmir, J&K Sarnavi Mahesh, Research Scholar, Universita Del Salento, Italy Sharanjit Kaur, Associate Professor, Acharya Narendra Dev College, University of Delhi Sonali Gogate, Software Consultant, Pune, Maharashtra Tapasi Ray, Former Global IT Director, Huntsman Corporation, Singapore Vandana Tyagi, PGT (Computer Science), Kendriya Vidyalaya, JNU, Delhi Member-coordinator Rejaul Karim Barbhuiya, Assistant Professor, DESM, NCERT, Delhi Rationalised 2023-24 Prelims.indd 7 08-Apr-19 10:03:55 AM Acknowledgements The National Council of Educational Research and Training acknowledges the valuable contributions of the individuals and organisations involved in the development of Computer Science Textbook for Class XI. The Council expresses its gratitude to the syllabus development team including MPS Bhatia, Professor, Netaji Subhas Institute of Technology, Delhi; T. V. Vijay Kumar, Professor, School of Computer and Systems Sciences, Jawaharlal Nehru University, New Delhi; Zahid Raza, Associate Professor, School of Computer and Systems Sciences, Jawaharlal Nehru University, New Delhi; Vipul Shah, Principal Scientist, Tata Consultancy Services, and the CSpathshala team; Aasim Zafar, Associate Professor, Department of Computer Science, Aligarh Muslim University, Aligarh; Faisal Anwer, Assistant Professor, Department of Computer Science, Aligarh Muslim University, Aligarh; Smruti Ranjan Sarangi, Associate Professor, Department of Computer Science and Engineering, Indian Institute of Technology, Delhi; Vikram Goyal, Associate Professor, Indraprastha Institute of Information Technology (IIIT), Delhi; Tabrez Nafis, Assistant Professor, Jamia Hamdard, New Delhi and Mamur Ali, Assistant Professor, Central Institute of Educational Technology, NCERT, New Delhi. The Council is thankful to the following resource persons for editing, reviewing and refining the manuscript of this book — Mukesh Kumar, DPS RK Puram, Delhi; Gurpreet Kaur, G.D. Goenka Public School, Vasant Kunj, Delhi; Gautam Sarkar, Modern School, Barakhamba Road, Delhi; Aswin K. Dash, Mother’s International School, Delhi; Nancy Sehgal, Mata Jai Kaur Public School, Delhi; Ashish Kumar Srivastava, Assistant Professor, Department of Education in Science and Mathematics, NCERT, New Delhi; Neelima Gupta, Professor, Department of Computer Science, University of Delhi; Anamika Gupta, Assistant Professor, Shaheed Sukhdev College of Business Studies, University of Delhi. The Council further acknowledges the contributions of Anuja Krishn, Freelance Editor, for language editing. The Council also gratefully acknowledges the contributions of Meetu Sharma, Graphic Designer; Kanika Walecha, DTP Operator; and Pooja, Junior Project Fellow, in shaping this book. The contributions of the office of the APC, DESM and Publication division, NCERT, New Delhi, in bringing out this book are also duly acknowledged. The Council also acknowledges the contribution of Shilpa Mohan, Assistant Editor (Contractual) Publication Division, NCERT for copy editing this book. The efforts of Sadiq Saeed, DTP Operator (Contractual) and Sachin Tanwar, DTP Operator (Contractual), Publication Division, NCERT, are also acknowledged. Rationalised 2023-24 Prelims.indd 8 08-Apr-19 10:03:56 AM Contents Foreword iii Preface v Chapter 1 : Computer System 1 1.1 Introduction to Computer System 1 1.2 Evolution of Computer 3 1.3 Computer Memory 5 1.4 Data Transfer between Memory and CPU 7 1.5 Microprocessors 8 1.6 Data and Information 10 1.7 Software 14 1.8 Operating System 20 Chapter 2 : Encoding Schemes and Number System 27 2.1 Introduction 27 2.2 Number System 30 2.3 Conversion between Number Systems 34 Chapter 3 : Emerging Trends 45 3.1 Introduction 45 3.2 Artificial Intelligence (AI) 45 3.3 Big Data 49 3.4 Internet of Things (IoT) 51 3.5 Cloud Computing 53 3.6 Grid Computing 55 3.7 Blockchains 56 Chapter 4 : Introduction to Problem Solving 61 4.1 Introduction 61 4.2 Steps for Problem Solving 62 4.3 Algorithm 64 4.4 Representation of Algorithms 65 4.5 Flow of Control 70 4.6 Verifying Algorithms 77 4.7 Comparison of Algorithm 79 Rationalised 2023-24 Prelims.indd 9 08-Apr-19 10:03:56 AM x 4.8 Coding 80 4.9 Decomposition 81 Chapter 5 : Getting Started with Python 87 5.1 Introduction to Python 87 5.2 Python Keywords 90 5.3 Identifiers 91 5.4 Variables 91 5.5 Comments 92 5.6 Everything is an Object 93 5.7 Data Types 94 5.8 Operators 99 5.9 Expressions 104 5.10 Statement 106 5.11 Input and Output 107 5.12 Type Conversion 108 5.13 Debugging 112 Chapter 6 : Flow of Control 121 6.1 Introduction 121 6.2 Selection 122 6.3 Indentation 126 6.4 Repetition 127 6.5 Break and Continue Statement 132 6.6 Nested Loops 136 Chapter 7 : Functions 143 7.1 Introduction 143 7.2 Functions 145 7.3 User Defined Functions 146 7.4 Scope of a Variable 158 7.5 Python Standard Library 160 Chapter 8 : Strings 175 8.1 Introduction 175 8.2 Strings 175 8.3 String Operations 177 8.4 Traversing a String 180 8.5 String Methods and Built-in Functions 180 8.6 Handling Strings 184 Rationalised 2023-24 Prelims.indd 10 08-Apr-19 10:03:56 AM xi Chapter 9 : Lists 189 9.1 Introduction to List 189 9.2 List Operations 190 9.3 Traversing a List 192 9.4 List Methods and Built-in Functions 193 9.5 Nested Lists 195 9.6 Copying Lists 196 9.7 List as Arguments to Function 197 9.8 List Manipulation 199 Chapter 10 : Tuples and Dictionaries 207 10.1 Introduction to Tuples 207 10.2 Tuple Operations 209 10.3 Tuple Methods and Built-in Functions 211 10.4 Tuple Assignment 212 10.5 Nested Tuples 213 10.6 Tuple Handling 213 10.7 Introduction to Dictionaries 215 10.8 Dictionaries are Mutable 216 10.9 Dictionary Operations 217 10.10 Traversing a Dictionary 217 10.11 Dictionary Methods and Built-in functions 218 10.12 Manipulating Dictionaries 219 Chapter 11 : Societal Impact 229 11.1 Introduction 229 11.2 Digital Footprints 229 11.3 Digital Society and Netizen 231 11.4 Data Protection 235 11.5 Cyber Crime 239 11.6 Indian Information Technology Act (IT Act) 242 11.7 Impact on Health 242 Rationalised 2023-24 Prelims.indd 11 08-Apr-19 10:03:56 AM Rationalised 2023-24 Prelims.indd 12 08-Apr-19 10:03:56 AM Chapter 1 Computer System 1.1 Introduction to Computer System “A computer would deserve A computer is an electronic device that can be to be called intelligent if it programmed to accept data (input), process it and could deceive a human into generate result (output). A computer along with believing that it was human.” additional hardware and software together is called a –Alan Turing computer system. A computer system primarily comprises a central processing unit (CPU), memory, input/output devices and storage devices. All these components function together as a single unit to deliver the desired output. A computer system comes in various forms and sizes. It can vary from a high-end server to personal desktop, laptop, tablet computer, or a smartphone. Figure 1.1 shows the block diagram of a computer system. The directed lines represent the flow of data and signal between the components. Secondary Storage Devices Primary Memory In this chapter Input Control Unit Output »» Introduction to Device (CU) Device Computer System »» Evolution of Arithmetic Logic Computer Unit (ALU) »» Computer Memory Central Processing Unit (CPU) »» Data Transfer Figure 1.1: Components of a computer system between Memory and CPU 1.1.1 Central Processing Unit (CPU) »» Data and It is the electronic circuitry of a computer that carries Information out the actual processing and usually referred as the »» Microprocessors brain of the computer. It is commonly called processor »» Software also. Physically, a CPU can be placed on one or more »» Operating System microchips called integrated circuits (IC). The ICs comprise semiconductor materials. Rationalised 2023-24 Ch 1.indd 1 08-Apr-19 11:36:15 AM 2 Computer Science – Class xi The CPU is given instructions and data through programs. The CPU then fetches the program and data from the memory and performs arithmetic and logic Keyboard operations as per the given instructions and stores the result back to memory. While processing, the CPU stores the data as well as instructions in its local memory called registers. Mouse Registers are part of the CPU chip and they are limited in size and number. Different registers are used for storing data, instructions or intermediate results. Other than the registers, the CPU has two main Scanner components — Arithmetic Logic Unit (ALU) and Control Unit (CU). ALU performs all the arithmetic and logic operations that need to be done as per the instruction in a program. CU controls sequential instruction execution, Touch Screen interprets instructions and guides data flow through the computer’s memory, ALU and input or output devices. Figure 1.2: Input devices CPU is also popularly known as microprocessor. We will study more about it in section 1.5. 1.1.2 Input Devices The devices through which control signals are sent to a computer are termed as input devices. These devices convert the input data into a digital form that is acceptable by the computer system. Some examples of input devices include keyboard, mouse, scanner, touch screen, etc., as shown in Figure 1.2. Specially designed braille keyboards are also available to help the visually impaired for entering data into a computer. Besides, we Display monitor can now enter data through voice, for example, we can use Google voice search to search the web where we can input the search string through our voice. Data entered through input device is temporarily Speaker stored in the main memory (also called RAM) of the computer system. For permanent storage and future use, the data as well as instructions are stored permanently in additional storage locations called secondary memory. Printer 1.1.3 Output Devices The device that receives data from a computer system for display, physical production, etc., is called output 3D printer device. It converts digital information into human- understandable form. For example, monitor, projector, Figure 1.3: Output devices headphone, speaker, printer, etc. Some output devices Rationalised 2023-24 Ch 1.indd 2 08-Apr-19 11:36:15 AM Computer System 3 are shown in Figure 1.3. A braille display monitor is useful for a visually challenged person to understand the textual output generated by computers. A printer is the most commonly used device to get output in physical (hardcopy) form. Three types of commonly used printers are inkjet, laserjet and dot matrix. Now-a-days, there is a new type of printer called 3D-printer, which is used to build physical A punched card is a piece of stiff paper that replica of a digital 3D design. These printers are being stores digital data in used in manufacturing industries to create prototypes the form of holes at of products. Their usage is also being explored in the predefined positions. medical field, particularly for developing body organs. 1.2 Evolution of Computer From the simple calculator to a modern day powerful data processor, computing devices have evolved in a relatively short span of time. The evolution of computing devices in shown through a timeline in Figure 1.4 EDVAC/ENIAC Pascaline John Von Neumann introduced Blaize Pascal invented a mechanical the concept of stored program calculator known as Pascal calculator computer which was capable of or Pascaline to do addition and storing data as well as program subtraction of two numbers directly in the memory. The EDVAC and and multiplication and division through then the ENIAC computers were repeated addition and subtraction. developed based on this concept. Tabulating Machine Integrated Circuit Herman Hollerith designed An Integrated Circuit (IC) is 1642 a tabulating machine for 1945 a silicon chip which contains summarising the data stored entire electronic circuit on a on the punched card. It is very small area. The size of computer drastically reduced step towards programming. because of ICs. 1890 1970 1834 1947 Analytic Engine Transistor Charles Babbage invented Vacuum tubes were analytical engine, a replaced by transistors developed at Bell Labs, 500 BC mechanical computing device 1937 for inputting, processing, using semiconductor storing and displaying the materials. output, which is considered to form the basis of modern computers. Abacus Turing Machine Computing is attributed to The Turing machine concept was a the invention of ABACUS general purpose programmable almost 3000 years ago. It machine that was capable of solving was a mechanical device any problem by executing the capable of doing simple program stored on the punched cards. arithmetic calculations only. Figure 1.4: Timeline showing key inventions in computing technology Rationalised 2023-24 Ch 1.indd 3 08-Apr-19 11:36:15 AM 4 Computer Science – Class xi The Von Neumann architecture is shown in Figure 1.5. It consists of a Central Processing Unit (CPU) for processing arithmetic and logical instructions, a memory to store data and programs, input and output devices and communication channels to send or receive the output data. Electronic Numerical Integrator and Computer (ENIAC) is the first binary programmable Figure 1.5: Von Neumann architecture for computer based on Von Neumann the computer architecture. During the 1970s, Large Scale Integration (LSI) of electronic circuits allowed integration of complete CPU on a single chip, called microprocessor. Moore’s Law predicted exponential growth in the number In 1965, Intel co- of transistors that could be assembled in a single founder Gordon Moore microchip. In 1980s, the processing power of computers introduced Moore’s increased exponentially by integrating around 3 million Law which predicted components on a small-sized chip termed as Very that the number of transistors on a chip Large Scale Integration (VLSI). Further advancement in would double every two technology has made it feasible to fabricate high density years while the costs of transistors and other components (approx 106 would be halved. components) on a single IC called Super Large Scale Integration (SLSI) as shown in Figure 1.6. IBM introduced its first personal computer (PC) for the home user in 1981 and Apple introduced Macintosh 10,000,000,000 Number of Transistors per Integrated Circuit 1,000,000,000 Core 2 DUO Core i7 100,000,000 Intel Microprocessors Pentium IV Pentium II Pentium III 10,000,000 Pentium 1,000,000 486 486 100,000 Invention of the 386 Transistor 286 10,000 8086 1,000 4004 100 Doubles every 2 years 10 1 1940 1950 1960 1970 1980 1990 2000 2010 2020 Figure 1.6: Exponential increase in number of transistors used in ICs over time Rationalised 2023-24 Ch 1.indd 4 08-Apr-19 11:36:15 AM Computer System 5 machines in 1984. The popularity of the PC surged by the introduction of Graphical User Interface (GUI) based operating systems by Microsoft and others in place of computers with only command line interface, like UNIX or DOS. Around 1990s, the growth of World Wide Web (WWW) further accelerated mass usage of computers and thereafter computers have become an indispensable part of everyday life. Further, with the introduction of laptops, personal computing was made portable to a great extent. This was followed by smartphones, tablets and other personal digital assistants. These devices have leveraged the technological advancements in processor miniaturisation, faster memory, high speed data and connectivity mechanisms. The next wave of computing devices includes the wearable gadgets, such as smart watch, lenses, headbands, headphones, etc. Further, smart appliances are becoming a part of the Internet of Things (IoT), by leveraging the power of Artificial Intelligence (AI). 1.3 Computer Memory A computer system needs memory to store the data and instructions for processing. Whenever we talk about the ‘memory’ of a computer system, we usually talk about the main or primary memory. The secondary memory (also called storage device) is used to store data, instructions and results permanently for future use. 1.3.1 Units of Memory A computer system uses binary numbers to store and process data. The binary digits 0 and 1, which are the basic units of memory, are called bits. Further, these bits are grouped together to form words. A 4-bit word is called a Nibble. Examples of nibble are 1001, 1010, 0010, etc. A two nibble word, i.e., 8-bit word is called a byte, for example, 01000110, 01111100, 10000001, etc. Like any other standard unit, bytes are grouped together to make bigger chunks or units of memory. Table 1.1 shows different measurement units for digital data stored in storage devices. Rationalised 2023-24 Ch 1.indd 5 08-Apr-19 11:36:16 AM 6 Computer Science – Class xi Table 1.1 Measurement units for digital data Unit Description Unit Description KB (Kilobyte) 1 KB = 1024 Bytes PB (Petabyte) 1 PB = 1024 TB MB (Megabyte) 1 MB = 1024 KB EB (Exabyte) 1 EB = 1024 PB GB (Gigabyte) 1 GB = 1024 MB ZB (Zettabyte) 1 ZB = 1024 EB TB (Terabyte) 1 TB = 1024 GB YB (Yottabyte) 1 YB = 1024 ZB 1.3.2 Types of Memory Human beings memorise many things over a lifetime, and recall from memory to make a decision or some action. However, we do not rely on our memory completely, and we make notes and store important data and information using other media, such as notebook, manual, journal, document, etc. Similarly, computers have two types of memory — primary and secondary. (A) Primary Memory Primary memory is an essential component of a computer system. Program and data are loaded into the primary memory before processing. The CPU interacts directly with the primary memory to perform read or write operation. It is of two types viz. (i) Random Access Memory (RAM) and (ii) Read Only Memory (ROM). RAM is volatile, i.e., as long as the power is supplied to the computer, it retains the data in it. But as soon as the power supply is turned off, all the contents of RAM are wiped out. It is used to store data temporarily while the computer is working. Whenever the computer is started or a software application is launched, the required program and data are loaded into RAM for processing. RAM is usually referred to as main memory and it is faster than the secondary memory or storage devices. On the other hand, ROM is non-volatile, which means its contents are not lost even when the power is turned off. It is used as a small but faster permanent storage for the contents which are rarely changed. For Think and Reflect example, the startup program (boot loader) that loads the operating system into primary memory, is stored Suppose there is a computer with RAM in ROM. but no secondary (B) Cache Memory storage. Can we install RAM is faster than secondary storage, but not as fast a software on that computer? as a computer processor. So, because of RAM, a CPU Rationalised 2023-24 Ch 1.indd 6 08-Apr-19 11:36:16 AM Computer System 7 may have to slow down. To speed up the operations of the CPU, a very high speed memory is placed between the CPU and the primary memory known as cache. It stores the copies of the data from frequently accessed primary memory locations, thus, reducing the average time required to access data from primary memory. When the CPU needs some data, it first examines the cache. In case the requirement is met, it is read from the cache, otherwise the primary memory is accessed. (C) Secondary Memory Primary memory has limited storage capacity and Pen is either volatile (RAM) or read-only (ROM). Thus, a Drive computer system needs auxiliary or secondary memory to permanently store the data or instructions for future use. The secondary memory is non-volatile and has larger storage capacity than primary memory. It is slower and cheaper than the main memory. But, it CD/DVD cannot be accessed directly by the CPU. Contents of secondary storage need to be first brought into the main memory for the CPU to access. Examples of secondary memory devices include Hard Disk Drive (HDD), CD/ DVD, Memory Card, etc., as shown in Figure 1.7. However, these days, there are secondary storage devices like SSD which support very fast data transfer speed as compared to earlier HDDs. Also, data transfer between computers have become easier and simple due to the availability of small-sized and portable flash or pen drives. 1.4 Data Transfer between Memory and CPU Figure 1.7: Storage devices Data need to be transferred between the CPU and primary memory as well as between the primary and secondary memory. Data are transferred between different components of a computer system using physical wires called bus. For example, bus is used for data transfer between a USB port and hard disk or between a hard disk and main memory. Bus is of three types — (i) Data bus to transfer data between different components, (ii) Address bus to transfer addresses between CPU and main memory. The address of the memory location that the CPU wants to read or write from is specified in the address bus, Rationalised 2023-24 Ch 1.indd 7 08-Apr-19 11:36:16 AM 8 Computer Science – Class xi and (iii) Control bus to communicate control signals between different components of a computer. All these three buses collectively make the system bus, as shown in Figure 1.8. As the CPU interacts directly with main memory, any data entered from input device or the data to be accessed from hard disk needs to be placed in the main memory for further processing. Figure 1.8: Data transfer between components through The data is then transferred between system bus CPU and main memory using bus. The CPU places on the address bus, the address of the main memory location from which it wants to read data or to write data. While executing the instructions, the CPU specifies the read or write control signal through the control bus. As the CPU may require to read data from main memory or write data to main memory, a data bus is bidirectional. But the control bus and address bus are unidirectional. To write data into memory, the CPU places the data on the data bus, which is then written to the specific address provided through the address bus. In case of read operation, the CPU specifies the address, and the data is placed on the data bus by a dedicated hardware, called memory controller. The memory controller manages the flow of data into and out of the computer's main memory. 1.5 Microprocessors In earlier days, a computer's CPU used to occupy a large room or multiple cabinets. However, with advancement in technology, the physical size of CPU has reduced and it is now possible to place a CPU on a single microchip only. A processor (CPU) which is implemented on a single microchip is called microprocessor. Nowadays, almost all the CPUs are microprocessors. Hence, the terms are used synonymously for practical purpose. Microprocessor is a small-sized electronic component inside a computer that carries out various tasks involved in data processing as well as arithmetic and logical operations. These days, a microprocessor is built over an integrated circuit comprising millions of small components like resistors, transistors and diodes. Rationalised 2023-24 Ch 1.indd 8 08-Apr-19 11:36:16 AM Computer System 9 Microprocessors have evolved over time in terms of their increased processing capability, decreasing physical size and reduced cost. Currently available microprocessors are capable of processing millions of instructions per millisecond. Table 1.2 lists different types of microprocessors along with their generation, time period, and underlying technology since their inception in early 1970s. Table 1.2 Generations of Microprocessor Generation Era Chip Word Maximum Clock Cores Example* type size memory size speed First 1971-73 LSI 4 / 8 1 KB 108 KHz- Single Intel 8080 bit 200 KHz Second 1974-78 LSI 8 bit 1 MB Upto 2 MHz Single Motorola 6800 Intel 8085 Third 1979-80 VLSI 16 bit 16 MB 4 MHz - 6 Single Intel 8086 MHz Fourth 1981-95 VLSI 32 bit 4 GB Upto 133 Single Intel 80386 MHz Motorola 68030 Fifth 1995 till SLSI 64 bit 64 GB 533 MHz - Multicore Pentium, date 34 GHz Celeron, Xeon *few prominent examples are included. 1.5.1 Microprocessor Specifications Microprocessors are classified on the basis of different features which include chip type, word size, memory size, clock speed, etc. These features are briefly explained below: (A) Word Size Word size is the maximum number of bits that a microprocessor can process at a time. Earlier, a word was of 8 bits, as it was the maximum limit at that time. At present, the minimum word size is 16 bits and maximum word size is 64 bits. (B) Memory Size Depending upon the word size, the size of RAM varies. Activity 1.1 Initially, RAM was very small (4MB) due to 4/8 bits word size. As word size increased to 64 bits, it has become The maximum memory feasible to use RAM of size upto 16 Exabytes (EB). size of microprocessors of different generations (C) Clock Speed are given at Table 1.2. Computers have an internal clock that generates pulses Represent each of the memory size in terms (signals) at regular intervals of time. Clock speed simply of power of 2. means the number of pulses generated per second by the Rationalised 2023-24 Ch 1.indd 9 08-Apr-19 11:36:16 AM 10 Computer Science – Class xi Activity 1.2 clock inside a computer. The clock speed indicates the speed at which the computer can execute instructions. Find out the clock speed of the microprocessor Earlier, it was measured in Hertz (Hz) and Kilohertz of your computer and (kHz). But with advancement in technology and chip compare with that of density, it is now measured in Gigahertz (GHz), i.e., your peers? billions of pulses per second. (D) Cores Core is a basic computation unit of the CPU. Earlier processors had only one computation unit, thereby capable of performing only one task at a time. With the advent of multicore processor, it has become possible for the computer to execute multiple tasks, thereby increasing the system’s performance. CPU with two, four, and eight cores is called dual-core, quad-core and octa-core processor, respectively. 1.5.2 Microcontrollers The microcontroller is a small computing device which has a CPU, a fixed amount of RAM, ROM and other peripherals all embedded on a single chip as compared to microprocessor that has only a CPU on the chip. The structure of a microcontroller is shown in Figure 1.9. Keyboard, mouse, washing machine, digital camera, pendrive, remote controller, microwave are few examples of microcontrollers. As these are designed for specific tasks only, hence their size as well as cost is reduced. Because of the very small size of the microcontroller, it is embedded in another device or system to perform a specific functionality. For Clock CPU Memory example, the microcontroller in a fully automatic washing machine is used to control the washing cycle Bus System without any human intervention. The cycle starts with the filling of water, after which the clothes are Input Output soaked and washed; thereafter the water is drained I/O-ports and the clothes are spin dry. The simple use of microcontroller has permitted repetitive execution Figure 1.9: Structure of of tedious tasks automatically without any human microcontroller intervention, thereby saving precious time. 1.6 Data and Information A computer is primarily for processing data. A computer system considers everything as data, be it instructions, pictures, songs, videos, documents, etc. Data can also be Rationalised 2023-24 Ch 1.indd 10 08-Apr-19 11:36:16 AM Computer System 11 raw and unorganised facts that are processed to get meaningful information. So understanding the concept of data along with its different types is crucial to understand the overall functioning of a computer. Sometimes people use the terms data, information and knowledge interchangeably, which is incorrect. 1.6.1 Data and Its Types A computer system has many input devices, which provide it with raw data in the form of facts, concepts, instructions, etc., Internally everything is stored in binary form (0 and 1), but externally, data can be input to a computer in the text form consisting of English alphabets A–Z, a–z, numerals 0 – 9, and special symbols like @, #, etc. Data can be input in other languages too or it can be read from the files. The input data may be from different sources, hence it may be in different formats. For example, an image is a collection of Red, Green, Blue (RGB) pixels, a video is made up of frames, and a fee receipt is made of numeric and non-numeric characters. Primarily, there are three types of data. (A) Structured Data Data which follows a strict record structure and is easy to comprehend is called structured data. Such data with pre-specified tabular format may be stored in a data file to access in the future. Table 1.3 shows structured data related to monthly attendance of students maintained by the school. Table 1.3 Structured data: Monthly attendance records of students Roll No Name Month Attendance (in %) R1 Mohan May 95 R2 Sohan May 75 R3 Sheen May 92 R4 Geet May 82 R5 Anita May 97 R1 Mohan July 98 R2 Sohan July 65 R3 Sheen July 85 R4 Geet July 94 R5 Anita July 85 Rationalised 2023-24 Ch 1.indd 11 08-Apr-19 11:36:16 AM 12 Computer Science – Class xi It is clear that such data is organised in row/column Think and Reflect format and is easily understandable. Structured data Can you give some may be sorted in ascending or descending order. In the more examples of unstructured data? example, attendance data is sorted in increasing order on the column ‘month’. Other examples of structured data include sales transactions, online railway ticket bookings, ATM transactions, etc. (B) Unstructured Data Data which are not organised in a pre-defined record format is called unstructured data. Examples include audio and video files, graphics, text documents, social media posts, satellite images, etc. Figure 1.10 shows a report card with monthly attendance record details sent to parents. Such data are unstructured as they consist of textual contents as well as graphics, which do not follow a specific format. Attendance record for the month of July School Logo Attended: Guardian’s Signature Principal’s Signature Figure 1.10: Unstructured data: Monthly attendance record (C) Semi-structured Data Data which have no well-defined structure but maintains internal tags or markings to separate data elements are called semi-structured data. Examples include email document, HTML page, comma separated values (csv file), etc. Figure 1.11 shows an example of semi-structured data containing student’s month-wise attendance details. In this example, there is no specific format for each attendance Name: Mohan Month: July Class: XI Attendance: 98 Name: Sohan Month: July Class: XI Attendance: 65 record. Here, each data value Name: Sheen Month: July Class: XI Attendance: 85 is preceded by a tag (Name, Name: Geet Month: May Class: XI Attendance: 82 Name: Geet Month: July Class: XI Attendance: 94 Month, Class, Attendance) for Figure 1.11: Semi-structured data: Month-wise total the interpretation of the data attendance record maintained by the school value while processing. Rationalised 2023-24 Ch 1.indd 12 08-Apr-19 11:36:17 AM Computer System 13 1.6.2 Data Capturing, Storage and Retrieval Activity 1.3 To process data, we need to first input or capture Visit some of the places the data. This is followed by its storage in a file or a like bank, automobile database so that it can be used in the future. Whenever showroom, shopping data is to be processed, it is first retrieved from the mall, tehsil office, etc., file or database so that we can perform further actions and find out 2 – 3 names of tools or instruments on it. used to capture data in (A) Data Capturing digital format. It involves the process of gathering data from different sources in the digital form. This capturing may vary from simple instruments like keyboard, barcode readers used at shopping outlets (Figure 1.12), comments or posts over social media, remote sensors on an earth orbiting satellite, etc. Sometimes, heterogeneity among data sources makes data capturing a complex task. Figure 1.12: Capturing (B) Data Storage data using barcode reader It is the process of storing the captured data for processing later. Now-a-days data is being produced at a very high rate, and therefore data storage has become a challenging task. However, the decrease in the cost of digital storage devices has helped in simplifying this task. There are numerous digital storage devices available in the market like as shown in Figure 1.7. Data keeps on increasing with time. Hence, the storage devices also require to be upgraded periodically. In large organisations, computers with larger and faster storage called data servers are deployed to store vast amount of data. Such dedicated computers help in processing data efficiently. However, the cost (both hardware and software) of setting up a data server as well as its maintenance is high, especially for small organisations and startups. (C) Data Retrieval It involves fetching data from the storage devices, for its processing as per the user requirement. As databases grow, the challenges involved in search and retrieval of the data in acceptable time, also increase. Minimising data access time is crucial for faster data processing. 1.6.3 Data Deletion and Recovery One of the biggest threats associated with digital data is its deletion. The storage devices can malfunction or crash down resulting in the deletion of data stored. Users can Rationalised 2023-24 Ch 1.indd 13 08-Apr-19 11:36:17 AM 14 Computer Science – Class xi Activity 1.4 accidentally erase data from storage devices, or a hacker or malware can delete the digital data intentionally. Explore possible ways of recovering deleted Deleting digitally stored data means changing the data or data from a details of data at bit level, which can be very time- corrupted device. consuming. Therefore, when any data is simply deleted, its address entry is marked as free, and that much space is shown as empty to the user, without actually deleting the data. In case data gets deleted accidentally or corrupted, there arises a need to recover the data. Recovery of the data is possible only if the contents or memory space marked as deleted have not been overwritten by some other data. Data recovery is a process of retrieving deleted, corrupted and lost data from secondary storage devices. There are usually two security concerns associated with data. One is its deletion by some unauthorised person or software. These concerns can be avoided by limiting access to the computer system and using passwords for user accounts and files, wherever possible. There is also an option of encrypting files to protect them from unwanted modification. The other concern is related to unwanted recovery of Activity 1.5 data by unauthorised user or software. Many a times, Create a test file and we discard our old, broken or malfunctioning storage then delete it using Shift+Delete from devices without taking care to delete data. We assume the keyboard. Now that the contents of deleted files are permanently recover the file using removed. However, if these storage devices fall into the the methods you have hands of mischief-mongers, they can easily recover explored in Activity 1.4. data from such devices; this poses a threat to data confidentiality. This concern can be mitigated by using proper tools to delete or shred data before disposing off any old or faulty storage device. 1.7 Software Till now, we have studied about the physical components or the hardware of the computer system. But the hardware is of no use on its own. Hardware needs to be operated by a set of instructions. These sets of instructions are referred to as software. It is that component of a computer system, which we cannot Rationalised 2023-24 Ch 1.indd 14 08-Apr-19 11:36:17 AM Computer System 15 touch or view physically. It comprises the instructions and data to be processed using the computer hardware. The computer software and hardware complete any task together. The software comprises a set of instructions which on execution deliver the desired outcome. In other words, each software is written for some computational purpose. Some examples of software include operating systems like Ubuntu or Windows 7/10, word processing tool like LibreOffice or Microsoft Word, video player like VLC Player, photo editors like GIMP and LibreOffice draw. A document or image stored on the hard disk or pen drive is referred to as a soft-copy. Once printed, the Hardware refers to the physical components document or an image is called a hard-copy. of the computer system which can be seen and 1.7.1 Need of Software touched. For example, The sole purpose of a software is to make the computer RAM, keyboard, hardware useful and operational. A software knows how printer, monitor, CPU, etc. On the other hand, to make different hardware components of a computer software is a set of work and communicate with each other as well as with instructions and data the end-user. We cannot instruct the hardware of a that makes hardware computer directly. Software acts as an interface between functional to complete the desired task. human users and the hardware. Depending on the mode of interaction with hardware and functions to be performed, the software can be broadly classified into three categories viz. (i) System software, (ii) Programming tools and (iii) Application software. 1.7.2 System Software The software that provides the basic functionality to operate a computer by interacting directly with its constituent hardware is termed as system software. A system software knows how to operate and use different hardware components of a computer. It provides services directly to the end user, or to some other software. Examples of system software include operating systems, system utilities, device drivers, etc. (A) Operating System As the name implies, the operating system is a system software that operates the computer. An operating system is the most basic system software, without which other software cannot work. The operating system manages other application programs and provides Rationalised 2023-24 Ch 1.indd 15 08-Apr-19 11:36:17 AM 16 Computer Science – Class xi access and security to the users of the system. Some of the popular operating systems are Windows, Linux, Macintosh, Ubuntu, Fedora, Android, iOS, etc. (B) System Utilities Software used for maintenance and configuration of the computer system is called system utility. Some system utilities are shipped with the operating system for example disk defragmentation tool, formatting utility, system restore utility, etc. Another set of utilities are those which are not shipped with the operating system but are required to improve the performance of the system, for example, anti-virus software, disk cleaner tool, disk compression software, etc. (C) Device Drivers As the name signifies, the purpose of a device driver is to Activity 1.6 ensure proper functioning of a particular device. When Ask your teacher to it comes to the overall working of a computer system, help you locate any two device drivers installed the operating system does the work. But everyday new on your computer. devices and components are being added to a computer system. It is not possible for the operating system alone to operate all of the existing and new devices, where each device has diverse characteristics. The responsibility for overall control, operation and management of a particular device at the hardware level is delegated to its device driver. The device driver acts as an interface between the device and the operating system. It provides required services by hiding the details of operations performed at the hardware level of the device. Just like a language translator, a device driver acts as a mediator between the operating system and the attached device. The categorisation of software is shown in Figure 1.13. 1.7.3 Programming Tools In order to get some work done by the computer, we need to give instructions which are applied on the input data to get the desired outcome. Computer languages are developed Figure 1.13: Categorisation of software for writing these instructions. Rationalised 2023-24 Ch 1.indd 16 08-Apr-19 11:36:17 AM Computer System 17 It is important to understand here that computers and Notes humans understand completely different languages. While humans are able to write programs in high-level language, computers understand machine language. There is a continuous need for conversion from high level to machine level language, for which translators are needed. Also, to write the instruction, code editors (e.g., IDLE in Python) are needed. We will briefly describe here the programming languages, language translators and program development tools. (A) Classification of Programming Languages It is very difficult for a human being to write instructions in the form of 1s and 0s. So different types of computer programming languages are developed to simplify the coding. Two major categories of computer programming languages are low-level languages and high-level languages. Low-level languages are machine dependent languages and include machine language and assembly language. Machine language uses 1s and 0s to write instructions which are directly understood and executed by the computer. But writing a code in machine language is difficult as one has to remember all operation codes and machine addresses. Also finding errors in the code written in machine language is difficult. To simplify the writing of code, assembly language was developed that allowed usage of English-like words and symbols instead of 1s and 0s. But one major drawback of writing a code in this language is that the code is computer specific, i.e., the code written for one type of CPU cannot be used for another type of CPU. High level languages are machine independent and are simpler to write code into. Instructions are using English like sentences and each high level language follows a set of rules, similar to natural languages. However, these languages are not directly understood by the computer. Hence, translators are needed to translate high-level language codes into machine language. Examples of high level language include C++, Java, Python, etc. (B) Language Translators As the computer can understand only machine language, a translator is needed to convert program written in assembly or high level language to machine Rationalised 2023-24 Ch 1.indd 17 08-Apr-19 11:36:17 AM 18 Computer Science – Class xi Code in high language. The program code written in assembly or level language high-level language is called source code. The source (Source Code) code is converted by a translator into the machine understandable form called object (machine) code as depicted in Figure 1.14. Language translater As we have different types of computer languages, different translators are needed to convert the source code to machine code. The three types of translators used in computing systems are assembler, compiler Code in machine language and interpreter. (Object Code) The translator used to convert the code written Figure 1.14: Translator to in assembly language to machine language is called convert source code into assembler. Each assembler can understand a specific object code microprocessor instruction set only and hence, the machine code is not portable. We also need translators to convert codes written in high level language (source code) to machine understandable form (machine code) for execution by the computer. Compiler converts the source code into machine code. If the code follows all syntactic rules of the language, then it is executed by the computer. Once translated, the compiler is not needed. An interpreter translates one line at a time instead of the whole program at one go. Interpreter takes one line, converts it into executable code if the line is syntactically correct, and then it repeats these steps for all lines in the source code. Hence, interpreter is always needed whenever a source code is to be executed. (C) Program Development Tools Whenever we decide to write a program, we need a text editor. An editor is a software that allows us to create a text file where we type instructions and store the file as the source code. Then an appropriate translator is used to get the object code for execution. In order to simplify the program development, there are software called Integrated Development Environment (IDE) consisting of text editor, building tools and debugger. A program can be typed, compiled and debugged from the IDE directly. Besides Python IDLE, Netbeans, Eclipse, Atom, Lazarus are few other examples of IDEs. Debugger, as the name implies, is the software to detect and correct errors in the source code.