ISC Computer Science3
ISC Computer Science3
There will be two papers in the subject: (b) Binary valued quantities; basic postulates
Paper I: Theory……….. 3 hours….70 marks of Boolean algebra; operations AND, OR and
NOT; truth tables.
Paper II: Practical…….. 3 hours….30 marks
PAPER I –THEORY – 70 MARKS (c) Basic theorems of Boolean algebra
(e.g. duality, idempotence, commutativity,
Paper I shall be of 3 hours duration and be divided
associativity, distributivity, operations with 0
into two parts.
and 1, complements, absorption, involution);
Part I (20 marks): This part will consist of De Morgan’s theorem and its applications;
compulsory short answer questions, testing reducing Boolean expressions to sum of
knowledge, application and skills relating to the products and product of sums forms;
entire syllabus. Karnaugh maps (up to four variables).
Part II (50 marks): This part will be divided into
three Sections, A, B and C. Candidates will be Verify the laws of Boolean algebra using
required to answer two questions out of three from truth tables. Inputs, outputs for circuits like
Section A (each carrying 10 marks) and two half and full adders, majority circuit etc.,
questions out of three from Section B (each carrying SOP and POS representation; Maxterms &
10 marks) and two questions out of three from Minterms, Canonical and Cardinal
Section C (each carrying 5 marks). Therefore, a total representation, reduction using Karnaugh
of six questions are to be answered in Part II. maps and Boolean algebra.
273
3. Implementation of algorithms to solve 8. Statements, Scope
problems
Statements; conditional (if, if else, if else if,
The students are required to do lab assignments switch case, ternary operator), looping (for,
in the computer lab concurrently with the while, do while, continue, break); grouping
lectures. Programming assignments should be statements in blocks, scope and visibility of
done such that each major topic is covered in at variables.
least one assignment. Assignment problems
9. Methods
should be designed so that they are sufficiently
challenging. Students must do algorithm design, Methods (as abstractions for complex user
address correctness issues, implement and defined operations on objects), formal arguments
execute the algorithm in Java and debug where and actual arguments in methods; different
necessary. behaviour of primitive and object arguments.
Static method and variables. The this Operator.
Self explanatory.
Examples of algorithmic problem solving using
4. Programming in Java (Review of Class XI methods (number problems, finding roots of
Sections B and C) algebraic equations etc.).
Note that items 4 to 13 should be introduced 10. Arrays, Strings
almost simultaneously along with classes and
Structured data types – arrays (single and multi-
their definitions.
dimensional), address calculations, strings.
While reviewing, ensure that new higher order Example algorithms that use structured data types
problems are solved using these constructs. (e.g. searching, finding maximum/minimum,
sorting techniques, solving systems of linear
5. Objects
equations, substring, concatenation, length,
(a) Objects as data (attributes) + behaviour access to char in string, etc.).
(methods); object as an instance of a class.
Storing many data elements of the same type
Constructors.
requires structured data types – like arrays.
(b) Analysis of some real-world programming Access in arrays is constant time and does not
examples in terms of objects and classes. depend on the number of elements. Address
calculation (row major and column major),
(c) Basic input/output using Scanner and Printer
Sorting techniques (bubble, selection, insertion).
classes from JDK; input/output exceptions.
Structured data types can be defined by classes –
Tokens in an input stream, concept of
String. Introduce the Java library String class
whitespace, extracting tokens from an input
and the basic operations on strings (accessing
stream (String Tokenizer class).
individual characters, various substring
6. Primitive values, Wrapper classes, Types and operations, concatenation, replacement, index of
casting operations). The class StringBuffer should be
introduced for those applications that involve
Primitive values and types: byte, int, short, long,
heavy manipulation of strings.
float, double, boolean, char. Corresponding
wrapper classes for each primitive type. Class as 11. Recursion
type of the object. Class as mechanism for user
Concept of recursion, simple recursive methods
defined types. Changing types through user
(e.g. factorial, GCD, binary search, conversion of
defined casting and automatic type coercion for
representations of numbers between different
some primitive types.
bases).
7. Variables, Expressions
Many problems can be solved very elegantly by
Variables as names for values; named constants observing that the solution can be composed of
(final), expressions (arithmetic and logical) and solutions to ‘smaller’ versions of the same
their evaluation (operators, associativity, problem with the base version having a known
precedence). Assignment operation; difference simple solution. Recursion can be initially
between left hand side and right hand side of motivated by using recursive equations to define
assignment. certain methods. These definitions are fairly
obvious and are easy to understand. The
274
definitions can be directly converted to a implementing the interface. Conversion of
program. Emphasize that any recursion must Infix to Prefix and Postfix notations.
have a base case. Otherwise, the computation Basic algorithms and programs using the
can go into an infinite loop. above data structures.
The tower of Hanoi is a very good example of Data structures should be defined as abstract
how recursion gives a very simple and elegant data types with a well-defined interface (it is
solution where as non-recursive solutions are instructive to define them using the Java
quite complex. interface construct).
(b) Single linked list (Algorithm and
SECTION C
programming), binary trees, tree traversals
(Conceptual).
Inheritance, Interface, Polymorphism, Data
structures, Computational complexity The following should be covered for each
data structure:
12. Inheritance, Interfaces and Polymorphism
Linked List (single): insertion, deletion,
(a) Inheritance; super and derived classes;
reversal, extracting an element or a sublist,
member access in derived classes;
checking emptiness.
redefinition of variables and methods in
subclasses; abstract classes; class Object; Binary trees: apart from the definition the
protected visibility. Subclass polymorphism following concepts should be covered: root,
and dynamic binding. internal nodes, external nodes (leaves),
height (tree, node), depth (tree, node), level,
Emphasize inheritance as a mechanism to
size, degree, siblings, sub tree,
reuse a class by extending it. Inheritance
completeness, balancing, traversals (pre,
should not normally be used just to reuse
post and in-order).
some methods defined in a class but only
when there is a genuine specialization (or 14. Complexity and Big O notation
subclass) relationship between objects of the Concrete computational complexity; concept of
super class and that of the derived class. input size; estimating complexity in terms of
(b) Interfaces in Java; implementing interfaces methods; importance of dominant term;
through a class; interfaces for user defined constants, best, average and worst case.
implementation of behaviour. Big O notation for computational complexity;
Motivation for interface: often when creating analysis of complexity of example algorithms
reusable classes some parts of the exact using the big O notation (e.g. Various searching
implementation can only be provided by the and sorting algorithms, algorithm for solution of
final end user. For example, in a class that linear equations etc.).
sorts records of different types the exact
comparison operation can only be provided PAPER II: PRACTICAL – 30 MARKS
by the end user. Since only he/she knows
which field(s) will be used for doing the This paper of three hours’ duration will be evaluated
comparison and whether sorting should be in by the Visiting Examiner appointed locally and
ascending or descending order be given by approved by the Council.
the user of the class. The paper shall consist of three programming
Emphasize the difference between the Java problems from which a candidate has to attempt any
language construct interface and the word one. The practical consists of the two parts:
interface often used to describe the set of
method prototypes of a class. 1. Planning Session
2. Examination Session
13. Data structures
The total time to be spent on the Planning session and
(a) Basic data structures (stack, queue, circular the Examination session is three hours.
queue, dequeue); implementation directly A maximum of 90 minutes is permitted for the
through classes; definition through an Planning session and 90 minutes for the Examination
interface and multiple implementations by session.
275
Candidates are to be permitted to proceed to the NOTE:
Examination Session only after the 90 minutes of
the Planning Session are over. Algorithm should be expressed clearly using any
standard scheme such as a pseudo code.
Planning Session
The candidates will be required to prepare an EQUIPMENT
algorithm and a hand written Java program to solve There should be enough computers to provide for a
the problem. teaching schedule where at least three-fourths of the
Examination Session time available is used for programming.
The program handed in at the end of the Planning Schools should have equipment/platforms such that
session shall be returned to the candidates. The all the software required for practical work runs
candidates will be required to key-in and execute the properly, i.e. it should run at acceptable speeds.
Java program on seen and unseen inputs individually
on the Computer and show execution to the Visiting Since hardware and software evolve and change very
Examiner. A printout of the program listing including rapidly, the schools may have to upgrade them as
output results should be attached to the answer script required.
containing the algorithm and handwritten program. Following are the recommended specifications as of
This should be returned to the examiner. The
now:
program should be sufficiently documented so that
the algorithm, representation and development The Facilities:
process is clear from reading the program. Large
differences between the planned program and the • A lecture cum demonstration room with a
printout will result in loss of marks. MULTIMEDIA PROJECTOR/ an LCD and
O.H.P. attached to the computer.
Teachers should maintain a record of all the
assignments done as part of the practical work • A white board with white board markers should
through the year and give it due credit at the time of be available.
cumulative evaluation at the end of the year. Students
are expected to do a minimum of twenty-five • A fully equipped Computer Laboratory that
assignments for the year. allows one computer per student.
• Internet connection for accessing the World
EVALUATION: Wide Web and email facility.
Marks (out of a total of 30) should be distributed as
given below: • The computers should have a minimum of
1 GB RAM and a P IV or higher processor. The
Continuous Evaluation
basic requirement is that it should run the
Candidates will be required to submit a work file operating system and Java programming system
containing the practical work related to programming (Java compiler, Java runtime environment, Java
assignments done during the year. development environment) at acceptable speeds.
Programming assignments done 10 marks
throughout the year (Internal • Good Quality printers.
Evaluation) Software:
Programming assignments done 5 marks
throughout the year (Visiting Examiner) • Any suitable Operating System can be used.
Terminal Evaluation • JDK 6 or later.
Solution to programming problem on 15 Marks • Documentation for the JDK version being used.
the computer
• A suitable text editor. A development
Marks should be given for choice of algorithm and environment with a debugger is preferred
implementation strategy, documentation, correct (e.g. BlueJ, Eclipse, NetBeans). BlueJ is
output on known inputs mentioned in the question recommended for its ease of use and simplicity.
paper, correct output for unknown inputs available
only to the examiner.
276
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.
277