0% found this document useful (0 votes)
2 views

Computer science Expose

The document outlines a comprehensive scheme of work on advanced problem-solving strategies in computer science, detailing modules that cover definitions, computational complexity, algorithmic approaches, and AI-driven solutions. It emphasizes the importance of problem-solving in innovation, efficiency, security, and automation across various fields. The study aims to equip individuals with the skills to recognize and design efficient solutions to complex computational challenges.

Uploaded by

njamgatony9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Computer science Expose

The document outlines a comprehensive scheme of work on advanced problem-solving strategies in computer science, detailing modules that cover definitions, computational complexity, algorithmic approaches, and AI-driven solutions. It emphasizes the importance of problem-solving in innovation, efficiency, security, and automation across various fields. The study aims to equip individuals with the skills to recognize and design efficient solutions to complex computational challenges.

Uploaded by

njamgatony9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Expose entitle:

FURTHER PROBLEM SOLVING; STRATEGIES AND


APPLICATION

Group members:
 Tamekue Tegnofe Jeremie
 Wanda Yomi Emmanuel
 Chiekeu Fred Vidal
 Heussi Paul
 Tiodjo Adriel Jessy

SCHEME OF WORK:

Module 1: A brief introduction to problem solving.

 Definition……………………………………………………….
 Importance……………………………………………………...
 Scope of the study……………………………………………
 Objectives……………………………………………………….

Module 2: Definition of terms and examples on further problem solving

 Information hiding and Abstraction…………………………


 Computational complexity of an algorithm…………………...
 Expressing Complexity and calculating Time Complexity….
 Complexity of a problem……………………………………….
 Big O Notation…………………………………………………..
 Solvable and Unsolvable problems…………………………..
 Non computable problems……………………………………..
 Decision problems……………………………………………….

Module 3: Foundation of computational problem solving


 Definition of computational problem……………...........
 Characteristics……………………………………………………
 Classification……………………………………………………….
 Algorithm and its role……………………………………………...

Module 4: Algorithmic approach in problem solving.

 Stages involve in problem solving……………………………….


 Algorithmic design to solve problem……………………………
 AI-driven problem-solving (Machine learning approach) …

Module 5: Impacts and conclusions.

 Global impacts and conclusions………………………………...

Module 1: A brief introduction to problem solving.

Introduction:

In the ever-evolving landscape of computer science, problem-


solving transcends mere logical deduction and computational execution; it
embodies a profound synthesis of algorithmic ingenuity, mathematical
rigor, and systemic optimization. As computational paradigms grow
increasingly sophisticated, the imperative to devise innovative solutions to
intricate problems necessitates a mastery of advanced methodologies that
extend beyond conventional heuristics.

Definition:

Problem solving is the systematic process of analyzing, formulating


and implementing efficient solutions to computational challenges. It
involves identifying a problem, understanding its constraints and
designing an algorithm or any model to address it and optimizing efficient
and accurate solutions.
Importance of problem solving

Problem solving has a lot of importance in all disciplines (globally) as listed


below.

1) Innovation: It drives technological advancement by addressing


complex challenges in fields like AI, data science and cybersecurity.

2) Efficiency optimization: Problem-solving enables the creation of


efficient algorithms that improve software performance and resource
usage.

3) Security: It plays a crucial role in the development of cryptographical


algorithms and protecting vulnerable software.

4) Automation: Problem solving enables the development of automated


systems that perform tasks with minimal human intervention and by
so doing enhancing productivity.

5) Scalability: It supports the design of scalable systems capable of


handling large data sets and complex computations.

Scope of the study

The study of advanced problem solving in computer science encompasses


(dives into) a wide range of topics focusing on these key areas:

A) Algorithm Design and Optimization


 Exploration of fundamental and advanced for solving
computational problems including sorting, searching and
graph algorithms
 Optimization techniques for enhancing efficiency and
scalability, such as dynamic programming and greedy
algorithms.

B) Computational Complexity
 Understanding the classification of problems based on their
