SCIENCE (71)

CLASS IX

There will be one paper of two hours duration (ii) Representations for integers, real numbers, carrying 80 Marks and Internal Assessment of limitations of finite representations. 20 marks. (iii) Internal structure of a computer, a simple The paper will be divided into two Sections A and B. load and store computer and its Section A (20 marks): This section will consist of machine language, instruction format, compulsory short answer questions, testing registers, program counter, instruction knowledge, application and skills relating to register; register addressing modes, elementary/fundamental aspects of the entire syllabus. instruction cycle, assembly language for the same computer, simple algorithms in Section B (60 marks): This section will consist of assembly language. questions based on programming. There will be a choice of questions and candidates will be required to The teachers must review the place notation for answer four questions from this section. decimal numbers, then make students count and do arithmetic ( and subtraction) with base PART I -THEORY 2 and 8. This develops intuition for conversion of numbers from one base to another. Emphasize the 1. Computer hardware: parts of a computer and finiteness of representations when only limited their functions space is available - a , and word can be introduced at this stage to talk about sizes. Give CPU, the clock, cache memory, primary memory, examples to enable students to understand the secondary memory, input and output devices, maximum and minimum sized numbers that can communication devices (the aim is not to be represented in a given number of . Students describe/discuss an exhaustive list of devices but can write simple programs to keep increasing the to understand what parts are present in a typical value of an integer till it overflows and determine computer and what the function of each part is). the number of bits to store numbers of that type. Teachers can open a computer and show the Discuss different ways to represent negative various parts; explain how the motherboard numbers (signed magnitude, ones complement becomes a kind of 'central coordinator' where all and twos complement). Introduce sign, mantissa, the others link up; point out the various chips on radix, exponent notation and how real the motherboard that are responsible for the numbers can be represented (sign * mantissa * different functions - CPU, memory, clock, boot radix exponent ). Discuss normalized and ROM, etc. non-normalized representations, 32-bit and 64-bit representations. In (i) it is useful to introduce Similarly, it is good to show students a floppy coding systems for other languages - like ISCII disk and hard disk from the inside (an old (for Indian languages) and Unicode as a standard non-functional disk can be used for this purpose). for all languages of the world. In (iii) a simple Peripheral devices should also be shown from the simulator can be used which 'inside', if possible. has load, store, arithmetic, simple conditional jumps, jump instructions, simple input output. The 2. Data representation and internal computer idea is to give a clear understanding of how a structure typical computer works, without going into too (i) Number systems, base of a number system - much detail. The student can write simple decimal, binary, octal, hexadecimal programs using the instruction set of the machine representation, conversion between various so that they understand the need for high level representations, character representations languages. This will also clarify the basic idea of a (ASCII, ISCII, Unicode). stored program where program is treated as data. 57 3. Computer software 5. Algorithms The boot process, operating system (resource (i) Concept of an algorithm. management and command processor), file (ii) Properties of an algorithm (finite, definite, system. terminating, precise). (i) Boot process, operating systems - resource (iii) Basic ideas of the complexity of an algorithm management, command processing. - space complexity, time complexity. (ii) Directories, files and hierarchical file system. A number of problems should be introduced to familiarize the student with the idea of various (iii) Programming languages (machine language, ways in which operations on data yield solutions assembly language, high level language). to problems. (Please refer to topic 6). (iv) Compilers and interpreters. The problems should use different forms of data - (v) Application software. numeric, nonnumeric, structured. One natural way to visualize an OS is as a Students should be asked to focus upon what are software layer which creates a virtual machine the outputs required, the inputs needed and work that is much more useable than the bare machine. out the solutions to the problems. This involves giving the user a high level Informal structured English can be used to write command interface and the management of the the solutions. raw machine resources (like memory, CPU etc.) Students should be asked to visualize sample data so that they can be used efficiently. The languages for the problem especially for the extreme cases. at different levels (machine, assembly, higher) can They should be asked to trace the algorithms to be motivated by a discussion based on the see if the expected output is obtained. contents of 2 (iii) above and topic 6 below. Application software is best introduced through This would help stabilize the concept of application software that the student will be using algorithms. like browsers, spreadsheets, word processing etc., Simple algorithms for number problems can be this can be integrated with the discussion in discussed here. These can be coded in the topic 7. programming language that is covered as part of topic 6. Simple concrete complexity can be 4. Social context of computing and ethical issues discussed so that students understand that not all (i) Intellectual property and corresponding laws algorithms are the same with respect to time and and rights, software as intellectual property. space complexity. Also, briefly discuss space-time tradeoffs . (ii) Software patents, copyrights, and trademarks, software licensing and piracy. 6. Programming Using a High Level Language (iii) Free software foundation and its position on The programming element in the syllabus is aimed software, open source software. at problem solving and not on merely rote learning of the commands and syntax of (iv) Privacy, email etiquette. particular programming languages. Students have There can be very interesting discussions in the the option to use either BASIC or C++ in order to class regarding the ethical issues. There can be implement the high level language concepts and discussions on copyright, fair use, a program as algorithms and to use them for solving problems. free speech and Digital Millennium Copyright While choosing BASIC care must be taken to Act. The students can gather more information choose a standard version that has “block if from the net. The stress should be on following structures”, “functions through which parameters good etiquette and ethical practices. may be passed and values returned”. Very old

