Thursday, October 15, 2026

Java Programming Inheritance, Polymorphism, Algorithms & Integrated Project Notes - Class 4

☕ Java Programming • Class 4

Inheritance, Polymorphism, Algorithms & Integrated Project

Master advanced Object-Oriented Programming concepts including inheritance hierarchies, runtime polymorphism, classic algorithmic strategies (Greedy, DP, Divide & Conquer), and build a complete Student Management System.

🧬 Inheritance 🎭 Polymorphism 🧠 Algorithms 🎒 Knapsack 🌳 Huffman 🚀 Integrated Project
🧬 CLASS 4 – PART A: Inheritance & Polymorphism
🏗️ A.1 What is Inheritance? ▼

Inheritance lets a new class reuse the fields and methods of an existing class. The existing class is the parent (superclass / base class); the new class is the child (subclass / derived class).

💡
Inheritance models an "is-a" relationship: a Student is a Person; a Dog is an Animal. Common data (like name) is written once in the parent instead of being copied into every child class. This reduces duplication and makes programs easier to extend.

Parent and Child Classes

// Parent class
class Person {
    String name;
    void displayName() {
        System.out.println(name);
    }
}

// Child class inherits from Person
class Student extends Person {
    int marks;
}

Class Diagram

Person ← parent / superclass (name, displayName()) ↑ | extends ("Student IS-A Person") | Student ← child / subclass (marks) + everything from Person

Using Inherited Members

public class Main {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "Kamal";    // inherited field
        s.marks = 80;        // own field
        s.displayName();     // inherited method
        System.out.println(s.marks);
    }
}
✅
Output: Kamal
80
📚 A.2 Terminology & Key Rules ▼
Term Meaning Example
Parent / SuperclassThe class being inherited fromPerson
Child / SubclassThe class that inheritsStudent
extendsKeyword that creates the inheritance linkclass Student extends Person
Inherited membersFields/methods received from parentname, displayName()
OverridingChild provides own version of inherited methodDog.sound()
superReference to parent part of objectsuper(name)
Is-aRelationship justifying inheritanceStudent is a Person
⚠️
Important Rules:
  • A class can extend only one parent class (single inheritance).
  • Inheritance can be multi-level: Person → Student → GraduateStudent.
  • Every class secretly extends the built-in Object class.
  • Don't use inheritance just to reuse code. Use it only when the is-a test is true.
📦 A.3 Inherited Members & What a Child Can Add ▼

A child object contains the parent's fields plus its own. The child may also add new methods.

class Person {
    String name;
    int age;
    void displayName() { System.out.println(name); }
}

class Student extends Person {
    int marks;            // new field
    boolean isPass() {    // new method
        return marks >= 40;
    }
}
// Student object has: name, age, marks
// Methods: displayName(), isPass()
⬆️ A.4 The super Keyword ▼

super refers to the parent class part of the current object. Two main uses:

Use 1: Call parent constructor

super(...) calls the parent constructor. Must be the first statement in the child constructor.

Use 2: Call parent method

super.method() calls the parent's version of a method that the child has overridden.

Example – Calling Parent Constructor

class Person {
    String name;
    Person(String name) {
        this.name = name;
        System.out.println("Person constructor");
    }
}

class Student extends Person {
    int marks;
    Student(String name, int marks) {
        super(name);   // MUST be first
        this.marks = marks;
        System.out.println("Student constructor");
    }
}

// new Student("Kamal", 80);
// Output:
// Person constructor
// Student constructor
🔑
Explanation: Creating a Student first builds the Person part (parent constructor runs first), then the Student part. super(name) passes the value up so the parent can initialize name.

Example – Calling Overridden Parent Method

class Student extends Person {
    int marks = 80;
    
    @Override
    void display() {
        super.display();                      // run Person's version first
        System.out.println("Marks: " + marks); // then add extra
    }
}
🏗️ A.5 Constructor Inheritance Rules ▼
🚨
Key Rule: Constructors are NOT inherited. A subclass must have its own constructors. However, every subclass constructor must call a parent constructor.
  • super(...) must be the first statement in the child constructor.
  • If you don't write it, the compiler inserts super(); automatically.
  • If the parent has only a parameterised constructor, the child must call super(arguments) explicitly — otherwise a compile error occurs.
  • Object creation order: parent constructor body runs before child constructor body.