computational difficulties.
C) Artificial Intelligence and Machine Learning
 Investigating the use of machine learning models to solve
problems in areas such as data analysis, pattern
recognition, and predictive modelling.
 Exploring how AI-driven approaches can enhance
problem-solving capabilities, including reinforcement
learning, neural networks, and decision-making
algorithms.

D) Real World Solving Applications


 Application of problem-solving techniques in real world
scenarios such as software engineering and cyber
security.
 Introduction in case studies such as medical research
robotics etc....

Objectives of problem solving

Advanced problem solving mainly aims at developing in an individual the


ability of recognizing a problem and designing efficient and accurate
solutions to the problem. Here are some other objectives of problem
solving just to list a few:

 To understand core problem solving techniques


 To explore computational complexity (analyzing different categories
of problems)
 To examine Heuristic and Approximate solutions
 Investigate AI driven approaches
 Apply problem solving to real world scenarios etc.....
These are some of those objectives. Now let’s dive further into the
matter

Module 2: Definition of terms and examples on further problem solving

A) Information Hiding and Abstraction

Information hiding and abstraction are the principles which are necessary
in the design and use of complicated systems. For example a person using
the web does not need to know what a router is or protocol or how web
browser interqct with the operating system.

Information hiding means hiding design details behind the standard


interface.
Abstraction is a mechanism and practice to reduce and factor out details
so that one can focus on a few concepts at a time. Abstraction involves:

 Identifying information required for a solution.


 Ignoring information that is not required for a solution.
 Hiding unnecessary details.

B) Computational complexity of an algorithm

The computational complexity of algorithm is how economical the


algorithm is with respect to time and space.

 Time complexity: The time complexity of an algorithm is a function


of the running time of the algorithm. In other words, it is the amount
of computer time it needs to run to completion or the time
complexity of an algorithm gives the amount of time the algorithm
will take to run completely.

 Space complexity of an algorithm: it indicates how much


memory the algorithm needs. In other words, the space complexity
of an algorithm is a function of the space needed by the algorithm to
run completely.

C) Expressing Complexity and calculating Time Complexity

The established method for the analysis of an algorithm’s time complexity


is based on counting the number of times the algorithms basic
operations is executed on an input of size n. For a given input size n,
the time T to run the algorithm is expressed as a function of n, written as
T(n).

Example: consider the problem of summing the first n natural numbers


e.g. 1,2,3,…,100, where n=100

 One way this can be done is to add each number in turn to a


running total: 1 + 2= 3, then 3 + 4= 7, then 7 + 5= 12, and
so on.

This algorithm can be expressed in the following pseudocode

Function SumNaturalNumbers(n)

BEGIN

Sum 0

for i 1 To n Do
Sum Sum + i

Endfor

Display Sum

END

Tracing this algorithm for n =100 produces the sum result = 5050.
1
 Another way that this can be done using the formula Sum = n ( n+1 )
2

Function SumNaturalNumbersByFormula(n)

BEGIN

Sum n∗(n+1)/2

return sum END

Tracing this algorithm for n = 100 produces the result Sum = 5050,
In the case of SumNaturalNumbers(n) the basic operation of addition
dominates over all small values of n. In fact there are n additions i.e.
T(n) =n.In the case of SumNaturalNumbersByFormula (n) if we
consider that multiplication, addition and division are basic operations and
that they take the same time, we have
three operations, hence T(n) = 3.

D) Complexity of a problem

Complexity of a problem is taken to be worst case complexity of the most


efficient algorithms which solves the problem.

- Work-case analysis: It is the maximum number of steps the algorithm


takes for any possible input.

- Average-case analysis: How much memory will it use on average?


It is calculated by dividing all instances of size n into several classes so
that
for each instance of the class, the number of times the algorithm’s basic
operation is executed is the same.

- Best case: is the minimum number of steps the algorithm takes for any
possible input (or inputs) of size n.
E) Big O Notation

Some basic concepts:


1) Constant multipliers do not affect Big-O.Example: 10000n² and
0.0009n² are both O(n²).
2) Lower order terms do not affect Big-O. e.g 2 2n+n1000
3) The Big-O notation is a way of measuring the order of magnitude of
a mathematical expression. O(n) means the order of n. if f(n) =
O(g(n)) means there are positive constants c and k such that; 0 ≤
f(n) ≤ c g(n) for all n ≥ k. to convert time functions of an
algorithm to Big-O notation of an algorithm
- Take off the largest term of the function.
- Ignore any constant (coefficients) if any.

Some Big-O rules:

 O(k) = O(1).
Constant times are expressed as O(1).

 O(kT) = O(T).
Constants inside a function are ignored.

 O(T) + O(T²) = O(T²).


When adding functions together, the bigger of the two functions is
chosen.

 O(T) . O(T) = O(T²).


The product of two separate functions gives the product of functions
inside.

F) Solvable and Unsolvable Problems


It is useful to classify problems into those that are algorithmic in nature
(solvable problems) and those that have the potential for nature
(unsolvable problems).

G) Non-computable Problems

An algorithmic problem for which there is no algorithm that can be used to


solve it.
Example
 The Halting Problem
The Halting problem is a problem of determining whether, for a given
input, a program will finish running or continue forever.

 The Tiling Problem


A tiling problem asks us to cover a given region using a given set of tiles
completely and without any overlapping.

H) Decision Problems
A decision problem is a problem with a YES/NO algorithmic problem or
answer. For example, we require an algorithm to decide if a given positive
integer n is prime. The algorithm is to output Yes if n is prime and No if it is
not. Here is a program outlining that :

#include <stdio.h>
#include <math.h>

int main() {
int i, n, prime;

printf("Input n: ");
scanf("%d", &n);

prime = 1;
for (i = 2; i <= round(sqrt(n)); i++) {
if (n % i == 0) {
prime = 0;
}
}

if (prime) {
printf("Yes\n");
} else {
printf("No\n");
}

system("pause");
return 0;
}
Module 2: Foundation of computational problem solving

Definition of computational Problems:

It is a question or a task that can be solved using a


sequence of well-defined computational steps. It involves whether a
solution exists, finding the solution or optimizing the solution under certain
constraints.

Computational problems vary in complexity and can be classified based on


the nature of the solution, such as decision problems, optimizing problems,
or search problems. These problems are the foundation of algorithms
research, where various techniques are developed to efficiently solve
them.

Characteristics

Computational problems have the following characteristics.

A) Well-Defined Input and Output


A computational problem must have a clear specification of the input
(data provided) and the expected output (desired result).

B) Definite Constraints
The problem includes certain limitations such as time complexity,
space complexity, and input size, which influence the choice of the
solutions approach.

C) Complexity Measure
Each computational problem has a complexity class (e.g., P, NP, NP-
hard), which determines how efficiently it can be solved using an
algorithm.
D) Computability
A problem is computational if it can be solved algorithmically using a
finite sequence of steps. Some problems are undecidable, meaning
no algorithm can solve them in all cases.

Classification of Computational Problems

The classification of computational problems can be approached from


different perspectives. The general classification includes decision
problems, optimization problems, search problems, etc. However, from a
computational complexity standpoint, problems are classified based on
their difficulty and the resources needed to solve them. This leads to the
complexity classes, such as P, NP, and NP-hard.

The classification based on the difficulty and resources needed to


solve them.

1) P (Polynomial Time)
These are problems that a computer can solve efficiently, meaning
in a reasonable amount of time (Polynomial time). e.g. Sorting a list
of numbers

2) NP (Nondeterministic Polynomial Time)


These problems might be hard to solve, but if we are giving a
solution, we can check it quickly. e.g. solving a Sudoku puzzle.
Finding the solution is difficult but checking if a complete Puzzle is
correct is easy.

3) Np-complete (NPC)
These are the hardest problems in NP. If someone finds a fast way to
solve one NP-complete problem, then all NP problems can be solved
quickly. e.g. The Travelling salesman problem (TSP). finding the
shortest route for a salesman visiting multiple cities.

