Problem Solving Chapter1!3!115749
Problem Solving Chapter1!3!115749
Problem Solving Chapter1!3!115749
INTRODUCTION
Problem solving is both quite difficult to teach and practice.
It is both a science and an art. To learn problem solving, you
must do it. As in riding a bicycle, explanations are helpful,
but eventually you must do it yourself. You may fall, but that
is usually necessary in learning to ride a bike. There are no
shortcuts or magic formula to problem solving for a particular
event, task or scenario. However, there are techniques, tools
and procedures or processes that we can all explore in our
quest for ground-truth.
Defining a Problem
What then is a Problem? Defining it is not so easy. A problem
exists when what is currently happening – often differs from
what should be happening. This is so the case because, what
is happening is the current state, and what should happen
is the desired goal state. A problem can either be a one-time
problems or recurring problems. Deciding the total student
enrolment into the Department of Computer Science each
year can be said to be a recurring problem (since there is an
agreed staff-student ratio, which determines the carrying-
capacity for each Department). However, to determine why a
machine failed or why a device is faulty – can be regarded as
a one-time problem.
Defining A Solution
Problems by nature and typically, do not go away of their
own accord unless acted upon, or when we do something to
resolve them. This intervention and action is often referred to
as the art and science of problem solving. While, many of us
often seek to explore and exploit easy and quick solutions;
Also, complex problems often require complex and dynamic
solutions. Solving a well-structured problem can be found to
be quite easy. To find the minimum of a quadratic function,
we use first and second derivatives. However, to solve an ill-
defined or ill-structured problems is not obvious and in often
cases, termed as intractable as such solutions may be out
of, or beyond our reach. For example, how would you reduce
world hunger? A large part of problem solving is transforming
ill-structured problems into well-structured problems.
Critical Thinking
The importance of Problem Solving (PS) can never be over-
emphasized as it directly and indirectly impacts our daily lives
and will continue to play critical roles in our way of living for
decades to come. Research have been dedicated to PS, with
attempts made by educationists and psychologists to make it
accessible to all in various degrees.
What has been agreed by many authors ([5], [11], [12], etc)
is that a problem basically consists of three states: the
starting state, the goal state and the obstacles or a set of
available actions or strategies to move from the starting state
to the goal state. Matlin [12] states that the initial state
describes the situation at the beginning of the problem; the
goal state is reached when we solved the problem; and the
obstacles describe the restrictions that make it difficult to
proceed from the initial state to the goal state. The greatest
difference among problem solvers of the same problem tends
to lie in the third state, which might have infinite‟
possibilities, if the goal and the starting points are the same
for everyone.
Who is a Problem-Solver?
The person who has the problem or someone paid to solve
problems could be the problem solver. In the production
arena, a problem solver can/may be a manager, analyst, or
industrial engineer. Often, there are several problem solvers
working together to achieve or reach an optimal solution to a
case. And because problem solvers are people, they are not
infallible. Their personal beliefs, values, bias, and norms can
impact their judgment and disposition toward solving a
certain problem; And thus, affect the whole problem-solving
process. Whether a problem exists or not, is affected by a
person’s point of view, but recognizing that bias exists should
minimize its impact.
Problem Representation
A problem space or domain is best viewed or represented as
a directed graph. First, a graph is a structure that consists of
a series of nodes (vertices) existing in space such that each
node has relations with other nodes in the same space. The
relations details what binds or connects a node to another.
Thus, we have that the graph G consists of a set of vertices
V (or nodes) that are interconnected with a set of edges e
(arcs, links and relations) that allow these vertices to interact
and learn from each other. Thus, the graph is denoted as:
G = (v, e) (1)
G = (v, e, w) (2)
Problem Description
A problem must consist of the following description as thus:
(a) its current state, (b) the actions that can transform one
state into another, and (c) the desired (goal) state that acts
as an acceptable final state of the problem. Thus, a problem
solver must be able to identify the following:
1. State space (can either be explicit or implicit) and should
describe everything that is needed to solve a problem.
2. Initial state is the state from which the problem starts.
3. Goal state is description of a desired, final state as either
be partial or complete conditions for which data/values
are assigned to states based on a variety of conditions.
Thus, the goal state has assigned to its variables, a set of
data values that fulfill the conditions of the desired state.
4. Operators are changes caused to the states. They are
simply actions that can transform one state to another.
Operators often consist: (a) pre-conditions that provide
or renders a partial description of the current state of the
task/problem that must be true in order to perform an
action, and (b) instructions tells us what to accomplish
as next state, when to act, and how to create that next
state. It is often advised that the operators should be as
general as possible to reduce their number(s).
5. Elements shows what is relevant to a task and it details
previous knowledge of the task as the starting point.
6. Restrictions are the quality of the solution(s) or ground-
truth as reached, which is either be optimal or complete.
This can thus, results to the following options: (a) finding
the shortest sequence, (b) finding the least expensive
sequence defining cost, and (c) finding any sequence as
quickly as possible.
7. Problem-Solving is finding the ordered sequence of
operators that transforms the current (start) state into a
goal (final) state that acts as an acceptable solution.
Solution:
- The puzzle involves placing 8-Queens on the chess-board
such that no Queen is found attacking another
- Problem/State Space: configuration N(Queens) = 8 on
chess board with only one queen per row and per column
- Initial State: configuration without queens on the board
- Goal State: configuration with N = 8 queens such that
no queen attacks any other on the chess board
- Operators or Actions
a. Condition: The new queen is not attacked by any
other queen that is already placed on the board.
b. Transformation: place a new queen in a particular
cell or square on the board
- Solution: one solution is as above in Figure 1.4 without
cost consideration.
Searching Techniques
Searching is a process of locating a given data value, item or
object position in a linked list (or an array) or tree from a list
of known value(s). searching is the process of finding a value
in a list of values. A search is successful if the object value
being sought for or searched is found; else, it is said to be
unsuccessful. Typically, a search answers the True or False
as to whether the value search is present or not. Also, there
as scenarios where the search conditions may be modified to
return the position where the item or value can be found.
Thus, there are basically two (2) search techniques explored
namely linear search and binary search.
The Linear Search – is a simple search algorithm, that is
sequentially run to search over all available elements on a
list, one by one. It linearly searches through a tree or array
of elements till the desired element is not found in sequential
order. Each and every element of the list is checked against
the goal object; And, where it is found – the particular value
item is returned; Else, the search continues till the end of the
data collection. Its search begins from first element on the
tree/list, and continues until the desired element is found or
the end of the file is reached. Linear Search is often applied
to unordered list when there are fewer elements in a list.
Its merits are: (a) they are simple, easy to understand and
implement, (b) they are very resource efficient, (c) does not
require copying/partition of arrays, (d) they are memory
efficient, (e) can be used on both unsorted and sorted data,
(f) does not require the data in the array to be stored in any
particular order. Conversely, its demerits are: (a) has a very
poor O(n) general efficiency. That is, the performance of the
algorithm scales linearly with the size of the input, and (b)
they are very slow and time consuming.
Its merits are: (a) they are more efficient than the linear
search, (b) every time it makes a comparison and fails to find
the desired item, it eliminates half of the remaining portion
of the array that must be searched, and (c) they use random
access to the data but linear search only requires sequential
access. Conversely, their major demerit is the binary search
process must only be performed on sorted list.
True/False Choice
1. Finding the location of a given data value in a set of items is called searching.
2. The binary search is much more efficient than the linear search.
3. A Linear search algorithm or function can be used for large array list elements.
4. Complexity of binary search algorithm in worst and average case is O(n).
5. Comparisons are necessary and sufficient for computing both the minimum and
the maximum is 3n-3/2.
Exercises
1. Given the array (24, 13, 56, 35, 46, 27, 78, 48)
a. Use the binary search algorithm
Write the BinarySearch program for the answer to Q1(a)
2. Given the array (24, 13, 56, 35, 46, 27, 78, 48)
a. Use the linear search algorithm
b. Write the LinearSearch program to answer to Q2(a)
64 + 32 + 0 + 8 + 4 + 0 + 1 =10910
Binary To Octal is the reverse of the former and step for its
conversion. Example 1011101 = 1,011,101 → 1, 3, 5 = 1358.
DIGITAL SYSTEMS
Digital systems are more reliable due to the ON-OFF states
and operation, accomplished via the aid of semiconductor
materials such as diode and transistor packages. These
elements are connected together to help perform diverse
tasks using logic laws known as Boolean Algebra. This
algebra was formulated in 1847 by George Boole based on
two-states “True/False” to aid mathematical method used for
systems containing two-state elements, based on two
possible values 0 and 1. It was later used for the design and
implementation of modern digital equipments. The algebra
allows any symbols such as A, B or C to have one of two-
allowable states namely “True/1 or False/0”.
Y Z G
True True True
True False False
False True False
False False False
A A B
Disjunction Conjunction
Fig 2.1 (a) and (b) shows the disjunction and conjunction
2.1 BOOLEAN ALGEBRA THEOREM
Boolean postulates and its fundamental properties are seen
in table 3.4 below with its dual form.
Minterm Maxterm Postulate
A+B=B+A A.B = B.A COMMUTATIVE
A + (B+C) (A+B) + C (A.B) . C = A. (B .C) ASSOCIATIVE
A+(B.C)= (A+B).(A+C) A.(B+C) =(A.B) +(A.C) DISTRIBUTIVE
A+0= A A.1 = A IDENTITY
A + (A’) = 1 A. A’ = 0 COMPLEMENT
(A.B)’ = A’ + B’ (A.B) + (A + B)’ = 1 DE MORGAN
A+1=1 A+0=0 IDEMPOTENCE
AND GATE just like the OR gate can have any number of
inputs with just one output. It produces a 0 output unless all
its inputs are 1. Hence, it gives an output of 0 unless all
inputs are 1 in which case the output is 1 as in figure 2.3.
A C = A . B = AB
Figure 2.3
B
A A’ Figure 2.4
Figure 2.5
Figure 2.7
Fig 2.8a has that NAND gate gives same output as an Inverted OR gate
Figure 2.8b has that NOR gate gives same output as an Inverted AND gate
B B’C
B B’C
ABC’
A
A’C
2.5 DUALITY
A network represents the interconnection of various gates,
which closely corresponds to the hardware components with
lines that connects the gates in the logic diagram seen as the
physical wires connecting the devices on the IC board. Each
Boolean expression is a corresponding operation with a gate
symbol. But most combinational networks are implemented
and designed using NAND and NOR gates, since they contain
more than one variable, combined together based on laws.
Thus, each expression there is a logic diagram that causes a
one-to-one relationship.
With duality, we see that the AND circuit with a value logic 1,
becomes an OR circuit with logic 0 – and vice versa. Rules of
duality are often listed in the order that illustrates the duality
of the algebra, which allows the circuit designer to work with
two sets of values by listing the various states that the input
to the logical network can take, as well as the desired output
for each input condition. The logical expression is thus
divided up into two sets of standard values (minterm and
maxterm) known as the canonical forms, used to express
any combinational logic.
A 0 1 A 0 1
B B
0 00 10 0 A’B’ AB’
1 01 11 1 A’B AB
0 A’B’ AB’ 0 1
1 A’. B AB 1 1 1
C 00 01 11 10
0 0 2 6 4
000 010 110 100
1 1 3 7 5
001 011 111 101
00 0 4 12 8
0000 0100 1100 1000
01 1 5 13 9
0001 0101 1101 1001
11 3 7 15 11
0011 0111 1111 1011
10 2 6 14 10
0010 0110 1110 1010
A
B 0 0 1 1
C 0 1 1 0
0 1
1 1 1
Example 2: Plot L = ABC’ + AB’C’ + A’BC + AB’C
A A
B 0 0 1 1 0 0 1 1
C 0 1 1 0
B 0 1 1 0
C
0 A’B’C’ A’BC’ ABC’ AB’C’ 0 1 1
0 2 6 4
AB 00 01 11 10
CD
00 0 4 12 8
0000 0100 1100 1000
01 1 5 13 9
0001 0101 1101 1001
11 3 7 15 11
0011 0111 1111 1011
10 2 6 14 10
0010 0110 1110 1010
AB 00 01 11 10
CD
00 1 1 1
01 1
11 1
10
AB 00 01 11 10
CD
00 1
01 1 1
11 1
10 1
2.7 CIRCUIT-MINIMIZATION
Every Boolean expression can be transformed into minterm
has important practical effects on the processing speed of
any combinational circuit network. As the circuit become
larger with more than 5 variables, it become important to
simplify the circuit to obtain a minimal circuit that behave in
just the same way as the initial circuit expression given. Due
to the string of gates, when there is a change in the input,
output does not respond to it immediately because of time
delay. This is the time it takes for the signal to propagate the
change made via the components that make up the network.
The time delay it takes for the output to respond to the input
change is known as gate delay and different manufacturer
use different gate delays because it is more expensive to
implement shorter gate delays than longer gate delays
because shorter gate delays require more power to operate.
These delays becomes noticed as the network contains more
gates that will require it to loop the signal in the circuit.
Minimize L = AB + AB’
Step 1: We construct the truth table and plot the map:
Value A B Minterm
0 0 0 A’B’ = 1*1 = 1
1 0 1 A’B = 1*1 = 1
2 1 0 AB’ = 1 * 1 = 1
3 1 1 AB = 1*1 = 1
A 0 1 A 0 1
B B
0 A’B’ AB’ 0 1
1 A’. B AB 1 1
AB
C 00 01 11 10
0 1 1
1 1 1 1
0 1 1
1 1 1 1
00 1
01 1
11 1 1
10 1
AB 00 01 11 10
CD
00 1 1
First group
01 1 1
11 1
Second
10 1 1 Third
AB 00 01 11 10
CD
00 1 1 1 First
Second
01 1 1 1 1
11 1 1 Third
10 Fourth
1 1 1
Fifth
First Quadruple – written in this order Minterms 8, 9, 13, 12 as
L = AB’C’D’ + AB’C’D + ABC’D + ABC’D’
L = AC’ (B’+B)(D’+D) + AC’ (B’+B)(D’+D)
L = AC’ + AC’ ➔ L = AC’
Second Quadruple written as 0, 3, 1, 2
L = A’B’C’D’ + A’B’CD + A’B’C’D + A’B’CD’
L = A’B’ (common terms)
Third Quadruple written as 3, 6, 2, 7
L = A’B’CD + A’BCD’ + A’B’CD’ + A’BCD
L = A’C(B’+B)(D’+D) + A’C (B’+B)(D’+D)
L = A’C + A’C ➔ L = A’C
Fourth Quadruple written as Minterm 1, 5, 13, 9
L = A’B’C’D + A’BC’D + ABC’D + AB’C’D
L = C’D (A’+A)(B’+B) + C’D (A’+A)(B’+B)
L = C’D + C’D ➔ L = C’D
Fifth couple written as Minterm 4, 6
L = A’BCD’ + ABCD’
L = BCD’ (A’+A) ➔ L = BCD’
Hence: F = AC’ + A’C + A’B’ + C’D + BCD’
00 1 1 1 First
Second
01 1 1 1 1
11 1 1 Third
10 Fourth
1 1 1
Enable
The enable gate does not require a new “enable” input but
requires that the AND gate be viewed differently such that
we see input X as data line; while the enable is the control
line. Hence, the enable controls the data either letting it to
pass through unchanged or prevents its passage to output.
Another useful gate used is the selective inverter having
inputs (a data line and an inverter). When the invert line is 1,
its output becomes the complement of the data line; while if
the invert line is 0, the data passes via to output unchanged
as seen in figure 2.21 with XOR gate viewed differently.
X Y
S1 D3
S0 S0
S1
D2
S1
S0
Fig 2.22 (a) abd (b) shows the
D3 block implementation and
block diagram of a four-input
S1 multiplexer
S0
S1 S0 F = Output
0 0 D0
0 1 D1
1 0 D2
1 1 D3
S1 S0
Binary Adders – have two sets of input terminals such that
in parallel addition, series of bits corresponding to the two
binary numbers appear at these terminals while the output
terminals gives the sum of the two numbers. Adders are
grouped into half and full adder. The basic building block for
the half adder is an XOR gate with two inputs and two
outputs as in figure 2.24. The table shows that the S output
of a half-adder gives the sum of each digit while output C
gives the carryover of the digit represented as thus:
X S (Sum)
X S
Half
Adder
C (Carry) Y C
Figure 2.24 shows the logic diagram for the binary adder
The half adder shows that the sum is identical to the XOR
function and the carry is identical to the AND gate function
as in the truth table and its implementation above. The full
adder is similar to half adder except for additional inputs that
receives carry-overs from the lower significant bit (LSB) as in
table below. Adding two numbers of such will exceed to the
next stage and requires a combinational net with three inputs
instead of two as with the half adder namely the Cin, X and Y.
Cin is carry input that comes with the carry made from the
addition of the LSB. X and Y are the binary numbers; while
the outputs are Sum and Cout is the carry output, which goes
to Cin of the full adder for the next column.
Cin Sn
X S
Xn
Y C
X S Cout
Yn
Y C
Figure 2.26 shows implementation of a full adder
The full adder sums from the second half adder such that if
any of the half adders have a carry, the full adder has a carry
because it is implemented on two half adder with an OR
gate. As with the truth table, to add two 4-bit numbers will
require an eight-input network as in figure 2.27.
X3
C Figure 2.27 shows
X2 the block diagram
of full adder.
X1
FOUR-
X0 BIT S3
ADDER S2
Y3
S1
Y2
S0
Y1
Y0
Xn defines 4-bit of the first LSB as Yn defines the second 4-
bits number; Sn is the 4-bit sum; while C is the carry.
Implementing a 4-bit adder uses one-half adder for the LSB
and three full adders, one for each of the remaining columns
in the addition – it becomes a ripple-carry adder, because a
carry from the LSB is propagated or rippled via the columns
to the left.
S0 S0 D1
S1 D1
D2
S1
S0
D3
S1 D2
S0
Enable
S1 D3
Fig 2.28 shows implementation and
S0 block diagram of a 2 x 4 binary
decoder.
Cin Cout
X Figure 2.29
ALU shows the block
Y
F diagram of a 1-
bit arithmetic
and logic unit
S1 S0
The truth table shows that if S1-S0 is 00, the output F is the
AND of X and Y. If S1-S0 is 01, it means that F is the OR of X
and Y. When it is 10 – F is simply X regardless of the value of
Y. In these three cases, F does not depend on the value of
Cin except when S1-S0 is 11. F is the sum of X, Y, Cin with Cout
being the carryover. The full adder contains an enable input
such that when E is 0, Cout and Sum are 0 regardless of Cin, X
and Y; Otherwise, if E is 1, the full adder operates normally.
D0, D1 and D2 are connected to the enable lines for X.Y, X+Y
and Y in the logic unit.
2-9 Define Karnaugh’s map? Draw the circuits and their maps for:
a. K = A’ B’ C’ D’ + A C’ D’ + A B’ C’ D’ + A’ B’ C D + A B C’
b. K = A’ B’ C + A C’ + A B’ C’ + A’ B’ C’ + A B C + AC
AB 00 01 11 10
CD
00
01 1 1
11 1 1 1
10 1 1
AB
C 00 01 11 10
0 1
1 1 1 1
2-12 Minimize the circuits given the map in 2-4(a) and (b) respectively.
2-13 In your own terms, define the following:
a. Logic level b. Propagation delay c. Fan in
d. Fan out e. Power dissipation f. Noise Margin
Chapter Three
THINKING PROBLEM – AIDING COMPUTERS!
INTRODUCTION
Computers are incredible devices. They extend what we can
traditionally, do with our brains. And with them as computing
devices, we can do things faster, explore their use in almost
every sphere of life, we can keep track of a vast amount of
data, we can effectively and efficiently use such processed
information as evidence to support our decisions, and we can
share our ideas and knowledge with other people no matter
where they are, when they need it and how they wish to get
it. Getting computers to help us to solve problems is a 2-step
process: (a) first, we think about all requisite steps needed to
solve a problem, and (b) then, we explore our technical skills
to get the computer working on the problem.
Classroom Activity
1. Provide students with a robot. They should make predictions of where
the robot will end up when the go button is pressed. And they should
explain why they think of that. Being able to give a reason for their
thinking is what using logical reasoning is all about.
2. In their own coding, logical reasoning is key to debugging (finding and
fixing the mistakes in their programs). Ask them to look at each
other’s codes/programs and spot bugs. Encourage them to test the
programs to see if they can isolate exactly which bit of code is causing
a problem. If their codes fail to work, get them to explain their code
to a friend or even an inanimate object.
3. Give them a program of your own samples and ask them to work
backwards from the code to work out what it will do.
4. Ask pupils to think carefully about some school rules, for example
those in the school’s computer Acceptable Use Policy. Can they use
logical reasoning to explain why the rules are as they are?
5. There are many games, both computer-based and more traditional,
that draw directly on the ability to make logical predictions. Organize
for the pupils to play noughts and crosses using pencil and paper. As
they are playing, ask them to predict their opponent’s next move. Let
them play computer games such as Minesweeper, SimCity, etc. Ask
them to pause at certain points and tell you what they think will
happen when they move next. Consider starting a chess club if your
school does not already have one.
Algorithm
An algorithm is a finite sequence of instructions or rule to get
something done. Your fastest route to home from school may
be → turn left, walk for 2-miles, turn right, etc). That, is an
‘algorithm’. A finite, logically ordered number of instructions
(or steps) that effectively yields a solution to a problem.
There are many algorithms (i.e. routes) that will accomplish
the same goal as getting you to your destination from any
one point. Even the Google-Map algorithm for working out
the shortest/fastest route. Search engines like Google and
Bing use algorithms to put a set of search results into order,
so that more often than not, the result we are looking for is
at the top of the front page.
Classroom Activity
1. A GSM company just arrived and wishes to make investment in Delta
State by citing their Base-Transceiver Stations (BTS) around the State.
- Predict how, where and which places (urban, semi-urban and rural)
areas that will be connected to the network the GSM company
intends to develop in the State.
- What components and factors should be considered when citing
these connection provider site(s).
- Explain why and where will be your initial cum pivot connection
point (if you are Head of Operations for the said GSM company)
- Draw the network showing all sites for Delta State of towns and
villages to be connected, and state the reasons for your choice.
2. Generate a list of numbers by asking the students to guess as many
numbers between 1-100. Recall the BinarySearch and LinearSearch.
The students are to perform both search types and generate their
answers. They are to generate the algorithm(s) (in steps 1-to-N) to
resolving the task for the BinarySearch and LinearSearch
Decomposition
The process of breaking down a problem into smaller
manageable parts is known as decomposition. Decomposition
helps us solve complex problems and manage large projects.
This approach has many advantages. It makes the process a
manageable and achievable one – large problems are
daunting, but a set of smaller, related tasks are much easier
to take on. It also means that the task can be tackled by a
team working together, each bringing their own insights,
experience and skills to the task. Decomposing problems into
their smaller parts is not unique to computing: it’s pretty
standard in engineering, design and project management.
Software development is a complex process, and so being
able to break down a large project into its component parts
is essential – think of all the different elements that need to
be combined to produce a program, like PowerPoint.
Classroom Activity
1. Plan out opportunities for students to experience team-work through
their collaboration on a software development project to build small
apps or even challenging programming project such as making a
computer game or even a mobile phone app.
2. The process of even having them develop a term-paper for submission
requires the task of writing and filling up the agreed number of pages
with words that can be further decomposed via planning, research,
drafting, reviewing and publishing (typing) phases.
Abstraction
The process of deciding those details to be highlighted and
those details we can ignore. Abstraction is about simplifying
things; identifying what is important without worrying too
much about the detail. Abstraction allows us to manage
complexity. We use abstractions to manage the complexity of
life in schools. School timetable is also an abstraction of what
typically happens weekly in a citadel of learning as it aims to
capture key information and knowledge of: (a) who teaches
what course, (b) what courses is to be taught or undertaken
for a specific time-slot, (c) to whom is the course taught, and
(d) which venue and time is the said course to be taught. We
must also realize that it leaves out that angle of further layer
of complexity, such as the learning objectives and activities
planned in any individual lesson as in Figure 3.5.
Classroom Activity
Encourage students learning to program – to create their own games that
can either be based on real world systems or otherwise. They will need to
use some abstraction to manage the complexity of their game system.
They can simulate a table tennis game (i.e. ping-pong) such that the
simulation can include the ball’s motion in 2D, and how it bounces off the
bat. Ask them to think carefully about what detail they need to include,
and what can be left out when programming a similar game.
Evaluation
This is often the most underemphasized feat – even when it
is the most crucial step in problem solving. It is the reason
and crux of why researches are conducted. The reason why
people do not embark on evaluations includes time, cost, the
unease with evaluation, and the fear of being challenged in
their decisions reached with evidence. Evaluation is essential
because it seeks to determine how effective the proposed
solution is. Evaluation can take many forms, and it can be as
simple cum brief as a conversation with key individuals and
members; Or, it can be as elaborate as sophisticated surveys
and in-depth record analysis. Evaluation seek to determine
how well the solution works/fits or why the solution
does not work. We must or can decide how comprehensive
evaluation should be, based on the complexity of the task or
problem and the decided solution.
Classroom Activity
Plan a traditional ‘design, code and evaluate task such as plan the process
for building a house. Break this complex problem down into smaller stages,
such as: (a) planning the design (abstraction to capture key elements of
building), (b) sourcing of the materials (decomposition to identify the
different components), (c) assemble the materials to create the instrument
(algorithm – systematic, step-by-step approach to put the house together),
and evaluate and test how the solution works.
Figure
Creating: Programming is a creative process, which involves
both originality, making something of value and something
that typically is useful or fits a specific purpose. Students
must approach tasks with a creative spirit, and look for those
programming tasks that allow them express such creativity
also; Rather, than merely arriving at a right answer. Students
must reflect on the quality of the work they produce – simply
by critiquing their own against others. The process of always
looking for ways to improve on a task is becoming common
practice in software development. Look for projects in which
artistic creativity is emphasized such as working with images,
animation, virtual environments or even 3D printing.
Figure
Figure
Question
Classroom Activities
1. Ask your pupils to write a recipe for a sandwich, thinking carefully
about each step that needs to be carried out.
- Please, detail step-by-step instruction sequence (i.e. algorithm).
- Ask them to share each other’s recipes – so they can efficiently spot
patterns in them (i.e. generalization).
- Read out a range of other related recipes, and discuss the layers of
simplification (abstraction) present relatively simple recipes.
2. Break them into groups and also challenge them to work individually
or collaboratively on more complex projects, for example researching
and writing up aspects of a curriculum topic such as the Viking
invasion, or putting together an assembly or a class play. In each case
ask them to note down the individual steps needed for the task and to
think about what they have left out to make the subject fit their brief.
Term Paper 1
A GSM company just arrived and wishes to make investment in Delta State
by citing their Base-Transceiver Stations (BTS) around the State. Using the
various computational thinking concepts of: logical reasoning, algorithm,
decomposition, abstraction, patterns/generalization and evaluation – write
up a report with a detailed map of the area where you are assigned of the
road network and why you feel optimistic about the GSM network provision
and tele-penetration Project in Nigeria. (15-pages)
REFERENCES
Ojugo, A. A., Oyemade, D. A., & Allenotor, D. (2016). Solving For
Computational Intelligence the Timetable-Problem Advances in.
Advances in Multidisciplinary and Scientific Research Journal, 2(2),
67–84.
2. List the chapter(s) you were not taught properly due to textbook
____________________________________________________
3. State the chapters you do not liked to be in this textbook_______
______________________________________________________
4. State the chapters you liked least __________________________
5. State the chapters that you liked best_______________________
_____________________________________________________
6. What topics do you think should be covered, make it concise.___
_________________________________________________________
_________________________________________________________
7. Do you plan to sell the text after usage? ____Yes _____No
8. Why? ____________________________________________________
9.