class Person {
    String name;
    Person(String name) { // only parameterised
        this.name = name;
    }
}

class Student extends Person {
    int marks;
    Student(int marks) {     // ❌ ERROR: compiler tried super() but it doesn't exist
        this.marks = marks;
    }
}

// ✅ FIX:
class Student2 extends Person {
    int marks;
    Student2(String name, int marks) {
        super(name);   // explicit call, first line
        this.marks = marks;
    }
}
🔒 A.6 Member Accessibility: private, protected, public ▼

Access modifiers control who can see and use a class member. They support encapsulation (hiding data inside the class and exposing only what is necessary).

Modifier Same Class Same Package Subclass Everywhere
private✅❌❌❌
(default)✅✅❌❌
protected✅✅✅❌
public✅✅✅✅
✅
Best Practice: Make fields private and provide public getters/setters. This is the core of encapsulation.
🔄 A.7 Method Overriding vs Overloading ▼

Overriding means a subclass provides its own implementation of an inherited method, with the same name, parameters, and compatible return type. Use @Override to let the compiler check.

Aspect Overloading Overriding
LocationSame classSubclass
SignatureSame name, different parametersSame name AND parameters
ResolutionCompile timeRun time
Exampleadd(int,int) and add(double,double)Dog.sound() replaces Animal.sound()
⚠️
Rules: Overriding method cannot have weaker access. final, static, and private methods cannot be overridden.
🎭 A.8 Polymorphism – "Many Forms" ▼

Polymorphism means the same method call can produce different behaviour depending on the actual object. It combines inheritance + method overriding + a parent-type reference.

Classic Example

class Animal { void sound() { System.out.println("Animal sound"); } }
class Dog extends Animal { @Override void sound() { System.out.println("Bark"); } }
class Cat extends Animal { @Override void sound() { System.out.println("Meow"); } }

// Using polymorphism
Animal a;
a = new Dog();
a.sound();   // Bark

a = new Cat();
a.sound();   // Meow

Polymorphism with an Array

Animal[] zoo = { new Dog(), new Cat(), new Animal(), new Dog() };
for (Animal x : zoo) {
    x.sound();   // one line, different behaviour per object
}
// Output: Bark, Meow, Animal sound, Bark
⚡ A.9 Runtime Polymorphism (Dynamic Method Dispatch) ▼

The JVM decides at run time (not compile time) which overridden method to execute — based on the actual object type, not the reference type.

Reference Object in memory Method that RUNS ---------------------------------------------- Animal a; a = new Dog(); a → [ Dog object ] → Dog.sound() "Bark" a = new Cat(); a → [ Cat object ] → Cat.sound() "Meow"
🎯
Key Rules:
  • Reference type decides which methods you can call (compile-time check).
  • Object type decides which overridden method runs (run-time decision).
  • To call a child-only method through a parent reference, use instanceof then cast.

Safe Downcasting with instanceof

Animal a = new Dog();
if (a instanceof Dog) {
    Dog d = (Dog) a;   // downcast
    d.fetch();        // OK: fetch() is Dog-only
}
🧠 CLASS 4 – PART B: Standard Algorithms
🎯 Algorithm Strategies Overview ▼

An algorithm is a finite, step-by-step method for solving a problem. Four strategies appear repeatedly in computer science:

Strategy Idea Seen In
Brute ForceTry every possibilityString matching
GreedyTake the best-looking choice now, never reconsiderCoins, Huffman, Activity Selection, SJF
Dynamic ProgrammingSolve sub-problems once, reuse answers0/1 Knapsack
Divide & ConquerSplit, solve parts, combineBinary Search, Fast Power
🔍 B.1 String Matching ▼

Finding whether a pattern occurs inside a text, and where. This powers search boxes, find-and-replace, and spell checkers.

Built-in String Methods

MethodPurpose
text.equals(other)Are two strings identical?
text.equalsIgnoreCase()Same, ignoring case
text.contains(p)Does text contain p anywhere?
text.indexOf(p)Position of first match, or -1
startsWith / endsWithMatch at start/end
charAt(i)Character at index i
⚠️
Warning: Compare Strings with equals(), never == (which compares memory references, not content).

Brute Force Implementation