4) NP-Hard
These problems are at least as hard as NP-complete problems, but
they don’t have to be in NP (that is their solutions might not even be
checkable quickly).

Algorithm And Its Role

An algorithm can be defined as a step-by-step method or process or


procedure to solve a particular problem. An algorithm plays the
following roles in solving a computational Problem.
 Providing Systematic solutions
 Optimizing Performance
 Enabling Automation
 Ensuring Accuracy and Reliability
 Facilitating Complexity Analysis
 Adapting to various Domains
From all the above we can say that computational problems
serve as the

foundation of computer science and algorithms plays a crucial role in


efficiently solving these problems through structured, logical and
optimizes approaches.

Module 3: Algorithmic Approach in Problem Solving

Stages involved in problem solving


The stages involved in problem solving include:
a) Problem Identification and Understanding
This first step is to clearly define the problems, their requirements
and identify constraints. E.g. if a company wants to optimize
delivery routes, we must determine the factors affecting delivery
time (distance, traffic etc.).

b) Problem Analysis
It involves breaking the problem into smaller parts, identifying
input, output and constraint also possible challenges.

c) Algorithmic Design and planning


Develop a step-by-step solution (algorithm) to solve the problem.
This may include choosing heuristic approaches or any other
approach.

d) Implementation (coding)
Translate the algorithm into a programming language such as
Python, Java or C++.
e) Follow the plan
Once you’ve created or describe the step you will use, follow the
plan and check for its efficiency and accuracy, whether it solves
the problem it was meant to solve and possible ameliorations.

AI-driven problem-solving (Machine learning approach)

Some problem solving is so complex that it goes beyond human


understanding. Their solutions therefore require advanced thinking
mindset, reason why AI (the most wide and efficient approach to
problem solving) where design. Artificial intelligence (AI) and
Machine Learning (ML) have transformed problem-solving by
enabling systems to learn patterns, make predictions and optimize
solutions without explicit programming. Instead of relying on
traditional algorithms, AI-driven problem-solving uses data-driven
models that adapt and improve over time. Stages involved here are:
o Defining the problem
o Data Preprocessing and Features Engineering
o Model Selections and Training
o Evaluation and Optimization
o Deployment and Real-World Applications

It is, however, greatly advantageous to implement AI in solving


complex

problems often ones that go beyond human understanding:

 AI can solve problems too complex for traditional rule-based


algorithms
 AI models can process vast amounts of data efficiently
 Reduces human effort in decision-making and repetitive tasks.
 ML models improve over time as they are exposed to more
data.
 Accurately predict certain behaviors based on the data.

Module 4: Impact and conclusions

A) Impact

Problem-solving is the foundation of innovation and efficiency in

computer science. Its impact spans various domains, shaping how


systems are designed, optimized, and automated. The key impacts
include:

1) Technological Advancement
Problem-solving drives the development of new algorithms,
software, and computing technologies.
2) Efficiency and Automation
Optimized problem-solving techniques lead to faster and more
efficient systems. E.g. AI-driven automation in industries reduces
human effort and speeds up processes.

3) Innovation in Artificial Intelligence and Machine Learning


Advanced problem-solving methods contribute to the evolution of AI
models that can learn, predict, and adapt. E.g. AI-powered medical
diagnosis assists doctors in detecting diseases with high accuracy.

4) Enhanced Decision-Making
Computational problem-solving enables data-driven decisions in
business, healthcare, and science. E.g. Predictive analytics helps
companies forecast market trends and consumer behaviours.

. Conclusion

We can therefore conclude that Problem-solving in computer science


is an essential skill that drives technological progress, efficiency, and
innovation. Whether through traditional algorithms or AI-driven
approaches, it plays a critical role in shaping industries, enhancing
automation, and solving real-world challenges. As computational
problems become more complex, the need for advanced problem-
solving techniques will continue to grow, pushing the boundaries of
what technology can achieve.

You might also like