Cos 102
Cos 102
Learning Outcomes
At the end of this course, students should be able to:
1. explain problem solving processes;
2. demonstrate problem solving skills;
3. describe the concept of algorithms development and properties of algorithms;
4. discuss the solution techniques of solving problem;
5. solve computer problems using algorithms, flowcharts, pseudocode; etc.; and
6. solve problems using programming language using C, PYTHON, etc.
Course Contents
Introduction to the core concepts of computing. Problems and problem-solving.
The identification of problems and types of problems (routine problems and
non-routine problems). Method of solving computing problems (introduction to
algorithms and heuristics). Solvable and unsolvable problems. Solution
techniques of solving problems (abstraction, analogy, brainstorming, trial and
error, hypothesis testing, reduction, literal thinking, means- end analysis,
method of focal object, morphological analysis, research, root cause analysis,
proof, divide and conquer). General Problem-solving process. Solution
formulation and design: flowchart, pseudocode, decision table, decision tree.
Implementation, evaluation and refinement. Programming in C, Python etc.
Lab Work: Use of simple tools for algorithms and flowcharts; writing
pseudocode; writing assignment statements, input-output statements and
condition statements; demonstrating simple programs using any programming
language (Visual Basic, Python, C).
Solvable Problems:
Problems that have a clear path to a solution. These can be resolved through well-defined
steps and methodologies.
Example: Mathematical problems, puzzles, algorithmic challenges.
Unsolvable Problems:
Problems that do not have a clear solution or are impossible to solve due to various
constraints (logical, physical, or computational).
Example: The Halting Problem in computer science, some philosophical questions.
Solution Techniques
1. Abstraction:
o Simplifying a complex problem by focusing on the main idea and ignoring
specific details.
o Example: Modeling a real-world problem in mathematical terms.
2. Analogy:
o Solving a problem by finding similarities with previously solved problems.
o Example: Using the structure of an atom to understand the solar system.
3. Brainstorming:
o Generating a wide range of ideas to solve a problem without immediately
evaluating them.
o Example: Team meetings to come up with marketing strategies.
4. Trial and Error:
o Attempting different solutions until one works.
o Example: Debugging code by testing various fixes.
5. Hypothesis Testing:
o Formulating hypotheses and testing them to see if they solve the problem.
o Example: Scientific experiments to test a theory.
1. Testable:
o Must be able to be tested through experiments or observations.
o Example: "If I water the plants more frequently, then they will grow faster."
2. Falsifiable:
o Must be possible to prove the hypothesis wrong.
o Example: "Increasing the amount of sunlight will not affect the growth of the
plant" can be proven false if increased sunlight does affect growth.
3. Specific:
o Should clearly state the expected relationship between variables.
o Example: "Students who study for an additional hour each day will score higher
on exams than those who do not."
4. Based on Existing Knowledge:
o Should be grounded in existing theories, observations, or knowledge.
o Example: A hypothesis on plant growth should be based on known factors
affecting plant growth like sunlight, water, and soil quality.
Types of Hypotheses:
Formulating a Hypothesis:
1. Formulate Hypothesis:
o Null Hypothesis (H0): "The amount of water does not affect plant growth."
o Alternative Hypothesis (H1): "The amount of water affects plant growth."
2. Design Experiment:
o Water two groups of plants with different frequencies.
3. Collect Data:
o Measure the growth of plants over a set period.
4. Analyze Results:
o Compare the growth of the two groups.
5. Draw Conclusions:
o Accept or reject the null hypothesis based on the data analysis.
Importance of Hypotheses:
6. Reduction:
o Breaking a problem into smaller, more manageable parts.
o Example: Decomposing a large project into smaller tasks.
7. Literal Thinking:
o Addressing a problem exactly as stated, without looking for hidden meanings.
o Example: Following instructions step-by-step without interpretation.
8. Means-End Analysis:
o Comparing the current situation with the desired goal and finding ways to reduce
the difference.
o Example: Developing a plan to bridge the gap between current sales and target
sales.
9. Method of Focal Object:
o Combining characteristics of different objects to create new ideas.
o Example: Creating new product designs by merging features of existing products.
10. Morphological Analysis:
o Exploring all possible solutions to a multi-dimensional problem by systematically
varying parameters.
o Example: Developing new product ideas by changing various attributes like size,
color, and function.
11. Research:
o Gathering information and studying previous work related to the problem.
o Example: Reviewing scientific literature to find potential solutions.
12. Root Cause Analysis:
o Identifying the fundamental cause of a problem.
o Example: Using the 5 Whys technique to find the underlying issue in a
manufacturing defect.
13. Proof:
o Demonstrating that a solution is correct through logical reasoning.
o Example: Mathematical proofs to verify the correctness of algorithms.
14. Divide and Conquer:
o Breaking a problem into smaller sub-problems, solving each one independently,
and combining the results.
o Example: Sorting algorithms like Merge Sort and Quick Sort.
1. Flowchart:
o Visual representation of the sequence of steps in a process.
o Example: Flowchart for a customer service process.
2. Pseudocode:
o Writing the algorithm in a structured but plain language format.
o Example: Pseudocode for a sorting algorithm.
3. Decision Table:
o Tabular representation of different conditions and their corresponding actions.
o Example: Decision table for loan approval process.
4. Decision Tree:
o Tree-like model of decisions and their possible consequences.
o Example: Decision tree for troubleshooting network issues.
1. Implementation:
o Execute the plan using the chosen tools and methods.
o Example: Coding a software application.
2. Evaluation:
o Assess the solution’s performance and effectiveness.
o Example: Testing a new product for quality and user satisfaction.
3. Refinement:
o Make necessary adjustments to improve the solution.
o Example: Iterating on a design based on user feedback.