static int find(String text, String pattern) {
    for (int i = 0; i <= text.length() - pattern.length(); i++) {
        int j = 0;
        while (j < pattern.length() &&
               text.charAt(i + j) == pattern.charAt(j)) {
            j++;
        }
        if (j == pattern.length()) return i;
    }
    return -1;
}
🪙 B.2 Counting Coins (Greedy Approach) ▼

Problem: Make a given amount using the fewest coins.
Greedy: Always take the largest coin that still fits, subtract it, repeat.

Example: Amount = 37, Coins = 25, 10, 5, 1

37 - 25 = 12 (take 25) 12 - 10 = 2 (take 10) 2 - 1 = 1 (take 1) 1 - 1 = 0 (take 1) Result: 4 coins (25 + 10 + 1 + 1)
static void countCoins(int amount, int[] coins) {
    int totalCoins = 0;
    for (int coin : coins) {
        int howMany = amount / coin;
        if (howMany > 0) {
            System.out.println(howMany + " x " + coin);
            totalCoins += howMany;
            amount = amount % coin;
        }
    }
    System.out.println("Total coins = " + totalCoins);
}
⚠️
Key Point: Greedy is optimal only for some coin systems (25, 10, 5, 1). For coins {4, 3, 1} and amount 6, greedy gives 3 coins (4+1+1) but the optimal answer is 2 coins (3+3). When greedy fails, use Dynamic Programming.
🎒 B.3 Knapsack Problem (0/1 vs Fractional) ▼

Problem: A thief has a bag with limited capacity. Each item has weight and value. Goal: maximize total value without exceeding capacity.

Aspect 0/1 Knapsack Fractional Knapsack
RuleTake item whole or not at allMay take a fraction of an item
MethodDynamic ProgrammingGreedy by value/weight ratio
Real-lifeLaptops, boxes, tasksGrain, liquids, sand

Fractional Knapsack (Greedy)

static double fractional(int[] wt, int[] val, int capacity) {
    // Sort by value/weight ratio (highest first)
    // Take items fully until bag is full
    // Take fraction of last item that fits
    double total = 0;
    int remaining = capacity;
    for (int i : sortedIndexes) {
        if (wt[i] <= remaining) {
            total += val[i];
            remaining -= wt[i];
        } else {
            total += val[i] * (double) remaining / wt[i];
            break;
        }
    }
    return total;
}
💡
Why Greedy Fails for 0/1: Choosing by ratio may leave unused capacity. 0/1 Knapsack requires Dynamic Programming: dp[i][w] = best value using first i items with capacity w.
🌳 B.4 Huffman Coding (Lossless Compression) ▼

A lossless data compression method that gives short bit codes to frequent characters and long codes to rare ones. No code is the beginning of another code (prefix code).

Frequency → Build tree (merge two lowest) → Assign 0/1 (left=0, right=1) → Compressed bits

Example: "ABRACADABRA"

CharFrequencyCodeBits used
A505 × 1 = 5
B2102 × 2 = 4
R21102 × 3 = 6
C111101 × 4 = 4
D111111 × 4 = 4
Total11—23 bits
✅
Result: Normal ASCII needs 11 × 8 = 88 bits. Huffman needs only 23 bits — over 70% savings!
📅 B.5 Activity Selection (Greedy) ▼

Given activities with start/finish times, choose the maximum number of non-overlapping activities.

🎯
Greedy Rule: Sort by earliest finish time, pick the first, then repeatedly pick the next activity whose start time is at or after the finish of the last chosen one.

Example

ActivityStartFinish
A13
B25
C47
D68
// Already sorted by finish time
System.out.println("Selected: " + name[0]);  // A
int last = 0;
for (int i = 1; i < n; i++) {
    if (start[i] >= finish[last]) {
        System.out.println("Selected: " + name[i]);  // C
        last = i;
    }
}
// Output: Selected: A, Selected: C
⏰ B.6 Scheduling Strategies ▼

Scheduling decides which task runs when, given limited resources (CPUs, rooms, people).

StrategyRuleNotes
FCFSRun in arrival orderSimple & fair; one long task delays everything
SJFShortest task firstGives lowest average waiting time
PriorityHighest priority firstLow priority may starve (aging fixes this)
Round RobinTime slice per task in turnUsed by time-sharing OS
EDFNearest deadline firstUsed in real-time systems

