ISC Class 12 Computer Science Syllabus
ISC Class 12 Computer Science Syllabus
CLASS XI
There will be two papers in the subject: bases using English or pseudo code. These
algorithms are also good examples for defining
Paper I: Theory………….. 3 hours…70 marks
different functions in a class modelling numbers
Paper II: Practical………. 3 hours…30 marks (when programming is discussed). For addition
and subtraction (1’s complement and 2’s
PAPER I –THEORY – 70 MARKS complement) use the analogy with decimal
numbers, emphasize how carry works (this will be
Paper I shall be of 3 hours duration and be divided useful later when binary adders are discussed).
into two parts.
2. Encodings
Part I (20 marks): This part will consist of
compulsory short answer questions, testing (a) Binary encodings for integers and real
numbers using a finite number of bits (sign-
knowledge, application and skills relating to the entire
magnitude, 2’s complement, mantissa-
syllabus.
exponent notation).
Part II (50 marks): This part will be divided into
Signed, unsigned numbers, least and most
three Sections, A, B and C. Candidates will be
significant bits. Sign-magnitude
required to answer two questions out of three from
representation and its shortcomings (two
Section A (each carrying 10 marks) and two questions representations for 0, addition requires extra
out of three from Section B (each carrying 10 marks) step); two’s-complement representation.
and two questions out of three from Section C (each Operations (arithmetic, logical, shift), discuss
carrying 5 marks). Therefore, a total of six questions the basic algorithms used for the arithmetic
are to be answered in Part II. operations. Floating point representation:
SECTION A normalized scientific notation, mantissa-
exponent representation, binary point (discuss
Basic Computer Hardware and Software trade-off between size of mantissa and
1. Numbers exponent). Single and double precision.
Representation of numbers in different bases and (b) Characters and their encodings (e.g. ASCII,
interconversion between them (e.g. binary, octal, ISCII, Unicode).
decimal, hexadecimal). Addition and subtraction Discuss the limitations of the ASCII code in
operations for numbers in different bases. representing characters of other languages.
Introduce the positional system of representing Discuss the Unicode representation for the
numbers and the concept of a base. Discuss the local language. Java uses Unicode, so strings
conversion of representations between different in the local language can be used (they can be
249
displayed if fonts are available) – a simple 5. Objects
table lookup for local language equivalents
(a) Objects as data (attributes) + behaviour
for Latin (i.e. English) character strings may
(methods or methods); object as an instance of
be done. More details on Unicode are
a class.
available at www.unicode.org.
Difference between object and class should be
3. Propositional logic, Hardware implementation,
made very clear. BlueJ (www.bluej.org) and
Arithmetic operations
Greenfoot (www.greenfoot.org) can be used
(a) Propositional logic, well-formed formulae, for this purpose.
truth values and interpretation of well formed
(b) Analysis of some real-world programming
formulae, truth tables.
examples in terms of objects and classes.
Propositional variables; the common logical
Use simple examples like a calculator, date,
connectives ((not)(negation), ∧ number etc. to illustrate how they can be
(and)(conjunction), ∨ (or)(disjunction), treated as objects that behave in certain well-
⇒ (implication), (equivalence)); definition defined ways and how the interface provides a
of a well-formed formula (wff); representation way to access behaviour. Illustrate behaviour
of simple word problems as wff (this can be changes by adding new methods, deleting old
used for motivation); the values true and methods or modifying existing methods.
false; interpretation of a wff; truth tables;
satisfiable, unsatisfiable and valid formulae. (c) Basic concept of a virtual machine; Java
Virtual Machine (JVM); compilation and
(b) Logic and hardware, basic gates (AND, NOT, execution of Java programs (the javac and
OR) and their universality, other gates java programs).
(NAND, NOR, XOR, XNOR), half adder, full
adder. The JVM is a machine but built as a program
and not through hardware. Therefore it is
Show how the logic in (a) above can be called a virtual machine. To run, JVM
realized in hardware in the form of gates. machine language programs require an
These gates can then be combined to interpreter. The advantage is that such JVM
implement the basic operations for arithmetic. machine language programs (.class files) are
Tie up with the arithmetic operations on portable and can run on any machine that
integers discussed earlier in 2 (a). has the java program.
SECTION B (d) Compile time and run time errors; basic
The programming element in the syllabus is aimed at concept of an exception, the Exception class,
algorithmic problem solving and not merely rote try-catch, throw, throws and finally.
learning of Java syntax. The Java version used Differentiate between compile time and run
should be 5.0 or later. For programming, the students time errors. Run time errors crash the
can use any text editor and the javac and java program. Recovery is possible by the use of
programs or any other development environment: for exceptions. Explain how an exception object
example, BlueJ, Eclipse, NetBeans etc. BlueJ is is created and passed up until a matching
strongly recommended for its simplicity, ease of use catch is found. This behaviour is different
and because it is very well suited for an ‘objects first’ from the one where a value is returned by a
approach. deeply nested method call.
4. Introduction to Object Oriented Programming 6. Primitive values, Wrapper classes, Types and
using Java casting
Note that topics 5 to 12 should be introduced Primitive values and types: byte, int, short, long,
almost simultaneously along with Classes and float, double, boolean, char. Corresponding
their definitions. wrapper classes for each primitive type. Class as
type of the object. Class as mechanism for user
defined types. Changing types through user defined
250
casting and automatic type coercion for some different behaviour of primitive and object
primitive types. arguments. Static methods and variables. The this
operator. Examples of algorithmic problem
Ideally, everything should be a class; primitive
solving using methods (number problems, finding
types are defined for efficiency reasons; each
roots of algebraic equations etc.).
primitive type has a corresponding wrapper class.
Classes as user defined types. In some cases types Methods are like complex operations where the
are changed by automatic coercion or casting – object is implicitly the first argument. Operator
e.g. mixed type expressions. However, casting in this denotes the current object. Methods typically
general is not a good idea and should be avoided, return values. Illustrate the difference between
if possible. primitive values and object values as arguments
(changes made inside methods persist after the
7. Variables, Expressions call for object values). Static definitions as class
Variables as names for values; named constants variables and class methods visible and shared by
(final), expressions (arithmetic and logical) and all instances. Need for static methods and
their evaluation (operators, associativity, variables. Introduce the main method – needed to
precedence). Assignment operation; difference begin execution. Constructor as a special kind of
between left-hand side and right-hand side of method; the new operator; multiple constructors
with different argument structures; constructor
assignment.
returns a reference to the object.
Variables denote values; variables are already
defined as attributes in classes; variables have 10. Arrays, Strings
types that constrain the values it can denote. Structured data types – arrays (single and multi-
Difference between variables denoting primitive dimensional), strings. Example algorithms that
values and object values – variables denoting use structured data types (searching, finding
objects are references to those objects. The maximum/minimum, sorting techniques, solving
assignment operator = is special. The variable on systems of linear equations, substring,
the LHS of = denotes the memory location while concatenation, length, access to char in string,
the same variable on the RHS denotes the contents etc.).
of the location e.g. i=i+2.
Storing many data elements of the same type
NOTE: Library functions for solving expressions requires structured data types – like arrays.
may be used as and when required. Access in arrays is constant time and does not
8. Statements, Scope depend on the number of elements. Sorting
techniques (bubble, selection, insertion),
Statements; conditional (if, if else, if else if, switch Structured data types can be defined by classes –
case) ternary operator, looping (for, while, do String. Introduce the Java library String class and
while), continue, break; grouping statements in the basic operations on strings (accessing
blocks, scope and visibility of variables. individual characters, various substring
Describe the semantics of the conditional and operations, concatenation, replacement, index of
looping statements in detail. Evaluation of the operations).
condition in conditional statements. SECTION C
Nesting of blocks. Variables with block scope, 11. Basic input/output Data File Handling
method scope, class scope. Visibility rules when (Binary and Text)
variables with the same name are defined in
different scopes. (a) Basic input/output using Scanner and Printer
classes.
9. Methods and Constructors Input/output exceptions. Tokens in an input
Methods and Constructors (as abstractions for stream, concept of whitespace, extracting
complex user defined operations on objects), tokens from an input stream (String Tokenizer
methods as mechanisms for side effects; formal class). The Scanner class can be used for
arguments and actual arguments in methods; input of various types of data (e.g. int, float,
251
char etc.) from the standard input stream. correctness issues, implement and execute the
Similarly, the Printer class handles output. algorithm in Java and debug where necessary.
Only basic input and output using these
Self-explanatory.
classes should be covered.
14. Packages
Discuss the concept of a token (a delimited
continuous stream of characters that is Definition, creation of packages, importing user
meaningful in the application program – e.g. defined packages, interaction of objects across
words in a sentence where the delimiter is the packages.
blank character). This naturally leads to the Java Application Programming Interface (API),
idea of delimiters and in particular development of applications using user defined
whitespace and user defined characters as packages.
delimiters. As an example show how the
StringTokenizer class allows one to extract a 15. Trends in computing and ethical issues
sequence of tokens from a string with user
defined delimiters. (a) Artificial Intelligence, Internet of Things,
Virtual Reality and Augmented Reality.
(b) Data File Handling. Brief understanding of the above and their
Need for Data file, Input Stream, Output impact on Society.
Stream, Byte Stream (FileInputStream and (b) Cyber Security, privacy, netiquette, spam,
FileOutputStream), Character Stream phishing.
(FileReader, FileWriter), Operations- Brief understanding of the above.
Creation, Reading, Writing, Appending, and
Searching. (c) Intellectual property, Software copyright and
patents and Free Software Foundation.
12. Recursion
Intellectual property and corresponding laws
Concept of recursion, simple recursive methods and rights, software as intellectual property.
(e.g. factorial, GCD, binary search, conversion of
representations of numbers between different Software copyright and patents and the
bases). difference between the two; trademarks;
software licensing and piracy. free Software
Many problems can be solved very elegantly by Foundation and its position on software,
observing that the solution can be composed of Open Source Software, various types of
solutions to ‘smaller’ versions of the same licensing (e.g. GPL, BSD).
problem with the base version having a known
simple solution. Recursion can be initially Social impact and ethical issues should be
motivated by using recursive equations to define discussed and debated in class. The important
certain methods. These definitions are fairly thing is for students to realise that these are
obvious and are easy to understand. The complex issues and there are multiple points
definitions can be directly converted to a of view on many of them and there is no single
‘correct’ or ‘right’ view.
program. Emphasize that any recursion must have
a base case. Otherwise, the computation can go
into an infinite loop. PAPER II: PRACTICAL – 30 MARKS
13. Implementation of algorithms to solve This paper of three hours duration will be evaluated
problems internally by the school.
The students are required to do lab assignments in The paper shall consist of three programming
the computer lab concurrently with the lectures. problems from which a candidate has to attempt any
Programming assignments should be done such one. The practical consists of the two parts:
that each major topic is covered in at least one
(1) Planning Session
assignment. Assignment problems should be
designed so that they are sufficiently challenging (2) Examination Session
and make the student do algorithm design, address
252
The total time to be spent on the Planning session and 4. Simulate Adders using Arduino Controllers and
the Examination session is three hours. Components.
A maximum of 90 minutes is permitted for the
5. Simulate a converter of Binary to Decimal
Planning session and 90 minutes for the Examination
number systems using Arduino Controllers and
session. Candidates are to be permitted to proceed
Components.
to the Examination Session only after the 90
minutes of the Planning Session are over. 6. Develop a console-based application using Java
for Movie Ticket Reservation.
Planning Session
7. Develop a console-based application using Java to
The candidates will be required to prepare an
encrypt and decrypt a message (using cipher text,
algorithm and a hand-written Java program to solve
Unicode-exchange, etc).
the problem.
8. Develop a console-based application using Java to
Examination Session
find name of the bank and branch location from
The program handed in at the end of the Planning IFSC.
session shall be returned to the candidates. The
candidates will be required to key-in and execute the 9. Develop a console-based application using Java to
Java program on seen and unseen inputs individually calculate taxable income (only direct tax).
on the Computer and show execution to the examiner. 10. Develop a console-based application using Java to
A printout of the program listing, including output develop a simple text editor (text typing, copy,
results should be attached to the answer script cut, paste, delete).
containing the algorithm and handwritten program.
This should be returned to the examiner. The program EVALUATION
should be sufficiently documented so that the
algorithm, representation and development process is Marks (out of a total of 30) should be distributed as
clear from reading the program. Large differences given below:
between the planned program and the printout will
result in loss of marks. Continuous Evaluation
Teachers should maintain a record of all the Candidates will be required to submit a work file
assignments done as part of the practical work containing the practical work related to programming
throughout the year and give it due credit at the time assignments done during the year and ONE project.
of cumulative evaluation at the end of the year.
Programming assignments done 10 marks
Students are expected to do a minimum of twenty
throughout the year
assignments for the year and ONE project based on
the syllabus. Project Work (based on any topic from the 5 marks
syllabus)
List of Suggested Projects:
PRESENTATION / MODEL BASED/ APPLICATION Terminal Evaluation
BASED Solution to programming problem on 15 Marks
1. Creating an expert system for road-traffic the computer
management (routing and re-routing of vehicles
depending on congestion). (Marks should be given for choice of algorithm and
implementation strategy, documentation, correct output
2. Creating an expert system for medical diagnosis
on the basis of symptoms and prescribe a suitable on known inputs mentioned in the question paper,
treatment. correct output for unknown inputs available only to the
examiner).
3. Creating a security system for age-appropriate
access to social media.
253
CLASS XII
There will be two papers in the subject: De Morgan’s laws; law of implication (p ⇒ q
Paper I: Theory……….. 3 hours….70 marks ≡ ~p ∨ q); law of biconditional ((p ⇔ q) ≡
(p ⇒ q) ∧ (q ⇒ p)); identity (p ≡ p); law of
Paper II: Practical…….. 3 hours….30 marks negation (~ (~p) ≡ p); law of excluded middle
(p ∨~p ≡ true); law of contradiction (p∧~p ≡
PAPER I –THEORY – 70 MARKS
false); tautology and contingency
Paper I shall be of 3 hours duration and be divided simplification rules for ∧, ∨. Converse,
into two parts. inverse and contra positive. Chain rule,
Part I (20 marks): This part will consist of Modus ponens.
compulsory short answer questions, testing (b) Binary valued quantities; basic postulates
knowledge, application and skills relating to the entire of Boolean algebra; operations AND, OR and
syllabus. NOT; truth tables.
Part II (50 marks): This part will be divided into (c) Basic theorems of Boolean algebra
three Sections, A, B and C. Candidates will be (e.g. duality, idempotence, commutativity,
required to answer two questions out of three from associativity, distributivity, operations with 0
Section A (each carrying 10 marks) and two questions and 1, complements, absorption, involution);
out of three from Section B (each carrying 10 marks) De Morgan’s theorem and its applications;
and two questions out of three from Section C (each reducing Boolean expressions to sum of
carrying 5 marks). Therefore, a total of six questions products and product of sums forms;
are to be answered in Part II. Karnaugh maps (up to four variables).
SECTION A Verify the laws of Boolean algebra using truth
1. Boolean Algebra tables. Inputs, outputs for circuits like half
and full adders, majority circuit etc., SOP and
(a) Propositional logic, well formed formulae, POS representation; Maxterms & Minterms,
truth values and interpretation of well formed Canonical and Cardinal representation,
formulae (wff), truth tables, satisfiable, reduction using Karnaugh maps and Boolean
unsatisfiable and valid formulae. Equivalence algebra.
laws and their use in simplifying wffs.
2. Computer Hardware
Propositional variables; the common logical
(a) Elementary logic gates (NOT, AND, OR,
connectives (~ (not)(negation), ∧
NAND, NOR, XOR, XNOR) and their use in
(and)(conjunction), ∨ (or)(disjunction), ⇒
circuits.
(implication), ⇔ (biconditional); definition of
a well-formed formula (wff); `representation (b) Applications of Boolean algebra and logic
of simple word problems as wff (this can be gates to half adders, full adders, encoders,
used for motivation); the values true and decoders, multiplexers, NAND, NOR as
false; interpretation of a wff; truth tables; universal gates.
satisfiable, unsatisfiable and valid formulae.
Show the correspondence between Boolean
Equivalence laws: commutativity of ∧, ∨; methods and the corresponding switching circuits
associativity of ∧, ∨; distributivity; or gates. Show that NAND and NOR gates are
universal by converting some circuits to purely
NAND or NOR gates.
254
SECTION B whitespace, extracting tokens from an input
stream (String Tokenizer class).
The programming element in the syllabus (Sections B
and C) is aimed at algorithmic problem solving and 6. Primitive values, Wrapper classes, Types and
not merely rote learning of Java syntax. The Java casting
version used should be 5.0 or later. For programming,
Primitive values and types: byte, int, short, long,
the students can use any text editor and the javac and
float, double, boolean, char. Corresponding
java programs or any other development environment:
wrapper classes for each primitive type. Class as
for example, BlueJ, Eclipse, NetBeans etc. BlueJ is
type of the object. Class as mechanism for user
strongly recommended for its simplicity, ease of use
defined types. Changing types through user
and because it is very well suited for an ‘objects first’
defined casting and automatic type coercion for
approach.
some primitive types.
3. Implementation of algorithms to solve
7. Variables, Expressions
problems
Variables as names for values; named constants
The students are required to do lab assignments in
(final), expressions (arithmetic and logical) and
the computer lab concurrently with the lectures.
their evaluation (operators, associativity,
Programming assignments should be done such
precedence). Assignment operation; difference
that each major topic is covered in at least one
between left hand side and right hand side of
assignment. Assignment problems should be
assignment.
designed so that they are sufficiently challenging.
Students must do algorithm design, address 8. Statements, Scope
correctness issues, implement and execute the Statements; conditional (if, if else, if else if,
algorithm in Java and debug where necessary. switch case, ternary operator), looping (for, while,
Self explanatory. do while, continue, break); grouping statements in
blocks, scope and visibility of variables.
4. Programming in Java (Review of Class XI
Sections B and C) 9. Methods
Note that items 4 to 13 should be introduced Methods (as abstractions for complex user defined
almost simultaneously along with classes and operations on objects), formal arguments and
their definitions. actual arguments in methods; different behaviour
of primitive and object arguments. Static method
While reviewing, ensure that new higher order
and variables. The this Operator. Examples of
problems are solved using these constructs.
algorithmic problem solving using methods
5. Objects (number problems, finding roots of algebraic
equations etc.).
(a) Objects as data (attributes) + behaviour
(methods); object as an instance of a class. 10. Arrays, Strings
Constructors.
Structured data types – arrays (single and multi-
(b) Analysis of some real-world programming dimensional), address calculations, strings.
examples in terms of objects and classes. Example algorithms that use structured data types
(e.g. searching, finding maximum/minimum,
(c) Basic input/output using Scanner and Printer
sorting techniques, solving systems of linear
classes from JDK; input/output exceptions.
equations, substring, concatenation, length, access
Tokens in an input stream, concept of
to char in string, etc.).
255
Storing many data elements of the same type abstract classes; class Object; protected
requires structured data types – like arrays. visibility. Subclass polymorphism and
Access in arrays is constant time and does not dynamic binding.
depend on the number of elements. Address
Emphasize inheritance as a mechanism to
calculation (row major and column major),
reuse a class by extending it. Inheritance
Sorting techniques (bubble, selection, insertion).
should not normally be used just to reuse
Structured data types can be defined by classes –
some methods defined in a class but only
String. Introduce the Java library String class and
when there is a genuine specialization (or
the basic operations on strings (accessing
subclass) relationship between objects of the
individual characters, various substring
super class and that of the derived class.
operations, concatenation, replacement, index of
operations). The class StringBuffer should be (b) Interfaces in Java; implementing interfaces
introduced for those applications that involve through a class; interfaces for user defined
heavy manipulation of strings. implementation of behaviour.
256
(b) Single linked list (Algorithm and Candidates are to be permitted to proceed to the
programming), binary trees, tree traversals Examination Session only after the 90 minutes of
(Conceptual). the Planning Session are over.
The following should be covered for each data Planning Session
structure:
The candidates will be required to prepare an
Linked List (single): insertion, deletion, algorithm and a hand written Java program to solve
reversal, extracting an element or a sublist, the problem.
checking emptiness.
Examination Session
Binary trees: apart from the definition the
The program handed in at the end of the Planning
following concepts should be covered: root,
session shall be returned to the candidates. The
internal nodes, external nodes (leaves),
candidates will be required to key-in and execute the
height (tree, node), depth (tree, node), level,
Java program on seen and unseen inputs individually
size, degree, siblings, sub tree, completeness,
on the Computer and show execution to the Visiting
balancing, traversals (pre, post and in-order).
Examiner. A printout of the program listing including
14. Complexity and Big O notation output results should be attached to the answer script
containing the algorithm and handwritten program.
Concrete computational complexity; concept of
This should be returned to the examiner. The program
input size; estimating complexity in terms of
should be sufficiently documented so that the
methods; importance of dominant term; constants,
algorithm, representation and development process is
best, average and worst case.
clear from reading the program. Large differences
Big O notation for computational complexity; between the planned program and the printout will
analysis of complexity of example algorithms result in loss of marks.
using the big O notation (e.g. Various searching
Teachers should maintain a record of all the
and sorting algorithms, algorithm for solution of
assignments done as part of the practical work through
linear equations etc.).
the year and give it due credit at the time of
PAPER II: PRACTICAL – 30 MARKS cumulative evaluation at the end of the year. Students
This paper of three hours’ duration will be evaluated are expected to do a minimum of twenty-five
by the Visiting Examiner appointed locally and assignments for the year.
approved by the Council. EVALUATION:
The paper shall consist of three programming Marks (out of a total of 30) should be distributed as
problems from which a candidate has to attempt any given below:
one. The practical consists of the two parts:
Continuous Evaluation
1. Planning Session
Candidates will be required to submit a work file
2. Examination Session containing the practical work related to programming
The total time to be spent on the Planning session and assignments done during the year.
the Examination session is three hours. Programming assignments done 10 marks
A maximum of 90 minutes is permitted for the throughout the year (Internal Evaluation)
Planning session and 90 minutes for the Examination
session. Programming assignments done 5 marks
throughout the year (Visiting Examiner)
257
Terminal Evaluation • A white board with white board markers should
be available.
Solution to programming problem on 15 Marks
the computer • A fully equipped Computer Laboratory that
allows one computer per student.
Marks should be given for choice of algorithm and
implementation strategy, documentation, correct output • Internet connection for accessing the World
on known inputs mentioned in the question paper, Wide Web and email facility.
correct output for unknown inputs available only to the • The computers should have a minimum of
examiner. 1 GB RAM and a P IV or higher processor. The
NOTE: basic requirement is that it should run the
Algorithm should be expressed clearly using any operating system and Java programming system
standard scheme such as a pseudo code. (Java compiler, Java runtime environment, Java
development environment) at acceptable speeds.
EQUIPMENT
• Good Quality printers.
There should be enough computers to provide for a
teaching schedule where at least three-fourths of the Software:
time available is used for programming. • Any suitable Operating System can be used.
Schools should have equipment/platforms such that all • JDK 6 or later.
the software required for practical work runs properly, • Documentation for the JDK version being used.
i.e. it should run at acceptable speeds. • A suitable text editor. A development
Since hardware and software evolve and change very environment with a debugger is preferred
rapidly, the schools may have to upgrade them as (e.g. BlueJ, Eclipse, NetBeans). BlueJ is
required. recommended for its ease of use and simplicity.
258
SAMPLE TABLE FOR PRACTICAL WORK
Assessment of Assessment of the Practical Examination TOTAL MARKS
Practical File (To be evaluated by the Visiting Examiner only) (Total Marks are to
Unique be added and
Identification Internal Visiting Algorithm Java Program with Hard Output entered by the
S. No.
Number (Unique Evaluation Examiner internal Copy Visiting Examiner)
ID) of the candidate 10 Marks 5 Marks Documentation (printout)
3 Marks 7 Marks 2 Marks 3 Marks 30 Marks
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
259