Week 4-5 Problem Solving Techniques
Week 4-5 Problem Solving Techniques
Problem solving is an increasingly important soft skill for those in business. Problem
solving techniques is a systematic approach to find and implement the best solution to a
given problem.
Across all stages, we shall try as much as possible to show how these steps are universal
(applicable to either computer-based and non-computer-based solutions) by using two
running examples as follows:
Student Management Information System (SMIS) Development, and
Computer Lab Layout Redesign
Problem solving techniques involve seven (7) major steps that can be applied
universally across all problem domain as discussed below.
1. Problem definition
To solve the problem, the first step is to identify and define the problem
Regardless of whether the solution involves technology, defining the problem clearly is
the first and most crucial step. You need to understand what you’re solving, why it
matters, and what success looks like.
A good problem definition should therefore focus on the problem, why the problem is
important, and who it impacts. It should create awareness and stimulate creative
thinking. It should not identify a solution or create a bias toward a specific strategy.
Imagine you’re managing a construction project where there's a delay in material
delivery. The problem definition phase would involve understanding the cause of the
delay (e.g., supplier issues, transport problems), its impact on the project timeline, and
how urgent it is to resolve the issue.
A clear understanding of the problem allows for targeted solutions, whether you're
managing a team, fixing a mechanical issue, or handling supply chain delays. The
problem must be stated clearly, accurately and precisely
Problem definition can be used for the following:
Identifying opportunities for improvement
Focus on the right problems or issues to launch more successful initiatives (a
common challenge in leadership)
Communicating a problem to others who need to be involved in finding a
solution
Serves as the basis for developing an action plan or goals that need to be
accomplished to help solve the problem
Stimulating thinking outside the box and other types of creative brainstorming
techniques.
SMIS Development
The current system for managing student data (enrollment, grades, attendance) is
manual and therefore prone to errors. In addition, enrollment, grade computation,
taking attendance, etc. takes a lot of time to be completed thus there is a lot of delays
both within processes and between processes. As a result, the system is inaccurate and
inefficient. This has a very big impact to not only the teachers and administrators but
also to the students as a result of delayed services. There is therefore a need to make the
system efficient and effective for better user satisfaction.
2. Problem analysis
This step involves breaking down the problem and understanding its root causes. It
therefore involves investigating all possible factors contributing to the issue. If for
example your production line is producing defective products, the analysis might
involve checking each step of the manufacturing process, reviewing raw material
quality, or examining operator error to find the root cause.
In any setting, thorough analysis helps ensure you address the underlying issue rather
than just treating symptoms.
Other than the process, you may be interested in addressing input and output
specifications in terms of:
a) the number of inputs/outputs
b) In which form they are (i.e. text, sound, paper printout)
Problem analysis is a key step that helps in mapping the problem into a solution during
the design stage.
SMIS Development
Analyze the specific needs of different users. Teachers need to input grades,
students need to view their academic records, and administrators must manage
enrollments.
Consider issues like data security, user access control, and how different types of
student data (grades, attendance, course registration) are interconnected.
Tools and technologies such as database management systems (DBMS) and user
authentication protocols need to be selected.
SMIS Development
Design the system architecture. This includes designing the database schema (e.g.,
tables for students, courses, and grades), user roles (students, teachers,
administrators), and security measures (e.g., password encryption and data access
controls).
Design mock-ups for the user interface, showing how each user group will interact
with the system. For example, a simple dashboard for students to check their
records, while teachers will have tools for uploading grades.
Design algorithms for different processes.
Algorithms
An algorithm is a step by step procedure of solving a problem. It is a sequence of
steps to solve a particular problem. It is an ordered set of unambiguous steps that
produces a result and terminates in a finite time
Characteristics of algorithms
a) Input: may or may not require input
b) Finiteness: must consist of finite number of steps
c) Effectiveness: must consist of single entry and single exit
d) Definiteness: Each step of the algorithm must be defined precisely
e) Readability: The steps of the algorithm must be easily
readable/understandable
f) Output: Each algorithm is expected to produce at least one result
Algorithm complexity
Complexity in algorithms refers to the amount of resources (such as time or
memory) required to solve a problem or perform a task. It is a function describing
the efficiency of the algorithm in terms of the amount of data the algorithm must
possess. This should inform the choice of data structures in the algorithm.
Time complexity – amount of time required by an algorithm for performing the
desired task. It is measured by calculating the iteration of loops, number of
comparisons, etc.
Space complexity – amount of memory required by the algorithm for performing the
desired task
NB: In case of multiple algorithms, the algorithm with the best time and space complexity
should be chosen for your design solution
4. Implementation (Coding)
In a non-computer context, this step involves actually executing the solution. While
there may be no "coding," you are putting your plan into action. In a manufacturing
scenario, implementation might involve physically rearranging the production line,
installing new equipment, or training employees to follow the new procedures
designed to reduce product defects. Implementation is where the solution takes form
and starts addressing the defined problem, regardless of whether it’s a technical or
manual process.
SMIS Development
Begin coding the system. Develop the backend database using SQL or a similar
DBMS and create the user interface using front-end technologies like HTML, CSS,
and JavaScript.
Implement security protocols such as user authentication (e.g., using PHP sessions
or token-based authentication) and encryption of sensitive data.
Integrate the database with the user interface so that teachers can input data, and
students can view their records.
a) Unit Testing
Test individual components or functions of a program to ensure they work as
intended. For a computer program, each function or module needs to work
independently before integrating it into the larger system. Unit testing ensures the
basic building blocks of the system work properly.
In our running example of SMIS, a unit test might check whether the function
calculating a student’s final grade based on their assignments and exams works
correctly
b) Integration Testing
Programs might have several components that interact with each other. Integration
testing ensures that when these components are combined, they work together
without issues.
In the SMIS for example, the student registration module should integrate smoothly
with the course management module. Integration testing might check whether
enrolling a student in a course updates both the student’s registration and the
course’s enrollment list correctly.
c) System Testing
Once the individual parts are working and integrated, system testing validates that
the entire system meets its requirements and performs well as a whole.
System testing in the SMIS might involve testing all use cases together: a student
registers, enrolls in courses, checks their grades, and updates their profile. The goal
is to confirm that the system works end-to-end as a cohesive whole.
d) Acceptance Testing
Even for a small program, it's important to confirm that the solution meets the user's
needs. Acceptance testing ensures that the system aligns with what the user or client
expects.
After developing the SMIS, the school administration or intended users would
perform acceptance testing. They might confirm that the interface is user-friendly,
students can register for courses easily, and that grades are accurately reflected in
reports.
e) Regression Testing
When working on computer programs, even minor updates or bug fixes can
unintentionally affect other parts of the system. Regression testing ensures that new
code changes do not break existing functionality.
If a new feature is added to the SMIS (e.g., a module for tracking attendance),
regression testing would verify that existing features, like course enrollment and
grade reporting, still work as expected.
Testing ensures that the solution meets expectations before full implementation. In any
context, you want to make sure the solution is effective and doesn't introduce new
problems.
SMIS Development
Test the system by having a sample group of students, teachers, and administrators
use it.
Check for bugs in the data input process (e.g., ensuring grades are correctly entered
and calculated), verify that only authorized users can access certain data, and test
the load capacity of the system to handle multiple users simultaneously.
Make sure the system functions smoothly across various devices and browsers.
Computer Lab Layout Redesign
Test the new lab setup by conducting a pilot session with students and teachers.
Check for bottlenecks in movement and ensure that the cooling system effectively
manages heat.
Test the accessibility features to ensure that students with disabilities can
comfortably use the lab.
Observe whether the new seating arrangement improves the overall functionality
and comfort of the users.
6. Documentation
Documentation entails recording all details of the solution, process, or system
implemented. In non-computer projects, this could include operational guidelines,
manuals, reports, or procedures.
Documentation provides clarity for anyone who needs to understand, replicate, or
maintain the solution in the future. Whether in a factory, office, or other environments,
it ensures consistency and continuity.
SMIS Development
Create detailed technical documentation for future developers, including the
database structure, codebase, and system architecture.
Write user manuals for students, teachers, and administrators, explaining how to
use the system.
Additionally, document security protocols and backup procedures so that the
system can be maintained and updated securely.
7. Maintenance
It means periodic review of the programs/solutions and modifications based on user
requirements
SMIS Development
Maintenance involves regularly updating the system to fix bugs, improve
performance, and handle new user requirements (e.g., adding new features like
attendance tracking).
Regular security audits are needed to ensure that the system is safe from
vulnerabilities like data breaches.
Ongoing user support might be required to handle issues like password resets or
data recovery.