Example: FCFS vs SJF

StrategyOrderWaiting timesAverage
FCFSP1, P2, P30, 6, 146.67
SJFP3, P1, P20, 3, 94.00
🚀 FINAL INTEGRATED PROJECT: Student Management System
🎓 Complete Student Management System ▼

This project combines inheritance, polymorphism, arrays, searching, sorting, methods, and loops into one real-world application.

System Architecture

Person (name, age, displayInfo()) ↑ | extends | Student (studentId, marks[], calculateTotal(), findGrade()) | Teacher (subject, overrides displayInfo())

Person.java (Parent Class)

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() { return name; }
    public int getAge() { return age; }

    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

Student.java (Child Class)

public class Student extends Person {
    private int studentId;
    private int[] marks;

    public Student(int id, String name, int age, int[] marks) {
        super(name, age);
        this.studentId = id;
        this.marks = marks;
    }

    public int calculateTotal() {
        int total = 0;
        for (int m : marks) total += m;
        return total;
    }

    public double calculateAverage() {
        return (double) calculateTotal() / marks.length;
    }

    public String findGrade() {
        double avg = calculateAverage();
        if (avg >= 75) return "A";
        else if (avg >= 65) return "B";
        else if (avg >= 55) return "C";
        else if (avg >= 40) return "D";
        else return "F";
    }

    @Override
    public void displayInfo() {
        super.displayInfo();
        System.out.println("  Student ID: " + studentId +
                           ", Grade: " + findGrade());
    }
}

Menu Operations Implemented

1. Add Student

Read from keyboard, store in Student[] array.

2. Display All

Formatted table of all students.

3. Class Average

Average of all students' averages.

4. Highest Total

Find top scorer.

5. Search by ID

Linear search implementation.

6. Sort by Total

Bubble sort on Student objects.

7. Pass/Fail

Display pass status of each student.

8. Polymorphism Demo

Person[] with Student + Teacher + Person.

Polymorphism in Action

Person[] people = {
    new Student(201, "Ruwan", 18, new int[]{60,70,80}),
    new Teacher("Mr. Silva", 40, "Java"),
    new Person("Visitor", 30)
};

for (Person p : people) {
    p.displayInfo();   // Each object runs ITS OWN version!
}
🏆
Why this project matters: It demonstrates every major Class 4 topic in one cohesive application — inheritance with super, encapsulation with private fields, arrays of objects, linear search, bubble sort, and runtime polymorphism.
📋 Quick Revision & Practice Questions
⚡ Quick Revision Checklist ▼

🧬 Inheritance

extends creates is-a relationship. Single parent only. Children inherit fields/methods.

⬆️ super

super(...) must be first line of child constructor. super.method() calls parent version.

🔒 Access

private = same class only. protected = subclasses + package. public = everywhere.

🔄 Override vs Overload

Override = same signature in subclass. Overload = same name, different parameters.

🎭 Polymorphism

Parent reference + child object. Real object's method runs at runtime.

🔍 String Matching

equals(), contains(), indexOf(), or brute-force character comparison.

🪙 Greedy

Coins, fractional knapsack, activity selection, Huffman, SJF. 0/1 needs DP.

🌳 Huffman

Merge two lowest frequencies. Left=0, right=1. Frequent chars get short codes.