58 versions using “goto statements” must not be In the beginning the solutions should be written in used. Care must be taken that ‘standard and a freely invented structured form of English. The recent’ versions of the languages are used on the informal structured English constructs should not computer. It is recommended that students be too high level – they should be at a level where mention the version of the language being used they can be unambiguously carried out – which while writing answers in order to avoid means they are at par with programming language ambiguity. For example, software such as constructs. For example, primitive constructs like Microsoft Quick BASIC, Borland Turbo C++, minimum or maximum of a set of numbers, sort Visual C++ or GNU C++ on Linux can be used. etc. should not be allowed (see examples below). Such compound constructs should be introduced The emphasis here should be on problem solving. as abstractions, that is as functions or procedures. The design approach here may vary. The users of In the process of writing the solutions, motivate QBASIC should use the structured programming and informally introduce: approach while C++ users may use the object- oriented approach. - How the real world presents us with different types of data (numeric, non-numeric, boolean, It must be remembered that the language structured). (QBASIC/ C++) is just a vehicle for expressing solutions. - The notion of using a variable to hold data. The object-oriented techniques are recommended - How the assignment operation is used to as students learn these very naturally and quickly. change the data a variable denotes. Once learnt they are very easy to use. - How operations on the variable actually operate on the data. Simple demonstration programs can be executed on the computer to illustrate various concepts as - How input and output are needed. they are introduced. - How the sequence of operations on data can (i) Primitive data types supported by the be abstracted out (as an algorithm) and be language (integers, floating point numbers, repeated on different data sets. characters, booleans etc. - will depend on the - The concept of a processor (the teacher) and a language), variables (and their declaration - store (the blackboard) by mechanically based on language), assignment, difference tracing/executing the solutions. between the left-hand side and right-hand side - How the same kind of repetitive operation of an assignment. sequences seem to appear again and again in (ii) Expressions - arithmetic and logical, the solutions (conditionals, loops). evaluation of expressions, type of an - How some solutions can be reused in solving expression (depends on language). Operators, other problems. associativity and precedence of operators. Throughout this topic the informal structured (iii) Statements, blocks (where relevant), scope English constructs of algorithms should be shown and visibility of variables. to correspond to similar constructs in the (iv) Conditional statements (if and if-then-else), language. Programs should be written for all the switch, break, default. examples. Students should run all the programs (v) Loops (for, while-do, do-while). discussed in class in the lab. Some of these programs will be done only after the necessary (vi) Simple input/output using standard concepts have been introduced. input/output. Sample examples: The teachers should introduce problem solving a) Multiplication as repeated addition. through numerous examples and informally familiarize the students with the idea of various b) Finding if a number is a prime number. ways in which operations on data yield solutions c) Find the maximum or minimum of 3 numbers, to problems. The examples should use different 10 numbers, a given set of n numbers forms of data (numeric, non-numeric, structured). (requires input/output). 59 d) Ordering (ascending or descending) a set of 3 (ii) Basic introduction to the Internet, browsing, numbers; a set of 10 numbers; a given set of n email. numbers. Try to reuse what is done in c). Students should be encouraged to use e) Finding the number of vowels in a given to write the assignments, project reports, create sentence (composite data, non-numeric data). banners and placards for school events. They will f) Finding the number of words in a given automatically learn to use the word processors and sentence. spreadsheets, etc. g) Finding out who has got the maximum Students should be encouraged to log on to the aggregate marks in the class after an exam in Internet to gather material for their projects. all the subjects (structured data, accessing A number of interesting assignments can also be elements within structured data). given in this section. 7. Computers in everyday life (i) Familiarity with software for word processing, databases, spreadsheets, making presentations. CLASS X

There will be one paper of two hours duration (iv) Computer logic, Boolean operations, logical carrying 80 Marks and Internal Assessment of operators (NOT, AND, OR, XOR) and their 20 marks. truth tables. The paper will be divided into two Sections A and B. The following points should be discussed: Section A (20 marks): This section will consist of a. Some interesting real life examples can be compulsory short answer questions, testing taken to introduce propositional logic and knowledge, application and skills relating to fundamental Boolean operations. elementary/fundamental aspects of the entire syllabus. b. These can be connected to problem solving and programming. Section B (60 marks): This section will consist of c. Verification of fundamental laws of Boolean questions based on programming. There will be a algebra using truth tables. choice of questions and candidates will be required to answer four questions from this section. d. Writing inputs and outputs for a circuit like half adder and writing the SOP expression. PART I -THEORY e. Using Boolean algebra to reduce expressions. f. Drawing logic gate diagrams for the given 1. Computer Structure expression. (i) Logic gates (NOT, AND, OR, XOR) and their g. The finiteness of representations should be use in computers. emphasized to show that real numbers and fractions (that is rational numbers) are only (ii) Review of number systems (binary, decimal, approximated and cannot be represented octal, hexadecimal), representation for exactly in some cases. For example, consider different types - integers, float, characters. not terminating decimal representations of (iii) Simple binary arithmetic, including addition, fractions and representations of irrational subtraction, multiplication and division. numbers like π.

