IT26CT01 - Essentials of Computing: Computational Thinking, Problem Solving, and Algorithm Design
Basics of Computing
- Computing is the process of using computational methods, algorithms, and computer systems to collect, represent, process, store, and communicate information to solve problems.
- A computer accepts data as input, processes it according to instructions, and produces meaningful output.

- Calculation Example: A program calculates a student's average mark based on five subject marks:
- Input: Marks of five subjects: 80, 75, 90, 85, and 70.
- Processing: Add the marks and divide the total by five.
- Formula:
Average=580+75+90+85+70=80
- Output: The average mark (80).
- The processing converts raw marks into useful, structured information.
- Data: Raw facts that have not yet been processed into a meaningful result (e.g., individual subject marks).
- Information: Data that has been processed and organized to provide meaning (e.g., calculated average and result status).
- Processing: The performance of operations on data to produce information.
- Algorithm: A finite sequence of well-defined steps used to solve a problem.
- Program: An implementation of an algorithm using a specific programming language.
Computational Thinking
- Computational thinking is a systematic approach to problem-solving that develops solutions using concepts and techniques that can be executed by humans or computers.
Major Elements of Computational Thinking
- Decomposition: Breaking a complex problem into smaller subproblems.
- Pattern Recognition: Identifying similarities and repeated structures.
- Abstraction: Focusing on important information and ignoring irrelevant details.
- Algorithm Design: Developing a clear, ordered sequence of steps to solve the problem.
Real-World Analogy: College Symposium
- Organizing a college symposium involves separate tasks such as venue booking, registration, scheduling, and certificate preparation.
- Decomposition: Breaking the event into these separate individual tasks.
- Pattern Recognition: Identifying repeated tasks from previous events.
- Abstraction: Focusing on participant count and venue capacity while ignoring irrelevant background details.
- Algorithm Design: Preparing the final step-by-step event schedule.
Decomposition
- Decomposition is the process of dividing a large or complex problem into smaller, manageable subproblems that can be solved independently or in a structured sequence.
- A complex problem becomes easier to understand and execute when divided into smaller subtasks.
Example: Student Result Processing System

- A college result program decomposed into subtasks:
- Enter student details
- Enter subject marks
- Validate marks
- Calculate total
- Calculate average
- Generate result
- Each subtask can be designed and tested separately before combining them into the complete system.
Advantages of Decomposition
- Reduces Complexity: Smaller individual tasks are significantly easier to comprehend.
- Simplifies Testing: Each component can be isolated and tested independently.
- Improves Reusability: Subtasks can be reused across different programs.
- Supports Teamwork: Different team members can work simultaneously on separate components.
- Simplifies Maintenance: Errors can be located and repaired more easily.
Example: Calculating the Area of a Room
- The overall task is decomposed into four sequential operations:
- Obtain the length.
- Obtain the breadth.
- Multiply the two values.
- Display the area.
- Formula:
Area=Length×Breadth
- Decomposition transforms a general high-level task into a sequence of simple operations.
Abstraction
- Abstraction is the process of identifying the essential features of a problem while ignoring details that are not relevant to solving it.
- It reduces complexity by concentrating only on the information required for a particular task.
Real-World Analogy & Examples
- Road Map: A road map displays roads, junctions, and important landmarks but omits trees, individual buildings, and minor terrain features to provide only the information needed for navigation.
- Library Management System:
- Relevant Details: Book ID, Book title, Author, Availability status, Borrower ID, Due date.
- Irrelevant Details: The color of a book's cover or the material of a bookshelf.
- Context Dependence: Book-cover color becomes relevant only if the system specifically manages physical appearance or visual inventory.
- Data Abstraction: Showing essential data properties while hiding unnecessary implementation details.
- Procedural Abstraction: Representing a complex sequence of operations as a named procedure or function.
- Model Abstraction: Creating a simplified representation of a real-world system.
- Control Abstraction: Using constructs such as loops and conditional statements instead of describing every low-level execution step.
Decomposition vs. Abstraction
| Parameter | Decomposition | Abstraction |
|---|
| Core Process | Breaks a problem into smaller parts. | Simplifies a problem by selecting relevant details. |
| Primary Focus | Focuses on dividing the work. | Focuses on reducing unnecessary complexity. |
| Example | Dividing result processing into input, calculation, and reporting. | Retaining marks and grading rules while ignoring irrelevant student details. |
| Role in Solution | Helps organize the overall solution. | Helps determine what information the solution needs. |
| Key Question | "What smaller tasks make up this problem?" | "Which details are necessary to solve it?" |
- Converting real-world information into computable data is the process of transforming facts, measurements, observations, and events into structured representations that a computer can store, process, and analyze.
Human Reality vs. Machine Reality
- Continuous Real World (Analog): Human inputs—such as sound waves, room temperatures, changes in ambient light, or physical pressure—exist as infinitely variable, continuous waves.
- Discrete Computer System (Digital): Modern microprocessors consist of billions of microscopic electronic switches called transistors. These switches exist in one of two physical states:
- ON: Current is flowing, represented as 1
- OFF: Current is blocked, represented as 0
- Every piece of real-world information must be systematically encoded into a sequence of binary digits (bits) before a processor can store, manipulate, or compute it.
- Computers utilize specialized hardware interfaces called Sensors and Converters to translate the physical universe into binary strings via Digitization.
Digitization Across Data Types
- Text:
- Real-World: A handwritten letter or printed book.
- Digitization: Each character (e.g.,
'A', 'b', '!') is assigned a unique numerical value represented in binary. Unicode is the universal standard for representing characters across writing systems. - Example: Character
'A' is represented by decimal value 6510, which translates to binary 010000012
- Images:
- Real-World: A photograph.
- Digitization: An image is divided into a fine grid of small squares called pixels. Each pixel is assigned a numerical value representing color/brightness.
- Grayscale: A single number represents brightness (0 for pure black, 255 for pure white).
- Color: RGB values represent combinations of red, green, and blue light (e.g., hexadecimal color code
#FF0000 represents pure red).
- Sound:
- Real-World: A continuous sound wave.
- Digitization: Measured at regular, high-speed intervals through Sampling. Each sample is assigned a numerical value representing wave amplitude at that point in time.
- Numbers:
- Real-World: Temperature from a thermometer, stock price, or city population.
- Digitization: Directly represented in the computer's native base number systems because numerical data is inherently discrete.
Steps in Data Representation

- Real-world observation: A student's examination marks are recorded.
- Identify relevant information: Identify the student, subject, and mark.
- Select data representation: Use an integer or suitable numeric type for marks.
- Validate and standardise: Check the permitted mark range and format.
- Process the data: Calculate total, average, or grade.
- Present the result: Display the calculated result clearly.
Types of Computable Data
| Data Type | Meaning | Example |
|---|
| Integer | Whole number | 25 |
| Floating-point | Number with a fractional part | 87.5 |
| Character | Single character | 'A' |
| String | Sequence of characters | ` |