✏️ Practice Questions (Click to reveal hints) ▼
1. Create Vehicle with speed and Car extends Vehicle with doors. Use super in constructor. ▼
💡 Call super(speed) as first line of Car constructor. Car constructor: Car(int speed, int doors) { super(speed); this.doors = doors; }
2. Why can Student not access private String name of Person directly? ▼
💡 private fields are hidden from subclasses. Access via a public getter: public String getName() { return name; }
3. Create Shape with area() and subclasses Circle, Rectangle. Use polymorphism. ▼
💡 Store in Shape[] shapes = {new Circle(5), new Rectangle(4,6)}; Loop with for (Shape s : shapes) s.area(); — each runs its own area()!
4. Difference between overloading and overriding (with examples). ▼
💡 Overloading: add(int,int) and add(double,double) in same class. Overriding: Dog.sound() replaces Animal.sound() in subclass.
5. Make change for 63 using coins 25, 10, 5, 1. Show where greedy fails. ▼
💡 63 = 25+25+10+1+1+1 (6 coins). Greedy fails with coins {4,3,1} for amount 6: gives 4+1+1 (3 coins), but optimal is 3+3 (2 coins).
6. Capacity 10; items (w,v): (5,10),(4,40),(6,30),(3,50). Solve fractional. ▼
💡 Sort by v/w: (3,50)→16.67, (4,40)→10, (5,10)→2, (6,30)→5. Take (3,50)=50, then (4,40)=40, then 3/5 of (5,10)=6. Total: 96.
7. Build Huffman tree for AABBBCCCC. Compute total bits. ▼
💡 Frequencies: A=2, B=3, C=4. Merge: A+B=5, then 5+C(4)=9. Assign codes. Total bits ≈ 17 (vs ASCII 72).
8. Activities (start,finish): (1,4),(3,5),(0,6),(5,7),(8,9),(5,9). Select max compatible set. ▼
💡 Sort by finish: (1,4),(3,5),(0,6),(5,7),(8,9),(5,9). Pick (1,4), then (5,7), then (8,9). Result: 3 activities.
9. Add a method to the project that prints only failed students. ▼
💡 for (int i = 0; i < count; i++) if (!students[i].isPass()) students[i].displayStudent();
🎓 SRI LANKA ONLINE ICT CLASSES · ශ්‍රී ලංකා ඔන්ලයින් ICT පන්ති · இலங்கை ஆன்லைன் ICT வகுப்புகள்

Online ICT Classes in Sri Lanka – O/L, A/L, Cambridge, Edexcel, Python, Web Development & Digital Marketing

Island-wide online classes and home-visit classes in English, Sinhala (සිංහල) and Tamil (தமிழ்) – for school students, university students, BIT / BSc / IT final-year project students, beginners and business owners.

💬 WhatsApp Us Now ▶ Watch Free Tutorials

What is ITClassSL? ITClassSL is a Sri Lankan ICT training service offering online and home-visit classes for G.C.E. O/L ICT, G.C.E. A/L ICT, Cambridge IGCSE / A Level, Pearson Edexcel, Python, Java, PHP & MySQL, web design, Microsoft Office, university and BIT final-year project guidance, and digital marketing. Classes run in English, Sinhala and Tamil, as individual or group sessions, anywhere in Sri Lanka. Contact: WhatsApp +94 72 962 2034 · itclasssl@gmail.com.

🚀 Learn Today. Build Tomorrow.

Looking for ICT classes in Sri Lanka, online ICT tuition, A/L ICT online class, computer classes near me or BIT project help? We provide practical, exam-focused and career-focused IT training with past papers, model papers, step-by-step coding and one-to-one support.

💡 Our ICT Training & Services in Sri Lanka

🏫 School ICT Classes (Grade 1 – 13)

Online and home-visit ICT lessons for Sri Lankan school students.

  • G.C.E. O/L ICT (සාමාන්‍ය පෙළ ICT / சாதாரண தர ICT)
  • G.C.E. A/L ICT (උසස් පෙළ ICT / உயர்தர ICT)
  • GIT (General Information Technology)
  • Term test papers, past papers & revision

🤖 Programming & AI

Learn to code from zero to project level.

  • Python, C, Java, PHP, JavaScript
  • HTML, CSS, jQuery & AJAX
  • AI & machine-learning basics
  • Problem solving & algorithms

🎓 University & Final-Year Project Guidance

Technical guidance for BIT, BSc, IT and ICT students.

  • BIT / UCSC / UoM final-year projects
  • PHP & MySQL, Python, Java projects
  • Project ideas, proposal & documentation
  • System design & database design

🌐 Web Design & Development

Websites and database-driven applications for individuals and businesses.

  • Website design & development
  • WordPress & Blogger
  • PHP & MySQL web applications
  • Website SEO & maintenance

📢 Digital Marketing

Grow your brand online in the Sri Lankan market.

  • Facebook page & Facebook Ads
  • Instagram, Reels, TikTok & YouTube
  • SEO & content creation
  • LinkedIn branding & campaign planning

💻 Computer & IT Skills

