★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
ICSE Class 10 · Computer Applications (Java) · Worksheets 2027
These ICSE Computer Applications worksheets give one sheet to each of the eight Class 10 chapters, in 2027 syllabus order. Every sheet is worth 22 marks and uses the shapes of the real paper: a one-mark MCQ, three two-mark parts and a 15-mark program. The answer key sits right under each sheet, with a reason for every short answer and a full program that was compiled and run in Java 21. In our mini batch a fresh sheet like these is set every week and marked live.
Live online · 8 worksheets · 22 marks each · answer keys run in Java · a new sheet every week in class · first class free
Start here
The ICSE Java course where a worksheet like these is set and marked every week, the Class 11 and 12 Computer Science course for students continuing to ISC, and the data structures course for the student who finishes Sheet 7 wanting harder arrays.

The batch / ICSE CA
All eight chapters in a mini batch of up to six, with a fresh 22-mark worksheet every week, marked on screen.
Open the course →
Next step / ISC
For students moving on to ISC Computer Science, where the same practice habit meets longer programs.
Open the course →
Beyond the syllabus / DSA
For the student who enjoyed the sorting sheet and wants to compare algorithms properly.
Open the course →Ans. The short version
ICSE Computer Applications worksheets work best when there is one per chapter and each copies the paper's own shapes: a one-mark MCQ like Question 1, two-mark output, error and definition parts like Question 2, and a 15-mark program like Section B. This page gives eight original Java worksheets for the 2027 syllabus, one per chapter, each worth 22 marks, with the answer key directly below and every program run in Java. Sit each in about 25 minutes, then mark it honestly. Modern Age Coders sets and marks a new sheet every week in a Tuesday and Wednesday mini batch in India, or one to one.
Q1. How is each worksheet set out?
Each sheet takes one chapter and asks it in the five shapes the board uses. Do the sheet with the key covered, mark it against the key, and redo anything you lost marks on two days later.
| Part | Shape | Marks | Mirrors in the paper |
|---|---|---|---|
| 1 | Multiple choice | 1 | Section A, Question 1 |
| 2 to 4 | Output, error, definition or trace | 2 each | Section A, Question 2 |
| 5 | Write a program, with comments | 15 | One Section B question |
| Whole sheet | 22 | About 25 minutes |
Write on paper, not in BlueJ, because the board paper is handwritten. Mark strictly: an output missing a .0 or a space is wrong. Then write the reason beside each lost mark; after eight sheets that list shows which chapter needs another week.
Q2. Worksheets for chapters 1 and 2
Sheet 1 tests the Class 9 base the whole paper rests on. Sheet 2 checks that the words class, object, state and behaviour are used exactly.
int p = 7, q = 2; double r = p / q + p % q; System.out.println(r); [2]System.out.println(Math.ceil(4.1) + Math.round(2.5)); [2]for (int k = 2; k <= 20; k += 4) run? Show the values of k. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (c) do-while | It is exit controlled: the test comes after the body. |
| 2 | 4.0 | 7 / 2 is 3 in int, 7 % 2 is 1, and the int 4 is stored in a double. |
| 3 | 8.0 | ceil gives 5.0, round(2.5) gives 3, and double plus long is double. |
| 4 | 5 times | k is 2, 6, 10, 14, 18; at 22 the test fails. |
import java.util.Scanner;
public class Digits {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int n = sc.nextInt();
int evenSum = 0, oddCount = 0;
while (n > 0) {
int d = n % 10; // last digit
if (d % 2 == 0) evenSum += d;
else oddCount++;
n /= 10; // drop last digit
}
System.out.println("Sum of even digits = " + evenSum);
System.out.println("Count of odd digits = " + oddCount);
}
}
// Input 40271 gives: Sum of even digits = 6
// Count of odd digits = 2
Zero counts as even, so 4 + 2 + 0 is 6. The odd digits are 7 and 1.
| Variable | Type | Purpose |
|---|---|---|
| n | int | The number entered, reduced each pass |
| d | int | The current last digit |
| evenSum | int | Running sum of even digits |
| oddCount | int | Count of odd digits |
int, String, char[], double. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (b) | A class is the type; each object is one instance of it. |
| 2 | int, double primitive; String, char[] composite | Composite types are built from other types. |
| 3 | State: speed, isOn. Behaviour: start(), setSpeed(int). | Data members hold state; methods give behaviour. |
| 4 | new; Fan f = new Fan(); | new allocates the object and runs the constructor. |
public class Pen {
String colour;
int inkLevel;
void write(int words) {
inkLevel = inkLevel - words / 10;
if (inkLevel < 0) inkLevel = 0;
}
public static void main(String[] args) {
Pen p = new Pen();
p.colour = "blue";
p.inkLevel = 100;
p.write(250);
System.out.println(p.colour + " " + p.inkLevel);
}
}
// Output: blue 75
250 / 10 is 25, so 100 falls to 75; the guard stops it going negative.
The ideas behind Sheet 2 are explained on class as the basis of all computation.
Q3. Worksheets for chapters 3 and 4
These two chapters produce the class skeleton questions of Section B, so both sheets end with a class to write in full.
int f(int) and int f(double) (b) int f(int) and double f(int) (c) void f() and void f(int) (d) int f(int, char) and int f(char, int) [1]static int twice(int x) { x = x * 2; return x; } and in main int n = 6; int m = twice(n); System.out.println(n + " " + m); [2]int square(int a) that returns a * a; (ii) void addBonus(int[] marks) that adds 5 to every element. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (b) | They differ only in return type, which is not part of the signature. |
| 2 | 6 12 | x is a copy of n, so doubling x leaves n at 6. |
| 3 | (i) pure, (ii) impure | (ii) changes the caller's array. |
| 4 | public boolean isPrime(int n) | Access, return type, name, parameter list. |
public class Check {
void check(int n) {
if (n % 2 == 0) System.out.println(n + " is even");
else System.out.println(n + " is odd");
}
void check(String s, char ch) {
int c = 0;
for (int i = 0; i < s.length(); i++)
if (s.charAt(i) == ch) c++;
System.out.println(ch + " occurs " + c + " times");
}
public static void main(String[] args) {
Check obj = new Check();
obj.check(15);
obj.check("banana", 'a');
}
}
// Output: 15 is odd
// a occurs 3 times
Java chooses the version by the arguments: one int, or a String and a char.
Three more overloading programs in board format are on user-defined methods and overloading.
class Box { int side; void Box(int s) { side = s; } } used as Box b = new Box(4); [2]Counter() { count = 10; } and Counter(int c) { count = c * 2; }; main makes new Counter() as x and new Counter(7) as y, then prints x.count + y.count. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (d) | A constructor has no return type, not even void. |
| 2 | Remove void: Box(int s) { side = s; } | With void it is a method, so javac reports that no constructor takes an int. |
| 3 | 24 | 10 from the default constructor plus 7 * 2. |
| 4 | No return type, and the same name as the class; it runs on new, while a method is called by name. | Any two correct points earn the marks. |
public class Student {
String name;
int marks;
Student(String n, int m) {
name = n;
marks = m;
}
char grade() {
if (marks >= 80) return 'A';
else if (marks >= 60) return 'B';
else return 'C';
}
void display() {
System.out.println(name + " " + marks + " " + grade());
}
public static void main(String[] args) {
Student s = new Student("Kabir", 72);
s.display();
}
}
// Output: Kabir 72 B
Q4. Worksheets for chapters 5 and 6
Library classes are tested mostly through outputs; encapsulation mostly through whether code compiles. The two sheets lean that way.
Character.isLetterOrDigit('$') returns (a) true (b) false (c) '$' (d) an error [1]String a = "12", b = "3"; System.out.println(a + b + " " + (Integer.parseInt(a) + Integer.parseInt(b))); [2]System.out.println(Character.toLowerCase('Q') + "" + (char) ('a' + 2) + Character.isUpperCase('m')); [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (b) | $ is neither a letter nor a digit. |
| 2 | 123 15 | The Strings join; the parsed ints add. |
| 3 | qcfalse | The empty String makes the rest join: q, then c, then false. |
| 4 | Automatic conversion of a primitive to its wrapper object: Integer k = 25; | Java wraps 25 in an Integer without a call. |
import java.util.Scanner;
public class CharCount {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String s = sc.nextLine();
int up = 0, low = 0, dig = 0, sp = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (Character.isUpperCase(ch)) up++;
else if (Character.isLowerCase(ch)) low++;
else if (Character.isDigit(ch)) dig++;
else if (Character.isWhitespace(ch)) sp++;
}
System.out.println("Upper " + up + ", lower " + low
+ ", digits " + dig + ", spaces " + sp);
}
}
// Input: ICSE Exam 2027 is on Monday
// Output: Upper 6, lower 12, digits 4, spaces 5
nextLine, not next, so the whole sentence with its spaces is read.
Each Character and wrapper method in the syllabus is listed on wrapper and library classes.
class Visit { static int total; int id; void log(int x) { int y = x + 1; } } name the kind of variable that total, id, x and y each are. [2]private int score;. Another class runs Score t = new Score(); t.score = 5;. Will it compile? Give the reason. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (c) | private is visible only inside its class. |
| 2 | total: class variable; id: instance; x: argument (parameter); y: local | Decided by where and how each is declared. |
| 3 | No: "score has private access in Score" | A private member cannot be reached from another class. |
| 4 | class (static) | One copy for the class, not one per object. |
public class Thermostat {
private int temp = 24;
public void setTemp(int t) {
if (t >= 16 && t <= 30) temp = t;
else System.out.println("Out of range");
}
public int getTemp() { return temp; }
public static void main(String[] args) {
Thermostat th = new Thermostat();
th.setTemp(35);
th.setTemp(21);
System.out.println(th.getTemp());
}
}
// Output: Out of range
// 21
Only setTemp can change the private field, and it refuses 35.
Scope and visibility rules are set out on encapsulation and access specifiers.
Q5. Worksheets for chapters 7 and 8
These two sheets carry the most Section B weight, so do each twice: now, and again in the week before the exam.
int[] v = {4, 9, 2, 7}; int s = 0; for (int i = 0; i < v.length; i += 2) s += v[i]; System.out.println(s + v[v.length - 1]); [2]int[][] g = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; give the sum of the left diagonal, g[2][0], and g.length * g[0].length. [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (a) | Each halving step relies on the order. |
| 2 | 13 | i is 0 and 2, so s is 4 + 2; then 6 + 7. |
| 3 | 15, 7, 9 | 1 + 5 + 9; row 2 column 0; 3 rows times 3 columns. |
| 4 | {1, 4, 2, 5} | Neighbours swap when out of order, so 5 moves to the end. |
import java.util.Scanner;
public class SortDesc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[10];
System.out.println("Enter 10 integers:");
for (int i = 0; i < 10; i++) a[i] = sc.nextInt();
for (int i = 0; i < 9; i++) {
int big = i; // index of largest so far
for (int j = i + 1; j < 10; j++)
if (a[j] > a[big]) big = j;
int t = a[i]; a[i] = a[big]; a[big] = t;
}
for (int i = 0; i < 10; i++) System.out.print(a[i] + " ");
System.out.println();
}
}
// Input: 12 5 89 -3 40 40 7 0 66 21
// Output: 89 66 40 40 21 12 7 5 0 -3
For descending order, look for the largest of the unsorted part instead of the smallest. One swap per pass.
Bubble sort, linear search and binary search are written in full on sorting and searching programs.
"COMPUTER".substring(3, 6) returns (a) "PUTE" (b) "PUT" (c) "MPU" (d) "MPUT" [1]String s = "Board Exam"; System.out.println(s.indexOf('a') + " " + s.lastIndexOf('a') + " " + s.charAt(s.length() - 1)); [2]System.out.println("apple".compareTo("apricot")); [2]String t = "java"; t.toUpperCase(); System.out.println(t + t.replace('a', 'o')); [2]| Answer key | Answer | Why |
|---|---|---|
| 1 | (b) | Indices 3, 4 and 5; index 6 is excluded. |
| 2 | 2 8 m | The first a is at 2, the last at 8; the last character is m. |
| 3 | -2 | First difference at index 2: 'p' (112) minus 'r' (114). |
| 4 | javajovo | toUpperCase's result was never stored, so t is still "java". |
import java.util.Scanner;
public class Longest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String s = sc.nextLine().trim() + " "; // space marks the last word's end
String word = "", longest = "";
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch != ' ') word += ch;
else {
if (word.length() > longest.length()) longest = word;
word = "";
}
}
System.out.println(longest + " " + longest.length());
}
}
// Input: Practice makes the programs easier
// Output: Practice 8
"programs" also has 8 letters, but the test is > and not >=, so the first word of that length stays.
Palindromes, vowel counts and word rearranging are on ICSE Class 10 string programs.
Q6. What happens to a worksheet in class?
Alone, a worksheet shows what went wrong; in class, a teacher reading the working also shows why.
At 5:30 PM IST the group sits parts 1 to 4 of a new sheet against a timer. Answers go up on screen together, so each student sees how others reasoned.
At 8:00 PM IST each student writes part 5 by hand, photographs it, and the teacher marks it on screen, then the class runs it in BlueJ.
Each answer is marked the way a board examiner would credit it, so students learn that a right idea in broken Java still loses marks.
From December the weekly sheet grows into a full two-hour mock, described on the specimen paper and mock tests page.
Batch or personalised: you choose
The sheets, the answer keys and the BlueJ checks do not change between formats. Families in India choose the fixed Tuesday and Wednesday mini batch or a private slot; ICSE students abroad are taught one to one. Billing is monthly, with no admission fee.
Option 1 · Fixed batch timings
₹2,999
per month, two live classes a week
Option 2 · Choose your own timing
₹4,999
per month, one private class a weektwo private classes a week, at a time set with you
Outside India: the ICSE Computer Applications course runs as personalised one to one, two private classes a week at a time set in your own time zone. The mini batch is taught for families in India.
A student who scores well on short parts but runs out of steam on the 15-mark program often needs only a few one to one sessions on writing programs by hand. A student who wants a sheet every week across all eight chapters is better placed in the two batch classes. Fees are shown in your own currency.
Studying outside India?
ICSE schools abroad prepare for the same Computer Applications paper, so the same eight sheets apply. Outside India they are set and marked one to one, at an evening time in the student's own zone.
| Where you live | Time difference | Usual class window, local time | Format |
|---|---|---|---|
| India (IST) every Indian city | IST | Tue 5:30 PM, Wed 8:00 PM | Mini batch or 1-on-1 |
| United Arab Emirates Dubai, Sharjah | 1 h 30 min behind India | 3:00 PM to 9:00 PM | Personalised 1-on-1 |
| Indonesia and Thailand West Java, Bangkok area | 1 h 30 min ahead of India | 3:30 PM to 9:00 PM | Personalised 1-on-1 |
| Singapore Singapore | 2 h 30 min ahead of India | 3:30 PM to 9:00 PM | Personalised 1-on-1 |
The slot is agreed after the free demo and can move around school exams. More on overseas classes is on ICSE Computer Applications classes in the Gulf and abroad.
What families say
Real reviews from real families. We neither write nor commission them.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
The rest of the Class 10 series
Every page in the ICSE Class 10 Computer Applications series, grouped by what you need: classes, each chapter, Section B programs, question practice, notes and revision, and the exam itself.
CBSE Class 10 AI (417): The Mon and Wed 9 PM AI batch CBSE AI 417 syllabus explained CBSE AI important questions Sample paper and mock tests
Questions about worksheets
This page has eight, one for each chapter of the 2027 syllabus, with the answer key directly below each sheet. The short answers carry a reason, and every program in the key was compiled and run in Java, so the answers can be trusted. Do each sheet with the key covered before you check.
Yes. They follow the eight Class 10 chapters in the 2027 syllabus order, from the Class IX revision chapter to string handling. Two-dimensional arrays and wrapper classes are included because the syllabus includes them. Recursion is left out because it is not in the 2027 Computer Applications syllabus.
On paper first. The board exam is handwritten, with no compiler to catch a missing semicolon or bracket. Once the program is finished on paper, type it into BlueJ exactly as written and run it. Every error BlueJ finds is a mark you would have lost.
Be strict. An output missing a decimal point or a space is wrong. A two-mark difference needs two separate points. For a program, check that the class compiles, that the logic gives the right result for the sample input, and that you wrote comments and a variable description. Note the reason for every lost mark.
No. Every question and program here is original, written for this page. They use the same shapes as the board paper, so they are good practice for it, but none is taken from a past paper, a specimen paper or a published book.
At least one per chapter, then mixed sheets that combine chapters, then full timed papers in the last six weeks. Repeating a sheet a week after first doing it shows whether the learning stayed. The arrays and strings sheets are worth doing twice, since they feed Section B most.
A worksheet tests one chapter in the paper's question shapes and takes about 25 minutes. A sample or specimen paper covers the whole syllabus in two hours. Use worksheets while learning each chapter, and sample papers once every chapter is done.
Yes. The mini batch gets a new worksheet each week: short parts on Tuesday at 5:30 PM IST and the program on Wednesday at 8:00 PM IST, both marked on screen. Students abroad, or whose timings clash, get the same sheets one to one at a time the family chooses.
Start
In the free demo your child sits the short parts of one worksheet against the clock, then the mentor marks them on screen and runs any doubtful output in BlueJ. You hear afterwards which chapters look solid and which need a sheet or two more, and whether the mini batch or one to one suits your child.
Revising first? Read the chapter-wise notes or the difference between questions.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Every class is live video. The form requests a callback and reserves nothing.
A full live class of about 45 to 60 minutes at a slot you pick, with a written skill report and learning roadmap on WhatsApp afterwards. The fee is adjusted against your first month if you enrol.
Book a priority demo