60 2. Review of Programming (i) Functions / subroutines as procedural abstractions. Using functions/subroutines in Review of programming in BASIC or in C++ from programs. Class IX. (ii) Arguments and argument passing in (i) Primitive data types supported by the functions/subroutines. language (integers, floating point numbers, (iii) Scope of variables. characters, booleans etc. - will depend on the language), variables (and their declaration - The concepts to be emphasized are: based on language), assignment, difference • How functions/subroutines help in solving between the left-hand side and right-hand side larger and complex problems. of an assignment. • How the same code can be reused from (ii) Expressions - arithmetic and logical, various points in a program. evaluation of expressions, type of an • expression (depends on language). Operators, Parameter passing (pass by value/pass by associativity and precedence of operators. reference). • (iii) Statements, blocks (where relevant), scope Return values. and visibility of variables. • Scope and visibility of variables. (iv) Conditional statements (if and if-then-else), • The examples done in Class IX can be used to switch, break, default. motivate the need for abstracting out and capturing functionality used repeatedly in (v) Loops (for, while-do, do-while). multiple places. In each example, the (vi) Simple input/output using standard complexity of actually executing the function input/output. should be analyzed - what happens in the Topics 5 and 6 of Class IX syllabus should be worst case and what happens on average. revised briefly. By now, students should be Students should run the algorithms on reasonably adept at problem solving using multiple instances of random data to convince QBASIC/C++. themselves that the analytical approach matches what they observe. 3. Advanced Programming Examples: The programming element in the syllabus is aimed a) Use minimum and maximum functions of n not at problem solving and on merely rote numbers to arrange n numbers in learning of the commands and syntax of ascending/descending order. particular programming languages. Students have the option to use either BASIC or C++ in order to b) Use a search function for a given search implement algorithms and to use them for solving element from a given point to solve problems problems. While choosing BASIC, care must be like finding number of vowels in a sentence, taken to choose a standard version that has number of words in a sentence etc. “block if structures”, “functions through which Those using object oriented program can parameters may be passed and values returned”. introduce classes and member functions at this Very old versions using “goto statements” must point. not be used. Care must be taken that ‘standard and recent’ versions of the languages are used on (iv) Structured types, arrays as an example of a the computer - it is recommended that students structured type. Use of arrays in sorting and mention the version of the language being used searching. Two-dimensional arrays. Use of while writing answers in order to avoid two-dimensional arrays to represent matrices. ambiguity. For example, software such as Matrix arithmetic using arrays. Use of arrays Microsoft Quick BASIC, Borland Turbo C++, to solve linear equations (Gauss elimination Visual C++ or GNU C++ on Linux can be used. method).

61 The concepts involved are: The students should understand why the • How a large amount of data of the same ASCII code is needed. type can be stored and accessed by using In QBASIC there are library functions for one variable name and a subscript. inter conversion but in C++ simple • How complex problems can be solved assignment from char to int and vice-versa easily with the help of arrays. e.g. will do the job. Simple string and text Frequency counts processing problems like: substring problems, Selection sort search problems in a text, frequency problems in text can be used for motivation. Linear search (viii)Distinction between compile time and run Binary search time errors. Run time errors due to finite • School timetable and matrices can be used representations - overflow, underflow. Other to introduce two-dimensional arrays. run time errors. To begin with, some simple examples can be Self-explanatory. used: (ix) Basic ideas about linking, loading, execution. • Finding sum/difference of two matrices. Self-explanatory. • Finding the sum of the elements of rows and columns of a matrix. 4. Documentation of programs (v) Review of input/output using standard input Need for good documentation; good and standard output from Class IX. documentation practices; standards and naming Input/output using sequential files. Opening, conventions. closing files. Creating and deleting files. The teachers can show an undocumented program Formatting output. Concept of a token and and then the same program properly documented, separator. Extracting tokens from the input. with good naming conventions. Experiments can Only sequential file programs need to be done be done on how much time it takes for making in QBASIC. In C++ formatted data may be changes to the program (so that it does something written on to the streams. Programs for extra) and trying to understand the program. creating files, reading them, updating them and manipulating them should be done. 5. Practical Work (vi) Characters, ASCII representation, strings as a Regular programming in labs. should supplement composite data type; functions on strings every topic that is taught in the classroom. The students will be expected to invent algorithmic (ex. length, substring, concatenate, equality, solutions expressed in C++ or Basic to solve accessing individual characters in a string, problems and then actually implement and run the inserting a string in another string at a given program to get answers. location). The student will also be required to do a project (vii)Simple type casting for primitive types; that involves significant programming effort. inter-conversion between character/string types and numeric types. Self-explanatory.

62