Essential computer skills from beginner to advanced.

  • Computer fundamentals
  • MS Word, Excel & PowerPoint
  • Excel formulas & macros
  • Oracle / MySQL / MS SQL, AWS, Linux

🗣️ English · සිංහල · தமிழ் – Classes in Your Language

English

Online ICT classes in Sri Lanka, A/L ICT online class, O/L ICT tuition, computer classes, Python classes, web design course, BIT project guidance, digital marketing course Sri Lanka, home visit ICT teacher, Cambridge & Edexcel ICT / Computer Science.

සිංහල

ශ්‍රී ලංකාවේ ඔන්ලයින් ICT පන්ති, උසස් පෙළ ICT ඔන්ලයින් පන්ති, සාමාන්‍ය පෙළ ICT පන්ති, පරිගණක පන්ති, පයිතන් (Python) ප්‍රෝග්‍රැමින් පන්ති, වෙබ් අඩවි නිර්මාණය, විශ්වවිද්‍යාල අවසන් වසර ව්‍යාපෘති මාර්ගෝපදේශනය, ඩිජිටල් මාකටින් පාඨමාලාව, නිවසට පැමිණ උගන්වන ICT ගුරුවරයා.

தமிழ்

இலங்கையில் ஆன்லைன் ICT வகுப்புகள், உயர்தர ICT ஆன்லைன் வகுப்பு, சாதாரண தர ICT வகுப்பு, கணினி வகுப்புகள், பைதான் (Python) நிரலாக்க வகுப்பு, இணையதள வடிவமைப்பு, பல்கலைக்கழக இறுதியாண்டு திட்ட வழிகாட்டல், டிஜிட்டல் மார்க்கெட்டிங் பயிற்சி, வீட்டிற்கு வந்து கற்பிக்கும் ICT ஆசிரியர்.

📚 Learn With Your Curriculum

Sri Lankan local syllabus, Pearson Edexcel and Cambridge programmes – ICT and Computer Science.

🇱🇰 Sri Lankan Local Curriculum

  • Grade 1 – Grade 11 ICT
  • G.C.E. O/L ICT · සා/පෙළ ICT · சா/த ICT
  • G.C.E. A/L ICT · උ/පෙළ ICT · உ/த ICT
  • GIT classes
  • Term test preparation, model papers & notes
  • English / Sinhala / Tamil medium

📘 Pearson Edexcel

  • iPrimary Computing
  • iLowerSecondary Computing
  • International GCSE ICT
  • International GCSE Computer Science
  • International A Level IT
  • International A Level Computer Science

📗 Cambridge

  • Cambridge Primary & Lower Secondary Computing
  • Cambridge IGCSE ICT
  • Cambridge IGCSE Computer Science
  • Cambridge O Level Computer Science
  • AS & A Level IT
  • AS & A Level Computer Science

💻 Programming & Software Development Classes

Python ProgrammingC ProgrammingJava Programming PHPJavaScriptHTML & CSS jQuery & AJAXASP.NETVB.NET VB6MySQLMS SQL Server MS AccessOracle DatabaseDatabase Design SQL QueriesSoftware DevelopmentSoftware Testing

🎓 BIT, BSc & University Final-Year IT Project Guidance

🧑‍💻 Project Development

  • BIT / BSc / IT / ICT projects
  • PHP & MySQL projects
  • Python & Java projects
  • Web application & database projects

📄 Documentation & Practical

  • Project ideas & proposals
  • System architecture & database design
  • Assignment guidance
  • Technical documentation & viva preparation

🧠 AI & Smart Applications

  • AI application concepts
  • Machine-learning modules
  • Automation applications
  • Step-by-step coding support

📊 Database, Cloud & IT Professional Training

Oracle DatabaseMySQLMicrosoft SQL Server Microsoft AccessAWS CloudLinux UNIXWindows ServerDevOps SREAutomationFreelancing Skills

📱 Digital Marketing & Social Media Training (ඩිජිටල් මාකටින් · டிஜிட்டல் மார்க்கெட்டிங்)

Facebook Page SetupFacebook AdsInstagram Marketing Instagram ReelsTikTok MarketingYouTube Channel Setup Social Media ManagementContent CreationSEO LinkedIn BrandingCampaign PlanningHashtag Strategy Insights & Engagement

