Content uploaded by Kanaan Faisal
Author content
All content in this area was uploaded by Kanaan Faisal on May 13, 2014
Content may be subject to copyright.
Infusing Critical Thinking Skill Compare and Contrast
into Content of Data Structures Course
M.R.K. Krishna Rao M. Shafique K. Faisal A. Bagais
Information and Computer Science Department
College of Computer Sciences and Engineering
King Fahd University of Petroleum and Minerals
Dhahran 31261, Kingdom of Saudi Arabia
{krishna, shafique, faisal, bagais}@ccse.kfupm.edu.sa
Abstract
This paper describes some of our efforts in infusing the
critical thinking skill of comparing and contrasting into a
course on data structures. Comparing and contrasting is
the process of looking at similarities and differences in
order to reveal important characteristics of two objects,
systems, organizations, events, processes or concepts. In
comparing and contrasting two subjects, we
identify relevant factors for comparison,
discuss both similarities and differences between
the two subjects with respect to each of these
factors,
investigate if there are any patterns in the
similarities and differences, and
make a conclusion based on this investigation.
A skillful use of compare and contrast yields greater and
deeper understanding of what is being taught. The
conclusion drawn from compare and contrast can also
help in designing a better system or process.
Using a set of carefully chosen examples, we demonstrate
that critical thinking skills can be naturally introduced in
the course content of computer curricula at tertiary level.
It is expected that infusion of critical thinking skills into
course content and their explicit introduction stimulates
students thinking and improves their learning ability.
1. Introduction
Recently there has been an increasing emphasis on
life long learning and one is expected to learn new
things even long after finishing formal education.
The mere transfer of knowledge from teacher to
students is considered inadequate. To facilitate
learning outside university and after formal
education, many good thinking skills such as critical
and creative thinking should form part of classroom
teaching [2]. The best way to achieve this is to infuse
these skills into regular course content [12]. This
exercise also gives an opportunity to use active
learning techniques in the class room. In this paper,
we describe some of our efforts in infusing the
critical thinking skill of comparing and contrasting
into a course on data structures.
The purpose of specifically teaching critical thinking
in computer science or any other discipline is to
improve the thinking skills of students and thus
better prepare them to succeed in the world. But, one
may ask, don't we automatically teach critical
thinking when we teach our subjects, especially
engineering disciplines which need rational thinking
in optimizing the design while balancing many
(often conflicting) requirements through judicious
trade-offs? The answer to this question is often `no’
for the following reasons. All education consists of
transmitting to student two different things: (1) the
subject matter or discipline content of the course
("what to think"), and (2) the correct way to
understand and evaluate this subject matter ("how to
think"). We do an excellent job of transmitting the
content of our respective academic disciplines, but
we often fail to teach students how to think
effectively about the subject matter, that is, how to
properly understand and evaluate it. This second
ability is termed critical thinking. Due to various
constraints (time being the main constraint), majority
of us approach content, not as a mode of thinking or
as a system of thought, but rather as a sequence of
stuff to be routinely covered and committed to
memory. When content is approached in this lower
order way, there is no basis for intellectual growth as
there are no deep structures of knowledge formed
and no basis for long term grasp and control. Critical
thinking, in contrast, approaches all content
explicitly as thinking and weaves new thinking into
old. It is thinking about thinking while thinking in
order to make thinking better [10].
While there is a significant amount of literature
available [3, 4, 9] on infusing critical thinking skills
into course content in medicine, nursing,
psychology, engineering and pure sciences like
physics and chemistry, very little literature is
available on such efforts in computer science. It is
our endeavor to bring these issues to the notice of
the computer science community.
While many university administrations encourage
introduction of good thinking skills and other
interpersonal skills, the initial reaction of faculty is
an apprehension that introduction of these (perceived
to be) extra skills eat into their classroom time. On
the contrary, our experience shows that explicit
introduction of these important skills stimulate the
students thinking and enhance their learning skills
without eating much of classroom time.
Data structures course is central to most programs in
computer science, software engineering, information
systems and computer engineering across the world
[1, 8]. Many data structures (lists, doubly-linked
lists, stacks, queues, deques, binary trees, heaps,
hash tables, etc), their implementation and analysis
are covered in typical data structures course. Further,
most courses on data structures also discuss various
graph/tree traversal algorithms. The basic nature of
the course content allows for many lively debates
and infusion of critical thinking techniques –in
particular, compare and contrast– in a natural
fashion. In this paper, we share our experiences in
infusing this important critical thinking skill into our
data structures course.
2. Explicit Introduction of Thinking
Skills
Even though we started only recently introducing
these thinking skills explicitly, we have always been
using them in our teaching. Explicit introduction of
thinking skills facilitates
1. students to reflect on what ways of doing
specific types of thinking are good for them to
practice, and what plans are the best ones for
them to adopt in doing these kinds of thinking,
2. practice directed at building the habit of doing
specific types of thinking, and
3. familiarity with occasions on which such
thinking is appropriate or called for [12].
This helps in building a good repertoire of skills that
will be useful in lifelong learning. In fact, the
following principles emerged during the thinking
skills movement [12] support explicit introduction of
thinking skills.
• The more explicit the teaching of thinking, the
greater impact it will have on students.
• The more classroom instruction incorporates an
atmosphere of thoughtfulness, the more open
students will be to valuing good thinking.
• The more the teaching of thinking is integrated
into content instruction, the more students will
think about what they are learning.
It is a well-established fact that thinking skills are
most effectively taught when taught directly and
deliberately [6] and there is no teaching of thinking
skills in isolation from a knowledge base, nor is a
knowledge base developed without a dynamic,
thinking type of interaction with the content [13].
3. Compare and Contrast
The process of looking at similarities and differences
in order to reveal important characteristics of two
objects, systems, organizations, events, processes or
concepts is called comparing and contrasting. A
skillful use of it yields greater and deeper
understanding of what is being taught. To compare
and contrast skillfully it is important not to just list
some similarities and differences between them but
sort out the important similarities and differences
and draw conclusions from them, perhaps after we
have thought about any patterns they display. This
yields a deeper understanding of what is compared
and contrasted. The conclusion drawn from compare
and contrast can also help in designing a better
system or process. For example, a software company
may compare and contrast its practices with those of
a more successful company to get ideas about
process improvement and thereby improve its
productivity.
Compare and contrast can lead to deeper insights if
our attention is focused on a variety of similarities
and differences and take time to think about what
these similarities and differences show. Based on the
breadth of similarities and differences we consider
and the objective we are trying to achieve, compare
and contrast may be classified into two types, open
compare and contrast and focused compare and
contrast. In open compare and contrast, we try to
learn about the two compared and contrasted things
as much as possible by identifying as many
similarities and differences as possible (perhaps
through a brainstorming session). This type of
compare and contrast is appropriate to use when the
two things are very new, such as after introducing
two new related algorithms. It helps in deeper
understanding. In focused compare and contrast, we
have a few specific objectives and try to make a
judgment based on the outcome of this process. The
specific objectives determine the types of similarities
and differences to consider and limit them to a
relatively small set. This type of compare and
contrast is appropriate to use when we have an
evaluation criteria and a specific goal to achieve.
In our data structures course, we cover many data
structures (including lists, doubly-linked lists, stacks,
queues, deques, binary trees, heaps, hash tables, etc),
and different implementations of these data
structures. This makes it easy to infuse the critical
thinking skill of compare and contrast very naturally
in the course content.
4. Model Lesson
It is always a good practice to begin a class by
stating objectives of that particular class. This
model lesson has two main objectives: (a) to
introduce the critical thinking skill of compare-and-
contrast and (b) use that skill on stacks and queues,
looking at similarities and differences between
stacks and queues, thereby facilitate deeper
understanding of these two important data structures.
A typical lesson with a critical thinking skill infused
in it contains the following four phases.
• Introduction of the critical thinking skill to be
used and the course content covered in that
lesson.
• Thinking actively: applying the critical thinking
skill on the course content.
• Thinking about thinking: reflecting on the
process of applying the critical thinking skill.
• Immediate transfer and reinforcement:
suggesting exercises for internalizing the skill
through homework (perhaps an essay writing).
4.1 Introduction phase
Imagine that you went to Australia last month to
spend a semester at the University of Queensland,
Brisbane in Australia under the student exchange
programme in place between KFUPM and UQ. A
friend of yours asked you to write a detailed e-mail
about your stay and new university. How do you go
about this task? Where do you start? (Give a few
minutes for students to come up with their answers.
A typical response could be: I start with similarities
between UQ and KFUPM; between Brisbane and
Dammam. I then write about features where UQ and
KFUPM differ; different life styles in Brisbane and
Dammam. We may do it best, point by point giving
both similarities and differences).
Imagine that you got 2 job offers (from a company A
in Dammam and another company B in Riyadh) in
your final semester. How do you go about selecting
one of them? (Give a few minutes for students to
formulate their answers. A typical response could
be: I will identify factors relevant to the decision I
am making (selecting the right job) – location,
salary, growth opportunity, job security, etc. I note
both similarities and differences between the two
jobs with respect to these factors. Make a decision
based on the significant differences between the two
jobs).
In the above two examples, we are looking for
similarities and differences between two situations to
express our opinion clearly and in a structured
manner. The first problem is a simple one and how
you describe your stay and new university in
Australia determines the quality of your letter, while
the second problem involves a potentially life
defining decision making. In life, we face quite a
few such important decision making situations. The
critical thinking skill called compare and contrast is
useful in those situations.
The process of looking at similarities and differences
in order to reveal important characteristics of two
objects, systems, organizations, events, processes,
tools, techniques, algorithms, models or theories (we
use “subject” to refer to any of these) is called
comparing and contrasting. Comparing and
contrasting involves analyzing features that match
and features that do not match and drawing out the
implications of this analysis. Compare and contrast
can lead to deeper insights if our attention is focused
on a variety of similarities and differences and take
time to think about what these similarities and
differences show. This skill is very useful in
Making decisions
Classifying objects – concrete and abstract
Evaluating different approaches and
solutions
Searching for opportunities to improve
through hybridization of different
approaches taking positives of various
alternatives.
Compare and contrast is so natural that we use it
very frequently in our daily life. However, we are
not thorough in doing it and some of the common
mistakes are:
• We identify only a few similarities and
differences
• We identify only superficial similarities and
differences
• We make rough and imprecise judgments of
similarity or difference
• More importantly, we don’t draw out all (but
just a few) implications of the similarities
and differences we have identified.
The compare and contrast can be conducted
effectively and the above problems avoided by
trying to answer the following five questions about
the two subjects being compared:
1. How are they similar?
2. How are they different?
3. What similarities and differences seem
significant?
4. What categories or patterns do you see in
the significant similarities and
differences?
5. What interpretation or conclusion is
suggested by the significant similarities
and differences?
To illustrate the effectiveness of the above thinking
map 5 questions) for compare and contrast, let us
reconsider the job selection problem discussed
earlier and see how skillful compare and contrast
differs from a casual compare and contrast. You
have two offers of job, one in your native town
Dammam and the other in Riyadh. Some features of
Dammam job are: salary 130K, established
company, car but no accommodation, the work is
related to your degree, while those of Riyadh job
are: Salary 120K, new company with regional
headquarters in Dubai, car and accommodation,
work related to your degree.
In a casual compare and contrast, you look at the
following significant factors in making a decision.
1. Salary
2. Place (close to native place)
3. Company
4. Perquisites
5. Nature of work
At a cursory look, the offers have similar strength in
1 and 5 with Dammam job on a better side. The two
offers differ in 2 3, and 4, the second job has better
perks (car and house) while the first job is in your
native town. Since housing in your native town may
not be so important, you may decide to go with
Dammam job in view of established company, better
salary and close to home.
In a skillful compare and contrast, you will also look
at other possibly significant above factors in making
your decision, like
6. Detailed nature of work
7. Growth prospects
8. Opportunities to learn
The thinking map and the following graphic
organizer used in skillful compare and contrast
require you to look into as many relevant factors as
possible bringing out many things explicit.
Figure 1: Graphic Organizer for open compare and contrast
Investigating further on the detailed nature of work,
growth prospects and opportunities to learn, you
may discover that work at the Riyadh job is on
cutting edge technology giving a lot of scope for
learning new things and thereby rapid growth in
career. Therefore, you decide to go with the Riyadh
job, which is good in the long run. In other words,
skillful compare and contrast avoids the pitfalls of
short-sighted decisions.
4.2 Thinking Actively
We illustrate the thinking skill by conducting an
open compare and contrast on stacks and queues
after introducing them and discussing their
implementations.
1. How are they similar?
Typical responses:
Both Stacks and Queues are subclasses of
Linear Lists.
Both Stacks and Queues are ordered (by
position, not by value) collection of data, i.e.,
data can only be accessed in one particular
order.
The following operations are common.
Initialize
Size
Full
Empty
2. How are they different?
Typical responses:
a. Stacks maintain a Last-In-First-Out
order, while queues maintain the First-In-First-
Out order of elements.
b. All access to a stack is restricted to one
end of the list, called the top of stack. Insertion
and Deletion both take place at the top of the
stack. On the other hand, insertion of elements is
carried out at the ‘Tail’ of the queue and
deletion is carried out at the ‘Head’ of the
queue.
c. Queues are more difficult to implement
than stacks, because action happens at both
ends.
d. Typical applications of Stacks
Page-visited history in a Web browser
“Undo” sequence in a text editor
Chain of method calls in the Java Virtual
Machine or C++ runtime environment
e. Typical applications of Queues
Waiting lines
Access to shared resources (e.g., printer)
Multiprogramming, threading
Breadth-first search
3. What similarities and differences seem
significant?
Typical responses:
The differences a, d and e are very significant.
4. What categories or patterns do you see in the
significant similarities and differences?
Typical responses:
In general, stacks are more suitable when we
keep track of partially done operations
(procedures), where the most recent one is
handled before the older operations.
In general, queues are more suitable when we
serve the agents (e.g., threads) on first-come-
first-basis.
5. What interpretation or conclusion is
suggested by the significant similarities and
differences?
Typical responses:
There are applications, where stacks are more
suitable than queues and the vice versa.
Subject
Subject
In particular, stacks are useful when the access
should be restricted to last-in-first-out (LIFO)
basis, while queues are useful when the access
should be restricted to first-in-first-out (FIFO)
basis.
4.3 Thinking about Thinking
Let us stop thinking about stacks and queues and
focus our attention on what we did to think about
these two data structures by answering the following
questions to reflect on the thinking process and
internalize the thinking skill.
• What kind of thinking did we do?
• What did we do to compare and contrast stacks
and queues.
o What did you think about first?
o Then next, next…?
• How the compare and contrast process was
different from just identifying and listing
similarities and differences?
o Is this better? How is it better?
• Was the graphic organizer useful?
o What way was it useful?
4.4 Immediate Transfer and Reinforcement
To reinforce this thinking skill introduced to the
student in the class, we give an essay writing
homework to compare and contrast (a) doubly linked
lists and singly linked lists, or (b) iteration and
recursion. This homework helps towards immediate
transfer of the skill to a different situation. For later
reinforcement of the thinking skill, we use this skill
later in the semester to compare and contrast (a)
infix notation and postfix notation, and (b) depth-
first traversal (DFT) and breadth-first traversal
(BFT) algorithms for graphs. We also give
homework assignments and exam questions covering
compare and contrast.
5. Conclusion
In this paper, we described our experiences in
infusing critical thinking skills into a course on data
structures. In particular, it is shown that critical
thinking skills like compare-and-contrast can be
naturally introduced in the course content. The
benefits from the infusion of critical thinking skills
into course content include the following:
1. Improved thinking skills in the students:
2. Lively classroom atmosphere:
In view of the active learning techniques used in
the course, student participation naturally
improved.
3. Improved communication skills:
Because of the writing they have to do for
critical think assignments, students
communication skills improved.
4. Improvement in teaching skills:
After adapting active learning and critical
thinking skills, we achieved some improvement
in framing the questions. For example, the
question “compare and contrast AVL-trees and
B-trees” from exam paper of a few years back
has become “compare and contrast AVL-trees
and B-trees stating (a) similarities, (b)
differences and (c) under what conditions their
behavior is the same” in the recent years.
Acknowledgements
The authors would like to thank the Deanship of
Academic Development at King Fahd University of
Petroleum and Minerals for supporting this research
work.
6. References
[1] ACM//IEEE. Computing Curricula 2001.
Electronic version available at
http://www.acm.org/sigcse/cc2001/.
[2] Bransford, J., Brown, A.L., and Cocking, R.R.
How People Learn: Brain, Mind, Experience,
and School. NAP, 2000.
[3] Broadbear, J.T. Essential elements of lessons
designed to promote critical thinking, The
Journal of Scholarship of Teaching and
Learning, 3, 3 (2003), 1-8.
[4] Browne, M. N., & Freeman, K. Distinguishing
features of critical thinking classrooms.
Teaching in Higher Education, 5, 3 (2000), 301-
309.
[5] De Bono, E. De Bono’s Thinking Course. Ariel
Books 1985.
[6] De Bono, E. Six thinking hats for schools.
Hawker Brownlow, 1992.
[7] M.R.K. Krishna Rao (2005), Infusing critical
thinking skills into content of AI course, Proc. of
the 10th annual SIGCSE conference on
Innovation and technology in computer science
education, ITICSE’2005, pp. 173-177.
[8] M.R.K. Krishna Rao, S. Junaidu, T. Maghrabi,
M. Shafique, M. Ahmad and K. Faisal (2005),
Principles of curriculum design and revision: a
case study in implementing computing curricula
CC2001, Proc. of the 10th annual SIGCSE
conference on Innovation and technology in
computer science education, ITICSE’2005, pp.
256-260.
[9] Norris, S. P., and Ennis, R. H. Evaluating
critical thinking. Critical Thinking Press and
Software, 1989.
[10] Paul, R. & Elder, L. Critical Thinking: Tools
for Taking Charge of Your Professional and
Personal Life. Prentice Hall, 2002.
[11] Popper, K.R. The Logic of Scientific Discovery.
1934. Recent edition (15th) , Routledge
publishers, 2002.
[12] Swartz, R. Infusing the Teaching of Critical and
Creative Thinking into Content Instruction, in
Developing Minds, Association of Supervision
and Curriculum Development, Alexandria,
Virginia, 2001.
[13] Van Tassel-Baska, J. Comprehensive
curriculum for gifted learners. Allyn & Bacon.,
1994.