On this page
ICSE Computer Applications is the subject where half the marks are earned at a keyboard during the year. The other half come from a two-hour paper that asks you to predict the output of code you cannot run. This post sets out the Java topics CISCE lists for ICSE 2027, how internal marks are given, what changes for students sitting the exam in 2028, and how to trace String and search code by hand.
What Java topics are in the ICSE 2027 syllabus?
The CISCE ICSE 2027 Computer Applications syllabus gives Class X "one written paper of two hours duration carrying 100 marks and Internal Assessment of 100 marks." The theory units are:
Revision of Class IX: object-oriented concepts, data types, operators, input, Math library methods, conditionals, loops and nested for loops.
Class as the basis of all computation: objects, member variables and methods, primitive and composite types.
User-defined methods: call by value (with programs) and call by reference (definition only), pure and impure, static and non-static methods, and overloading.
Constructors: default and parameterised constructors and constructor overloading.
Library classes: wrapper classes, autoboxing and unboxing, and named methods such as parseInt, isDigit, isLetter and toUpperCase.
Encapsulation: private, protected and public access, and the scope of class, instance, argument and local variables.
Arrays: one- and two-dimensional arrays, bubble and selection sort, linear and binary search (sorting and searching on one-dimensional arrays only), and row, column and diagonal sums.
String handling: trim, length, charAt, indexOf, lastIndexOf, concat, equals, compareTo, replace, substring, startsWith, endsWith, valueOf and a few more.
Programs may be written in BlueJ (3.2 or later) or any editor compatible with JDK 5.0 or later.
How are the 100 internal assessment marks given?
The syllabus asks for "a minimum of 20 laboratory assignments" in the year, each with a list of variables, comments and the program's output. Your subject teacher and an External Examiner each give 50 marks, using four criteria: class design (10), variable description (10), coding and documentation (10), and execution or output (20).
What changes for ICSE 2028?
If you are in Class 9 now, read the newer document. The CISCE ICSE 2028 Computer Applications syllabus reorders the units, limits arrays to one dimension, drops the separate encapsulation unit and adds "Disruptive technologies": cyber hygiene, cyber laws, artificial intelligence, blockchain, the Internet of Things, robotics, 5G and cloud computing, with a project. Its internal marks become 80 for assignments and 20 for a written project.
Worked example: tracing String methods
Predict the output:
String s = "COMPUTER";
System.out.println(s.indexOf('P'));
System.out.println(s.substring(3, 6));
System.out.println(s.charAt(s.length() - 1));
System.out.println("APPLE".compareTo("APRICOT"));
System.out.println("CAT".compareTo("CATS"));Index the letters: C=0, O=1, M=2, P=3, U=4, T=5, E=6, R=7. So indexOf('P') prints 3.
substring(3, 6) takes indices 3, 4 and 5: PUT.
length() is 8, so charAt(7) is R.
compareTo works character by character. According to Oracle's String documentation, at the first position where two strings differ it returns the difference of the two character values. "APPLE" and "APRICOT" first differ at index 2: 'P' (80) minus 'R' (82) gives -2.
"CAT" and "CATS" never differ within the shorter string, so compareTo returns the difference in lengths, 3 − 4 = -1.
We ran this code to confirm the five outputs.
Worked example: a binary search trace
Search for 30 in the sorted array {3, 8, 14, 21, 30, 42, 55} using low, high and mid = (low + high) / 2:
low = 0, high = 6, mid = 3. a[3] = 21 is less than 30, so low = 4.
low = 4, high = 6, mid = 5. a[5] = 42 is greater than 30, so high = 4.
low = 4, high = 4, mid = 4. a[4] = 30. Found at index 4 after three comparisons.
Common mistakes: running binary search on an unsorted array; writing mid = (high − low) / 2; comparing Strings with == instead of equals(); and forgetting that indexOf returns -1 when the character is absent.
A practice routine for the term
Daily, 15 minutes: trace one short program on paper, then run it and compare.
Weekly: two lab assignments with a variable description table and comments, written the day you finish them.
Fortnightly: one sorting and one searching program, written without notes.
Before the exam: a past paper's output questions under time, with no computer.
For more String practice, see our post on ICSE Java String programs. If you go on to ISC, our post on ISC computer science sets out the Class 12 syllabus. And if an idea such as why call by value cannot change the caller's variable is unclear, the Fermi Concept Library covers every concept in computing with its own lesson.
Today, write the eight indices of "COMPUTER" on paper and predict the output of s.substring(2) before running it.