🖥️ Microsoft Office & Digital Skills (පරිගණක පන්ති · கணினி வகுப்புகள்)

MS WordMS ExcelMS PowerPoint Excel FormulasExcel Macros & AutomationComputer Fundamentals Digital LiteracyMultimedia Presentations

🧭 How to Join – 4 Simple Steps

  1. Message us on WhatsApp – tell us your grade / course, medium (English, Sinhala or Tamil) and your goal.
  2. Choose your format – online class (island-wide), home-visit class, individual or small group.
  3. Get your plan – schedule, syllabus coverage, notes, past papers or project roadmap.
  4. Start learning – live practical sessions with support between classes.

⭐ Why Join Our ICT Classes?

🌍 Online & Home Visit
Study from anywhere in Sri Lanka or at home.
👥 Individual & Group
One-to-one or small group classes.
🗣️ English / සිංහල / தமிழ்
Learn in the medium you are comfortable with.
📚 School & University
O/L, A/L, Cambridge, Edexcel, BIT, BSc.
📝 Past & Model Papers
Exam-focused practice and revision.
💻 Practical Coding
Build real programs, websites and projects.

❓ Frequently Asked Questions – ICT Classes in Sri Lanka

Do you conduct online ICT classes for O/L and A/L students in Sri Lanka?

Yes. We conduct online ICT classes for G.C.E. O/L and A/L students island-wide, and also offer home-visit individual classes. Classes cover the syllabus, past papers, model papers and revision.

Which languages are the classes taught in? (සිංහල / தமிழ் / English)

Classes are available in English, Sinhala and Tamil medium. / පන්ති ඉංග්‍රීසි, සිංහල සහ දෙමළ මාධ්‍යයෙන් පවතී. / வகுப்புகள் ஆங்கிலம், சிங்களம் மற்றும் தமிழ் மொழிகளில் நடைபெறும்.

Do you teach Cambridge and Pearson Edexcel ICT and Computer Science?

Yes. We support Cambridge Primary to A Level and Pearson Edexcel iPrimary to International A Level, including IGCSE ICT, IGCSE Computer Science and O Level Computer Science.

Can you help with BIT, BSc or IT final-year projects?

Yes. We give technical guidance on project ideas, system design, database design, PHP & MySQL, Python and Java development, and documentation for BIT, BSc, IT and ICT students.

Can I learn Python, PHP, web design or digital marketing as a complete beginner?

Yes. Courses start from absolute beginner level and move step by step to practical projects. No previous experience is needed.

What are the class fees and schedules?

Fees and timetables depend on the subject, grade and whether you choose individual or group classes. Message us on WhatsApp (+94 72 962 2034) for current details.

How can I contact ITClassSL?

WhatsApp or call +94 72 962 2034, email itclasssl@gmail.com, or message us on Facebook and the other platforms listed below.

📞 Ready to Start Learning?

Book your online ICT class or ask about programming courses, university project guidance and digital marketing training.

📱 Call / WhatsApp: +94 72 962 2034

📧 Email: itclasssl@gmail.com

💻 Skype: ITClassSL

💬 Contact Us on WhatsApp

🌐 Our Online Learning Platforms

Tutorials, notes, project guides and learning resources.

ITClassSL — ICT Training | Computer Classes | Programming | University Project Guidance | Digital Marketing

Learn • Practice • Build • Grow 🚀

Popular searches: online ICT classes Sri Lanka · A/L ICT online class · O/L ICT tuition · Cambridge IGCSE ICT Sri Lanka · Edexcel Computer Science Sri Lanka · BIT final year project help · PHP MySQL project guidance · Python classes Sri Lanka · web design course Sri Lanka · digital marketing course Sri Lanka · home visit ICT teacher
සිංහල: ඔන්ලයින් ICT පන්ති · උසස් පෙළ ICT · සාමාන්‍ය පෙළ ICT · පරිගණක පන්ති · ව්‍යාපෘති මාර්ගෝපදේශනය · ඩිජිටල් මාකටින්
தமிழ்: ஆன்லைன் ICT வகுப்புகள் · உயர்தர ICT · சாதாரண தர ICT · கணினி வகுப்புகள் · திட்ட வழிகாட்டல் · டிஜிட்டல் மார்க்கெட்டிங்

No comments:

Post a Comment