🟦 GCE A/L ICT – Competency 9
Algorithms + Python Programming | Problem Solving to Execution | Theory + Code + Exam Patterns
GCE A/L ICT - UNIT 9: PROGRAMMING
1. Fundamentals of Problem Solving & Algorithm Design
1.1. Concept of Problem Solving
1.2. Identification of Inputs, Processes, and Outputs (IPO)
1.3. Step-by-Step Approach to Problem Solving
1.4. Representation of Algorithms
1.4.1. Flowcharts (Standard Symbols: Terminal, Input/Output, Process, Decision, Flowlines)
1.4.2. Pseudo-code (Structured Keywords: IF-THEN-ELSE, WHILE, FOR)
2. Introduction to Programming Languages
2.1. Evolution of Programming Languages (Low-level vs. High-level)
2.2. Translators: Compilers, Interpreters, and Assemblers
2.3. Characteristics of the Python Programming Language
3. Basic Syntax and Coding Fundamentals in Python
3.1. Python Coding Environment (IDLE, Script Mode vs. Interactive Mode)
3.2. Identifiers, Keywords, and Naming Conventions
3.3. Variables and Assignment Statements
3.4. Basic Data Types
3.4.1. Integer (int)
3.4.2. Floating-point (float)
3.4.3. String (str)
3.4.4. Boolean (bool)
3.5. Operators and Expressions
3.5.1. Arithmetic Operators (+, -, *, /, //, %, **)
3.5.2. Relational / Comparison Operators (==, !=, >, <, >=, <=)
3.5.3. Logical Operators (and, or, not)
3.6. Basic Input and Output Functions (input() and print())
4. Control Structures
4.1. Sequence Control Structure
4.2. Selection / Decision-Making Structures
4.2.1. Simple 'if' statement
4.2.2. 'if - else' statement
4.2.3. Nested 'if' and 'if - elif - else' chains
4.3. Iteration / Looping Structures
4.3.1. Condition-controlled loops ('while' loop)
4.3.2. Count-controlled loops ('for' loop with range() function)
4.3.3. Nested Loops
4.3.4. Loop control statements (break, continue)
5. Python Data Structures (Collections)
5.1. Strings (Indexing, Slicing, and String Methods)
5.2. Lists (Creating, Indexing, Mutable properties, List Methods)
5.3. Tuples (Immutable sequences)
5.4. Dictionaries (Key-Value pairs, Accessing and Modifying keys)
6. Functions and Modularity
6.1. Concept of Modular Programming
6.2. Built-in Functions vs. User-defined Functions
6.3. Function Definition (def keyword) and Arguments/Parameters
6.4. Return Values (return statement)
6.5. Scope of Variables: Local vs. Global Variables
7. File Handling
7.1. Concept of Data Persistence
7.2. Opening and Closing Files (open(), close())
7.3. File Access Modes ('r' for Read, 'w' for Write, 'a' for Append)
7.4. Reading from Text Files (read(), readline(), readlines())
7.5. Writing data to Text Files (write(), writelines())
8. Error and Exception Handling
8.1. Types of Programming Errors (Syntax, Runtime, Logical Errors)
8.2. Handling Exceptions using 'try - except' blocks
9. Database Connectivity (Python with SQLite)
9.1. Establishing a Database Connection
9.2. Executing SQL queries via Python Scripting (CRUD Operations)
10. Standard Algorithms in Python
10.1. Implementing Linear Search
10.2. Implementing Bubble Sort
📘 Competency 9 Overview | Problem-Solving Process ▼
“Develops algorithms to solve problems and uses Python programming language to encode algorithms.”
அதாவது: Problem → Algorithm → Flowchart/Pseudocode → Python Program → Testing/Debugging
ஒரு programming question வந்தால், நேரடியாக Python எழுதுவது மட்டும் போதாது. முதலில் problem-ஐ புரிந்துகொண்டு, solution-ஐ திட்டமிட்டு, algorithm உருவாக்கி, பின்னர் அதை Python-ல் எழுத வேண்டும்.
9.1 Problem-Solving Process (4 Stages)
1. Understanding
பிரச்சினையைப் புரிந்துகொள்ளுதல் (Input, Output, Conditions)
2. Defining
பிரச்சினை மற்றும் அதன் எல்லைகளை (boundaries) வரையறுத்தல்
3. Planning
தீர்வைத் திட்டமிடுதல் (Algorithm/Flowchart)
4. Implementation
தீர்வை Python-ல் செயல்படுத்துதல்
Q: பிரச்சினை தீர்க்கும் செயல்முறையின் நான்கு முக்கிய படிகளை எழுதுக.
Answer:
- பிரச்சினையைப் புரிந்துகொள்ளுதல்
- பிரச்சினை மற்றும் அதன் எல்லைகளை வரையறுத்தல்
- தீர்வைத் திட்டமிடுதல்
- தீர்வை செயல்படுத்துதல்
🏗️ 9.2 Top-Down Design & Stepwise Refinement ▼
Modularization
ஒரு பெரிய problem-ஐ சிறிய, manageable modules-ஆக பிரிப்பது. (Eg: School System → Student, Attendance, Exams)
Top-Down Design
Big problem → Small problems. மேலிருந்து கீழாக problem-ஐ பிரிப்பது.
Stepwise Refinement
ஒரு பெரிய task-ஐ தொடர்ந்து சிறிய tasks-ஆக detail-ஆக பிரித்துக் கொண்டே செல்வது.
Structure Chart Example
Q: Top-down design என்றால் என்ன?
Answer: ஒரு பெரிய பிரச்சினையை முதலில் முக்கிய modules-ஆகவும், பின்னர் அவற்றை சிறிய sub-modules-ஆகவும் பிரித்து தீர்வு காணும் முறையே Top-down design ஆகும்.
🧠 9.3 Algorithmic Approach | Flowchart & Pseudocode ▼
Algorithm என்பது ஒரு problem-ஐ solve செய்வதற்கான finite, clear, ordered steps ஆகும்.
Algorithm-ன் 5 Characteristics
1. Finiteness
ஒரு கட்டத்தில் முடிவடைய வேண்டும்.
2. Definiteness
ஒவ்வொரு step-உம் தெளிவாக இருக்க வேண்டும்.
3. Input
Input இருக்கலாம் (zero or more).
4. Output
Result/output கண்டிப்பாக கொடுக்க வேண்டும்.
5. Effectiveness
Practical-ஆக execute செய்யக்கூடியதாக இருக்க வேண்டும்.
Flowchart Symbols
| Symbol | பயன்பாடு |
|---|---|
| Oval | Start / Stop |
| Rectangle | Process |
| Parallelogram | Input / Output |
| Diamond | Decision |
| Arrow | Flow direction |
Pseudocode Example (Largest of 2 numbers)
Hand Trace Example
| Step | a | b | c | Output |
|---|---|---|---|---|
| Initial | 5 | 3 | - | - |
| c=a+b | 5 | 3 | 8 | - |
| print(c) | 5 | 3 | 8 | 8 |
123 என்ற எண்ணை 321 ஆக reverse செய்யும் logic:
🧩 9.4 Programming Paradigms & Generations ▼
Imperative
"How to do?"
Computer என்னென்ன steps செய்ய வேண்டும் என்று programmer கூறுவார். (Eg: Python loops)
Declarative
"What should be done?"
எப்படி செய்ய வேண்டும் என்பதை விட என்ன result வேண்டும் என்பதில் focus. (Eg: SQL)
Object-Oriented
Program-ஐ objects மற்றும் classes அடிப்படையில் அமைப்பது. (Eg: Python classes)
Programming Language Generations
| Generation | Name | Example |
|---|---|---|
| 1GL | Machine language | Binary (0s, 1s) |
| 2GL | Assembly | Assembly Language |
| 3GL | High-level | C, Java, Python |
| 4GL | Very high-level | SQL, MATLAB |
⚙️ 9.5 Program Translation (Compiler vs Interpreter) ▼
Computer நேரடியாக high-level Python statements-ஐ execute செய்யாது. எனவே translation தேவை.
Compiler
முழு source program-ஐ ஒரே நேரத்தில் translate செய்கிறது. Execution வேகம் அதிகம். Object code உருவாகும்.
Interpreter
Program-ஐ line-by-line translate மற்றும் execute செய்கிறது. Python பொதுவாக இதைப் பயன்படுத்துகிறது.
Linker
பல object modules / libraries-ஐ ஒன்றாக இணைத்து executable program உருவாக்க உதவுகிறது.
Compiler vs Interpreter
| Compiler | Interpreter |
|---|---|
| Whole program at once | Statement/line at a time |
| Faster execution | Generally slower |
| Produces Object code | No standalone object code |
| Errors reported after compilation | Errors appear during execution |
🐞 9.6 IDE & Debugging (3 Types of Errors) ▼
IDE (Integrated Development Environment) என்பது Code editor, Run/Execute, Debugger போன்ற tools-ஐ ஒரே environment-ல் வழங்குவது.
3 முக்கிய Errors
1. Syntax Error
Grammar தவறு. Program run ஆகாது.if x > 5 (: missing)
2. Runtime Error
Program run செய்யும்போது crash ஆகும்.x = 10 / 0 (Division by zero)
3. Logical Error
Program execute ஆகும். ஆனால் answer தவறாக இருக்கும்.area = length + width (Should be *)
🐍 9.7 Python Basics | Variables, Types & Operators ▼
Basic Structure & Data Types
int
age = 18
float
price = 25.50
str
name = "Ali"
bool
passed = True
Operators & Precedence
- Arithmetic:
+, -, *, /, %, **, // - Relational:
>, <, >=, <=, ==, != - Logical:
and, or, not
result = 2 + 3 * 4 → First 3*4=12, then 2+12=14.(2 + 3) * 4 → Answer = 20
🔀 9.8 Control Structures (Sequence, Selection, Repetition) ▼
1. Sequence
Statements order-ஆக execute ஆகும்.a=10b=20c=a+b
2. Selection
Condition அடிப்படையில் decision.if marks >= 50:
print("Pass")else:
print("Fail")
3. Repetition
Looping statements.for i in range(1, 6):
print(i)
Nested Control Structure
Q: Control structures மூன்றை எழுதுக.
Answer: 1. Sequence, 2. Selection, 3. Repetition
🧱 9.9 Sub-programs / Functions ▼
Local vs Global Variables
| Local | Global |
|---|---|
| Function-க்குள் உருவாக்கப்படுகிறது | Program-க்கு வெளியே உருவாக்கப்படுகிறது |
| Scope limited to function | Wider scope (entire program) |
Q: Student name & food item-ன் முதல் மற்றும் கடைசி எழுத்துகள் ஒரே மாதிரியா என பரிசோதிக்கும் function.
📦 9.10 Data Structures (Strings, Lists, Tuples, Dicts) ▼
String
name = "Python"
Index: name[0] is 'P', name[-1] is 'n'
List
nums = [10, 20]
Mutable (changeable).
Methods: append(), pop(), sort()
Tuple
nums = (10, 20)
Immutable (cannot change).
Dictionary
std = {"name": "Ali", "age": 18}
Key-value pairs. std["name"]
List operations trace:
💾 9.11 & 9.12 File Handling + Database (SQL) ▼
File Handling Modes
| Mode | Meaning |
|---|---|
"r" | Read |
"w" | Write (Overwrites existing data ⚠️) |
"a" | Append (Adds to end of file) |
Database CRUD Operations (SQL)
Create (Insert)
INSERT INTO Student VALUES (101, 'Ali');
Read (Select)
SELECT * FROM Student;
Update
UPDATE Student SET name='Ahmed' WHERE id=101;
Delete
DELETE FROM Student WHERE id=101;
🔍 9.13 Searching and Sorting (Sequential & Bubble) ▼
Sequential Search
Data ஒன்றை ஒன்றாக sequentially check செய்வது.
Bubble Sort (Ascending)
Adjacent elements-ஐ compare செய்து order தவறாக இருந்தால் swap செய்வது.
இரண்டு values-ஐ swap செய்யும்போது ஒரு value-ஐ பாதுகாப்பாக வைத்திருக்க
temp பயன்படுகிறது.Python shortcut:
a, b = b, a
🏆 Exam Priority & 5-Way Problem Solving Trick ▼
🔥 Exam Focus Priority
| Priority | Section |
|---|---|
| 🔥🔥🔥 மிக முக்கியம் | 9.3 Algorithms, 9.7 Python basics, 9.8 Control structures, 9.9 Functions, 9.10 Data structures |
| 🔥🔥 முக்கியம் | 9.13 Search & Bubble sort, 9.5 Translators, 9.2 Top-down |
| 🔥 Theory | 9.11 Files, 9.12 Database (SQL), 9.6 IDE, 9.4 Paradigms |
ஒரே problem-ஐ 5 விதமாக எழுதத் தெரிந்திருக்க வேண்டும்:
1. Algorithm
START
INPUT N
IF N MOD 2 = 0 THEN
OUTPUT "Even"
ELSE
OUTPUT "Odd"
END IF
STOP
2. Pseudocode
READ N
IF N % 2 == 0 THEN
PRINT "Even"
ELSE
PRINT "Odd"
3. Python Code
n = int(input())
if n % 2 == 0:
print("Even")
else:
print("Odd")
4. Flowchart
Start → Input N → Diamond (N%2==0?) → Yes (Even) / No (Odd) → Stop
5. Hand Trace (N=7)
n = 7
n % 2 = 1
Condition (1==0) is False
Output: Odd
🎓 Expert ICT, Coding, School Classes, Digital Marketing & University Project Guidance
Struggling with your university final year project? Want to master coding, upscale your business with expert digital marketing, or learn absolute computer basics from scratch? We offer high-quality individual and group online classes conducted in English, Sinhala, or Tamil mediums. Get guaranteed academic success and professional growth with tailored guidance.
🎓 University Final Year Project Guidance & AI
Get specialized, end-to-end mentoring and technical support to pass your degree or master's program with flying colors:
- 🏫 Targeted Institutes: Expert guidance tailored for BIT UCSC, UoM, SLIIT, NIBM, and other leading universities.
- 🔬 Postgraduate Support: Comprehensive assistance for MSc Software Final Year Projects.
- 🤖 AI & Smart Applications: Step-by-step implementation of AI, Machine Learning (ML), and automation modules.
- ✅ Guaranteed Success: Help with documentation, system architecture, coding, and viva preparation.
🏫 School ICT & Corporate Beginner Classes
- 💻 Non-IT Staff Computer Basics: Absolute beginner-friendly online classes covering essential computer skills, office tools, and internet operations.
- 🎒 Primary & Secondary (Grades 1-10): Interactive online ICT classes tailored to build strong foundations from early ages.
- 📝 Exam Prep: Dedicated training packages for GCE O/L, GCE A/L ICT, and GIT exams.
- 🌍 Global Syllabuses: Complete curriculum coverage for Local, Edexcel, and Cambridge in English & Tamil Mediums.
📢 Software Development & Digital Marketing Services
- ⚙️ Software & Web Development: Professional custom software application and website development built using PHP & MySQL.
- 🎯 Social Media Management: Content creation, publishing, and channel management for Facebook, Instagram, TikTok, and YouTube.
- 📈 Ad Boosting: Highly targeted paid advertising campaigns to drive leads, traffic, and sales to your business.
📞 Connect With Us Instantly
Book your slot for online classes or get a premium tech service quote today!
💬 WhatsApp: +94 729622034
📧 Email: ITClassSL@gmail.com
🌐 Explore Our Resources & Communities
Stay updated with our latest tutorials, project ideas, and student guides across all our official platforms:
- 📺 YouTube Tutorials: Subscribe to our Channel
- 💼 Professional Network: Connect on LinkedIn
- ✍️ Tech Blog: Visit our WordPress Site
- ❓ Project Q&A: Follow our Quora Guide Profile
- 📰 Monthly Updates: Read Our Newsletter
- 🌐 Official Portfolios: Wix Site | Google Business | Strikingly Portfolio
- 🗣️ Student Forum: Join our ElaKiri Discussion Thread