★★★★★
"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) · Previous year papers 2023 to 2026
An ICSE Computer Applications previous year question paper solved once teaches one paper. Read four of them side by side and the board's habits show. This page lists what Section B asked in 2023, 2024, 2025 and 2026, in our own words, tags each question by program family, counts which families came back, and then gives six original programs in the same shapes with full Java answers, every one compiled and run. In our live mini batch, past questions are solved this way: grouped, timed and marked.
Live online · four board papers mapped · 24 Section B questions tagged · six original solved programs · timed past-paper rounds · first class free
Start here
The ICSE Java course where the mini batch works through past board questions family by family, the Class 11 and 12 Computer Science course that the same program-writing habits feed into, and the algorithms course for a student who wants to go past the board.

The batch / ICSE CA
Class 9 and 10 Computer Applications in a mini batch, where every Section B family from the past papers is taught, written in BlueJ and marked.
Open the course →
Next step / ISC
For students heading to ISC Computer Science, where the class design and array questions on this page grow into longer programs.
Open the course →
Beyond the syllabus / DSA
For the student who enjoyed the sorting and binary search questions and wants to know why some methods are faster than others.
Open the course →Ans. The short version
An ICSE Computer Applications previous year question paper is most useful when it is solved by pattern. In the 2023, 2024, 2025 and 2026 board papers, Section B (any four of six programs, 15 marks each) always had a class with a calculation, a method overloading question with a nested-loop pattern and a String program; a digit-based number check, a 2D array task and a sorting or searching task came in most years. Section A is 40 compulsory marks. Modern Age Coders works through these past questions with students live, in a Tuesday and Wednesday evening mini batch in India or in personalised one to one classes.
Q1. What did each year's Section B ask?
Each of these four papers had a Section A of 40 compulsory marks and a Section B of six programs, Questions 3 to 8, of which a candidate writes any four for 15 marks each. The table describes every Section B question in our own words, not the board's, and tags it with the program family it belongs to.
| Year | Q | What it asked, in our words | Program family |
|---|---|---|---|
| 2023 | 3 | A student class that takes name, age and marks, then allots a stream from four marks bands | Class and object, if-else ladder |
| 4 | Ten characters read into an array, arranged in ascending order by bubble sort, both arrays shown | Sorting (bubble) | |
| 5 | One method name overloaded twice: a five-row grid of repeated digits, and a check comparing the sums of a number's even and odd digits | Overloading, pattern, digit check | |
| 6 | Count the digits, letters and other characters in a String | String, character tests | |
| 7 | Search a double array of twenty values for a user's value with linear search and report the position | Searching (linear) | |
| 8 | Ten integers in an array: add the one-digit values and the two-digit values separately | 1D array, conditions | |
| 2024 | 3 | A courier class that bills a parcel by weight in three slabs, with an extra charge for international parcels | Class and object, slab bill |
| 4 | One method overloaded three ways: a cone's curved surface area, a rows-by-columns number grid, and a quotient or remainder chosen by a character | Overloading, pattern, Math | |
| 5 | Check whether a number is a palindrome whose digit sum is even | Number check (digits) | |
| 6 | A 4 by 4 matrix: compare the sums of the two diagonals | 2D array | |
| 7 | Eight given six-digit codes stored in an array and put in ascending order by selection sort | Sorting (selection) | |
| 8 | Test whether an email address entered by the user has the parts a valid Gmail address needs | String, searching inside a String | |
| 2025 | 3 | A cloud storage class that bills gigabytes bought in three slabs | Class and object, slab bill |
| 4 | A 4 by 4 integer matrix: square root of the sum of the squares of every element | 2D array, Math | |
| 5 | Decide whether a String has as many capital letters as small letters | String, character tests | |
| 6 | A given sorted character array searched for the user's character by binary search | Searching (binary) | |
| 7 | One method overloaded three ways: a symbol pattern, a sum of terms rising in steps of one half, and the larger of two characters' codes | Overloading, pattern, series | |
| 8 | Find a number's largest and smallest digits and say whether their sum is odd or even | Number check (digits) | |
| 2026 | 3 | A step tracker class that turns steps walked into calories and kilometres by two given formulas | Class and object, formula |
| 4 | Store a hundred job titles, then count how many match the title the user types | 1D String array, linear scan | |
| 5 | A 4 by 5 matrix: count zeros and non-zeros and decide whether it is sparse | 2D array | |
| 6 | Check a number whose sum of squared digits is even and ends in the same digit as the number | Number check (digits) | |
| 7 | One method overloaded three ways: a shrinking number triangle, the total of a String's character codes, and the sum to n by formula | Overloading, pattern, String | |
| 8 | Rebuild a word from its first consonant onwards, move the leading vowels to the end and add a fixed suffix | String, building a new word |
The 2022 paper was a second-semester paper and earlier papers used an older layout, so they are left out of this count.
Q2. Which kinds of program keep coming back?
Three families were in all four papers: a class with a calculation, method overloading and a String program. Three more appeared in three of the four. Because a candidate picks four of six, a student strong in the steady families always has four questions to choose from.
| Program family | 2023 | 2024 | 2025 | 2026 | Papers |
|---|---|---|---|---|---|
| Class and object with a slab, ladder or formula (always Question 3) | Q3 | Q3 | Q3 | Q3 | 4 of 4 |
| Method overloading, with a nested-loop pattern inside | Q5 | Q4 | Q7 | Q7 | 4 of 4 |
| String program (count, test or rebuild) | Q6 | Q8 | Q5 | Q8 | 4 of 4 |
| Number check built on digit extraction, as its own question | inside Q5 | Q5 | Q8 | Q6 | 3 of 4 |
| Double dimensional (2D) array | none | Q6 | Q4 | Q5 | 3 of 4 |
| Searching: linear or binary | Q7 | none | Q6 | Q4 | 3 of 4 |
| Sorting: bubble or selection | Q4 | Q7 | none | none | 2 of 4 |
Question 1 is still twenty one-mark MCQs and Question 2 ten two-mark parts. What changed from 2024 is the style. Solved copies of the papers show one assertion and reason item in 2024 and two each in 2025 and 2026, and every one of those three papers had at least one item built on a real-life picture or scenario, such as an everyday repeat that stands for a nested loop.
Those newer items are worked on ICSE Computer Applications competency based questions, and an original bank of twenty-mark Question 1 practice is on ICSE Computer Applications MCQ questions.
A count of four papers shows habits, not a promise; any family in the 2027 syllabus can be set. That is why the hub of every program family, ICSE Class 10 Java programs practice, covers the families that did not appear as well.
Q3. Where are the solutions in the same shapes?
These are new questions written in the same shapes as the board's, not copies. Try each one in BlueJ before reading the answer.
Define a class CabRide with members name, km, ac (Y or N) and fare. The fare is 18 per km for the first 4 km, 15 per km for the next 6 km and 12 per km beyond 10 km; an AC ride adds 10 percent. Write accept(), calculate(), display() and a main that uses an object.
import java.util.Scanner;
class CabRide {
String name; double km; char ac; double fare;
void accept() {
Scanner sc = new Scanner(System.in);
System.out.print("Rider name: ");
name = sc.nextLine();
System.out.print("Distance in km: ");
km = sc.nextDouble();
System.out.print("AC ride (Y/N): ");
ac = sc.next().charAt(0);
}
void calculate() {
if (km <= 4)
fare = km * 18;
else if (km <= 10)
fare = 4 * 18 + (km - 4) * 15;
else
fare = 4 * 18 + 6 * 15 + (km - 10) * 12;
if (ac == 'Y' || ac == 'y')
fare = fare + fare * 10 / 100;
}
void display() {
System.out.println("Name: " + name);
System.out.println("Distance: " + km + " km");
System.out.println("Fare: " + fare);
}
public static void main(String[] args) {
CabRide ob = new CabRide();
ob.accept(); ob.calculate(); ob.display();
}
}
Name: Asha Rao Distance: 13.5 km Fare: 224.4 // 72 + 90 + 3.5 x 12 = 204, plus 10 percent // 3 km, no AC: Fare: 54.0
The slab rule: each band is charged in full before the next band starts, so the upper branches add the fixed totals of the lower bands. Using 13.5 x 12 for the whole distance is the commonest wrong answer.
Overload compute: void compute(int n) prints n rows, row i counting down from n to i; double compute(double r, double h) returns the volume of a cylinder; boolean compute(String s, char ch) returns true when ch occurs more than once in s.
class Compute {
void compute(int n) {
for (int i = 1; i <= n; i++) {
for (int j = n; j >= i; j--)
System.out.print(j + " ");
System.out.println();
}
}
double compute(double r, double h) {
return Math.PI * r * r * h;
}
boolean compute(String s, char ch) {
int c = 0;
for (int i = 0; i < s.length(); i++)
if (s.charAt(i) == ch)
c++;
return c > 1;
}
public static void main(String[] args) {
Compute ob = new Compute();
ob.compute(4);
System.out.println(ob.compute(7.0, 10.0));
System.out.println(ob.compute("BLUEJ", 'E') + " " + ob.compute("TEETH", 'E'));
}
}
4 3 2 1 4 3 2 4 3 4 1539.3804002589986 false true
The three versions differ in the number and types of parameters, which is what overloading needs. A different return type alone would not compile. Row i starts the inner loop at n and stops at i, so each row is one shorter.
A Twin-end number (our own definition) has the same first and last digit, and a digit sum divisible by 3. 2742 qualifies: it starts and ends with 2 and its digits add to 15. Accept a number and say whether it is one.
import java.util.Scanner;
class TwinEnd {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int n = sc.nextInt();
int last = n % 10, first = 0, sum = 0, t = n;
while (t > 0) {
int d = t % 10;
sum = sum + d;
first = d;
t = t / 10;
}
if (first == last && sum % 3 == 0)
System.out.println(n + " is a Twin-end number");
else
System.out.println(n + " is not a Twin-end number");
}
}
2742 is a Twin-end number 4504 is not a Twin-end number 3713 is not a Twin-end number 5 is not a Twin-end number
The last digit to be peeled off is the first digit of the number, so first simply keeps the latest d. Work on a copy, t, so the original n is still there to print. 4504 fails on the sum (13); 5 fails because 5 is not divisible by 3.
Dozens more digit checks, each with its loop rule, are on special number programs in Java.
Q4. And the String, array and search questions?
One original question for each family that came in three of the last four papers.
Accept a sentence. Print it with the first and last letters of every word swapped, and count the words that begin with a vowel.
import java.util.Scanner;
class SwapEnds {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String s = sc.nextLine().trim() + " ";
String word = "", result = "";
int vowelStart = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch != ' ') {
word = word + ch;
} else if (word.length() > 0) {
char f = Character.toUpperCase(word.charAt(0));
if ("AEIOU".indexOf(f) >= 0)
vowelStart++;
int L = word.length();
if (L > 1)
word = word.charAt(L - 1) + word.substring(1, L - 1) + word.charAt(0);
result = result + word + " ";
word = "";
}
}
System.out.println(result.trim());
System.out.println("Words starting with a vowel: " + vowelStart);
}
}
eht mxae si rean Words starting with a vowel: 2
Adding one space to the end means the last word is handled by the same branch as the others. The check word.length() > 0 skips double spaces, and L > 1 leaves a one-letter word such as "a" alone, where substring(1, 0) would crash.
Accept a 3 by 3 integer matrix. Say whether it is symmetric (each a[i][j] equals a[j][i]) and print the sum of its boundary elements.
import java.util.Scanner;
class Symmetric {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] a = new int[3][3];
System.out.println("Enter 9 elements:");
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
a[i][j] = sc.nextInt();
boolean sym = true;
int boundary = 0;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++) {
if (a[i][j] != a[j][i])
sym = false;
if (i == 0 || i == 2 || j == 0 || j == 2)
boundary += a[i][j];
}
System.out.println(sym ? "Symmetric matrix" : "Not a symmetric matrix");
System.out.println("Sum of boundary elements = " + boundary);
}
}
// input 1 4 7 / 4 2 5 / 7 5 3 Symmetric matrix Sum of boundary elements = 36
A boundary cell is in the first or last row or column; in a 3 by 3 matrix only the centre is left out. Input 1 to 9 in order prints Not a symmetric matrix and 40.
Store six city names, arrange them alphabetically by bubble sort, print them, then search for a city typed by the user with binary search, ignoring case.
import java.util.Scanner;
class CitySearch {
public static void main(String[] args) {
String[] c = {"Pune", "Agra", "Surat", "Kochi", "Delhi", "Bhopal"};
int n = c.length;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (c[j].compareToIgnoreCase(c[j + 1]) > 0) {
String t = c[j]; c[j] = c[j + 1]; c[j + 1] = t;
}
for (int i = 0; i < n; i++)
System.out.print(c[i] + " ");
System.out.println();
Scanner sc = new Scanner(System.in);
System.out.print("City to search: ");
String key = sc.next();
int low = 0, high = n - 1, pos = -1;
while (low <= high) {
int mid = (low + high) / 2;
int r = key.compareToIgnoreCase(c[mid]);
if (r == 0) { pos = mid; break; }
else if (r < 0) high = mid - 1;
else low = mid + 1;
}
if (pos >= 0)
System.out.println(key + " found at index " + pos);
else
System.out.println(key + " not found");
}
}
Agra Bhopal Delhi Kochi Pune Surat surat found at index 5 Agra Bhopal Delhi Kochi Pune Surat Goa not found
Binary search only works on sorted data, which is why the sort comes first. Strings are compared with compareToIgnoreCase, never with < or ==, and the sign of the result says which half to keep.
Each family has a full page of programs: ICSE Class 10 String programs, 2D array programs and sorting and searching programs.
Q5. How should past papers be used?
Solve each past paper twice: once by family, early, to learn the shapes, and once whole, timed, near the exam. Reading a solution is not solving a paper.
Take all four Question 3s together, then all four overloading questions, and so on. Seeing the same shape four times in a row shows what is fixed and what changes from year to year.
Write the program on paper as the exam demands, then type it into BlueJ exactly as written. The compiler finds the missing semicolon and the wrong method name that your eye skipped.
The example in a question is the easy case. Try a one-digit number, an empty space, the first and last elements of an array, and a value that is not there. The 2025 binary search only proves itself when a missing character is searched.
For each program, check the parts an examiner looks for: the class and method headers asked for, input taken the way the question says, correct logic, the output in the format shown, and the meaningful variable names or short variable description the Section B instructions ask for so the logic is clear. Flowcharts and algorithms are not required.
From January, sit one complete past paper at a time in two hours, choosing your four Section B questions in the first minutes and sticking to the choice.
The latest paper, discussed question by question with an answer key, is on ICSE Computer Applications paper analysis.
Q6. How are past papers taught in the live classes?
The mini batch works through old papers in the order the families repeat, so the steadiest marks are secured first.
In the 5:30 PM IST Tuesday session, students answer a block of past Question 1 and Question 2 items against a timer. Wrong answers are traced aloud until the mistaken step is found.
In the 8:00 PM IST Wednesday session, the batch takes one family across all four years, then writes a fresh question in the same shape in BlueJ while the teacher watches the screens.
Each program is marked point by point against the parts listed above, then a short worksheet of new questions in the same shape goes home and is run at the next class.
Once each family is secure, complete past papers are sat in two hours, marked like the board and reviewed together the following week.
With no more than six students in a batch, every program written in class is read by the teacher. Abroad, the same plan runs one to one.
Batch or personalised: you choose
Both formats follow the family-by-family plan above and use the same original practice questions. Indian families may take the Tuesday and Wednesday evening batch or private sessions, while ICSE students living abroad are taught one to one. Payment is monthly and nothing is charged for admission.
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 already handles Question 3 and overloading well, and only stumbles on 2D arrays or binary search, can close those gaps in a few one to one sessions. A student who has not yet written a full program in two hours does better with two batch classes every week until the exam. You will see the fee in your local currency.
Studying outside India?
ICSE schools abroad sit the same Computer Applications paper as schools in India, so the same past questions are the best practice. Overseas, the past-paper rounds are private classes held in the late afternoon or evening of the student's own clock.
| 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 |
Once the free demo is over we agree an hour, and it can shift in a week of school exams. For the overseas arrangement in full, read 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 previous year papers
Past board papers are printed in the solved-paper books most ICSE schools recommend, and CISCE publishes specimen papers on cisce.org. This page does not reprint any paper. It describes what Section B asked in 2023, 2024, 2025 and 2026, tags each question by program family and gives original practice programs in the same shapes, with full solutions that were compiled and run.
In our own words: a cloud storage class billed in three slabs, the square root of the sum of squares of a 4 by 4 matrix, a String with equal capital and small letters, a binary search of a sorted character array, an overloaded method with a symbol pattern, a half-step series and a character comparison, and the parity of the sum of a number's largest and smallest digits.
Six, numbered Questions 3 to 8. A candidate answers any four, each worth 15 marks, for 60 marks. Section A, Questions 1 and 2, is 40 compulsory marks: twenty one-mark MCQs and ten two-mark parts. The whole paper is 100 marks in two hours, with reading time before writing starts.
In the 2023 to 2026 papers, three families came every year: a class with a calculation as Question 3, a method overloading question containing a nested-loop pattern, and a String program. A digit-based number check, a 2D array task and a searching task each came in three of the four years. Sorting came twice.
Yes. Double dimensional arrays are in the 2027 syllabus and a 2D array program appeared in Section B in 2024, 2025 and 2026: comparing diagonal sums, finding the square root of the sum of squares, and counting zeros to test a sparse matrix. Each was a short scan of rows and columns with nested loops.
At least the last four board papers and the current specimen paper, each solved twice: first question by question grouped by family, then as a whole timed paper. Older papers are useful for extra Section B practice, but their Section A layout differs, so use them for programs rather than for timing.
The exact questions rarely repeat, but the shapes do. Every recent paper opened Section B with a class that calculates a bill or a result, and every one had an overloading question with a pattern. Practising new questions in each repeating shape prepares you better than memorising old answers.
Yes, inside Question 1. Solved copies of the papers show one assertion and reason MCQ in 2024 and two in each of 2025 and 2026. They test the same Java facts as the other MCQs, so the key is to judge the assertion and the reason separately before deciding whether one explains the other.
Yes. In the mini batch, Tuesday classes time past Section A items and Wednesday classes take one Section B family across several years, followed by a fresh question in the same shape written in BlueJ and marked. From January, whole past papers are sat in two hours. Families can also choose personalised one to one classes at their own time.
Start
In the free demo your child writes one past-paper style Section B program in BlueJ with the mentor watching, and answers a short timed set of Question 1 items. We then tell you which program families look secure, which need work, and the format we would suggest.
Prefer to start with the full topic list? See ICSE Computer Applications important questions or the ICSE Class 10 Java classes.
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