ENGINEERING COURSE

advertisement
Session
PROBLEM-BASED LEARNING IN AN INTRODUCTORY COMPUTERENGINEERING COURSE
Aaron Striegel1 and Diane T. Rover 2
Abstract  As systems increase in complexity and
technology advances, curriculum and laboratories are
challenged to keep pace. This is especially true in computer
engineering, which has seen dramatic growth in the scope
and diversity of computer-based systems. One of the key
challenges is developing the educational context for the new
technologies, which are being encountered earlier and
earlier in a student's program of study. Problem-based
learning has been central to engineering education, and it is
particularly relevant to the integration of new system design
concepts and technologies into introductory courses. In this
paper, we describe steps taken at Iowa State University to
revitalize a sophomore level course in embedded systems by
addressing the type and extent of problem-based learning
used in the course. Our goal was to develop a more
interesting and relevant integrated classroom/laboratory
experience for the students. We present the revisions in
terms of the "3C5I" model, which creates an educational
context based on Concepts within Courses within a
Curriculum (3C), and in each, progressing along the five
"I's" of Introduction, Illustration, Instruction, Investigation,
and Implementation. Problem-based learning may extend
through to either Investigation or Implementation, and in
each case, to differing degrees, depending on the scope of
the problem. In the revised class, we use both, with a realworld theme guiding weekly labs that culminate as parts of a
final project. We examine student learning and experiences
with the thematic labs as well as the effects of several other
changes such as competitive programming exercises and
alternative evaluation methods.
Index Terms  problem-based learning, learning
objectives, computer engineering education, embedded
systems, theme laboratory.
INTRODUCTION
As systems increase in complexity and technology advances,
curriculum and laboratories are challenged to keep pace.
One of the key challenges in computer-engineering
education is developing the educational context for the new
technologies, which are being encountered earlier and earlier
in a student's program of study. Problem-based learning has
been central to engineering education, and it is particularly
relevant to the integration of new system design concepts
and technologies into introductory courses. In this paper, we
describe steps taken at Iowa State University to revitalize a
sophomore level course in embedded systems by addressing
the type and extent of problem-based learning used in the
course. Our goal was to develop a more interesting and
relevant integrated classroom/laboratory experience for the
students.
A starting point for thinking about learning in the
classroom is Bloom’s Taxonomy [1, 2], which categorizes
learning objectives and outcomes into six levels:
• Knowledge – recalling previously learned
information;
• Comprehension – understanding the meaning;
• Application – solving problems using information;
• Analysis – examining information and making
inferences;
• Synthesis – creatively applying or integrating prior
knowledge; and
• Evaluation – making judgements about information
and ideas.
Problem-based learning (PBL) aligns with this taxonomy,
but goes farther by having a problem drive the learning.
Before students learn some knowledge they are given a
problem. The problem is posed so that the students discover
that they need to learn some new knowledge before they can
solve the problem. [3] For example, in guided design, a case
is posed, and small groups work cooperatively using
structured problem-solving to make decisions. Activities are
structured in advance, and feedback is given after each
activity. PBL often includes many principles that improve
learning, such as active learning, cooperation, prompt
feedback, diverse learning styles, and student empowerment
and accountability.
We have introduced a model called 3C5I that
incorporates both Bloom’s levels and PBL. The 3C5I model
creates an educational context based on Concepts within
Courses within a Curriculum (3C), and in each, progressing
along the five “I’s” of Introduction, Illustration, Instruction,
Investigation, and Implementation. Table I lists the 5I
learning steps and their relationship to the Bloom and PBL
learning models. Problem-based learning may extend
through to either Investigation or Implementation, and in
each case, to differing degrees depending on the scope of the
problem. In our embedded systems course, we use both
Investigation and Implementation with a real-world theme
guiding weekly labs that culminate as parts of a final project.
1
Aaron Striegel, Department of Electrical & Computer Engineering, Iowa State University, Ames, IA 50010 adstrieg@iastate.edu
Diane T. Rover, Department of Electrical & Computer Engineering, Iowa State University, Ames, IA 50010 drover@iastate.edu
This work was supported in part by the National Science Foundation under grant no. ACR-9624149.
2
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
1
Session
The general learning objectives for the course include:
TABLE I
LEARNING MODELS AND 3C5I
5I Learning
Bloom’s Levels
Problem-Based
Steps
Learning
Introduction
–
Problem,
Conceptualization
Illustration
–
Instruction
Knowledge
Process Skills,
Comprehension
Subject Knowledge
Investigation
Application
Active Learning,
Analysis
Problem-Solving
Implementation Synthesis
Creative Thinking,
Evaluation
Critical Thinking
COURSE OVERVIEW
The introductory computer engineering course on embedded
systems, CprE 211– Introduction to Microcontrollers, was
reviewed by the department during preparations for its Fall
2000 ABET accreditation review under EC2000 [4].
Beginning Fall 2000, a small team of faculty, staff, and
graduate and undergraduate students began a project to
upgrade the laboratory for the course [5, 6, 8]. In
coordination with this, changes also were underway to
transition the course from a traditional to a more active
learning environment.
CprE 211 has the following course description:
Logic families. Documentation standards.
Implementation and testing of combinatorial and
sequential systems and subsystems. Introduction to
microcontrollers. Microprocessor registers, memory,
and programmable input/output devices. Interrupts.
Single chip controllers. Design and testing of software
for microcontrollers. Hardware/software design
tradeoffs and issues. Individual design projects.
Prerequisites include introductory programming and digital
logic. The class meets three hours every week. The
laboratory meets once weekly for two hours. By the end of
the CprE 211 course, students should be able to:
•
•
•
•
•
•
•
Demonstrate knowledge of a microcontroller and
how it operates
Program in C and assembly code
Understand how C is converted to assembly code
Understand basic concepts of microcontrollers
Understand basic computing concepts such as
interrupts, interrupt service routines, and
input/output (I/O) subsystems
Perform basic hardware and software debugging
Work with and design basic embedded systems
1.
2.
3.
4.
5.
Enable the student to design software to interact
with real-world systems
Familiarize the student with interfaces between the
real-world and a digital system
Provide the student with information to work
effectively in the laboratory
Familiarize the student with typical engineering
activities
Provide students with the interactive skills needed
to work in groups
Traditional Learning/Laboratory Model
CprE 211 was not unlike most courses in the department,
having a traditional, subject-based learning environment.
Delivery was to large lectures (80-120 students) in typical
lecture format.
Instructor-student and student-student
interaction during a lecture was typically in the form of
questions regarding the material, and the class would follow
various examples on the board. Homework or optional
exercises were given to reinforce concepts covered in
lecture. The course webpage listed the syllabus, required
readings, homework exercises, and labs.
Course concepts were also covered in the two-hour
weekly laboratory. Each week, students were assigned a
prelab that involved writing pseudocode or code for the lab.
The prelab was due at the beginning of the laboratory
session. During the lab session, students implemented,
tested, and debugged their prelab solution and demonstrated
a final solution to the lab instructor (a graduate or
undergraduate teaching assistant). The lab topics consisted
of self-contained labs mirroring concepts covered in the
course lectures. In most cases, students would see concepts
in lecture at least two class periods before working with it in
the lab. Table II lists a set of topics representative of a
traditional laboratory organization for CprE 211.
Lab
1
2
3
4
5
6
7
8
9
10
TABLE II
TRADITIONAL LAB ORGANIZATION
Topic
Concepts
TTL circuits
Combinational logic,
breadboard wiring
Advanced TTL circuits Finite state machines
Introduction to C
C programming
Turn Signal
Embedded C programming
Elevator
Embedded C programming
Keyboard
Basic input/output,
assembly programming
Turn Signal
Timing, assembly
Keyboard
Advanced I/O, C
Real-Time Interrupt
Interrupts in C
Real-Time Interrupt
Interrupts in assembly
Lab Final
Comprehensive
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
2
Session
Although such a lab-oriented course is by nature a
hands-on learning experience for the students, the course
model was not leveraging the full range of active learning,
especially problem-based learning.
Improving the Course Model
The traditional model – lecture presentation, subjectknowledge acquisition, hands-on laboratory – provided
students with the basic knowledge required for the course.
However, in terms of engaging the students and
incorporating contemporary learning principles, the model
fell short. Thus, our goal was to develop a more interesting
and relevant integrated classroom/laboratory experience for
the students. Extensive work on learning in the educational
community, as well as Iowa State University’s decade-old
Project LEA/RN [7], served as a basis for our developments.
We decided to target four elements of the course model
for improvement:
• Classroom learning environment: The lecture
component should use active learning, cooperative
learning, and problem-solving to engage students,
spanning the four “I’s” from Introduction to
Investigation.
• Laboratory experience: The laboratory component
should be organized along a real-world theme, making
weekly labs more cohesive and relevant. A thematic lab
starts with a problem and supports all five “I’s” as part
of problem-based learning.
• Real-world examples: The course should introduce realworld examples as the basis for further investigation and
implementation, giving students an opportunity to
explore actual systems, devices, and applications.
• Course website: The course website should be an
informative and connective resource for students,
including course notes, FAQs, assignments, knowledgebuilding resources, skill-building resources, assessment
tools, etc.
These elements are addressed in the following sections in the
context of the 3C5I model and problem-based learning.
3C5I MODEL
We present a representative set of revisions to CprE 211 in
terms of the 3C5I model, i.e., considering different
perspectives of Course, Concept, and Curriculum (3C) as
well as steps ranging from Introduction and Illustration to
Instruction, Investigation, and Implementation (5I).
Course Perspective
One perspective from which to view a learning environment
is the spectrum of the course, especially in meeting its
educational objectives. For example, one of the general
learning objectives for CprE 211 is to enable the student to
design software to interact with real-world systems. This
objective corresponds to one of the elements that we targeted
for improvement: real-world examples.
Real-world
examples should motivate students to develop a deeper
understanding of practical issues in embedded programming.
Although we incorporated real-world examples in
several ways, we discussed examples in the classroom from
day one. After defining a microcontroller and introducing
the platform to be used in the course, MPC555 (PowerPC
microprocessor core, or CPU, central processing unit),
students were asked to find an application that uses a
PowerPC CPU. One application that was identified is the
Nintendo GameCube™. Another is a Motorola driver
information system called mobileGT. These types of
examples beg the question, how does a microcontroller
support the functions and features of these systems? Starting
with a real-world introduction and illustration leads the way
into the subject matter of embedded programming for the
PowerPC.
The course continued with instruction on programming
the PowerPC microprocessor, and students investigated
topics through in-class activities and homework and
laboratory exercises. Thus, the flow of the course used a
series of 5I steps. Later in the course, students were
surveyed to rate how well each of the learning objectives has
been covered. Often this reflects how frequently and how far
the 5I steps have been followed in relation to a particular
objective.
Concept Perspective
FIGURE 1
POWERBOX: POWER PC-BASED PLATFORM
Another perspective from which to view a learning
environment is at the level of a concept. For example, one of
the important concepts in CprE 211 is input/output (I/O) and
how a microcontroller interfaces to the real-world, whether
reading keystrokes by a user or temperature from a sensor.
This concept is addressed in the classroom using cooperative
learning techniques that step through to Investigation; and it
is also emphasized in the laboratory with both Investigation
and Implementation. Here we take a look at the classroom
approach.
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
3
Session
As shown in Table II, the keyboard is a means to study
I/O. Two keyboards are shown in Figure 1, a photo of the
platform used in the laboratory. The keyboard example
demonstrates how we improved the integration between the
classroom and laboratory. First, while reviewing C
programming, we provided one page of C code that sets up a
keyboard interface. The keyboard code included
programming constructs such as pointer and array data
types, control flow using bit-testing, and function calls. This
became the problem: how does software read a keyboard?
Then we used the keyboard interface to guide a cooperative
learning lesson covering both programming and I/O. Base
groups were used, consisting of 2-3 pairs of laboratory
partners (i.e., 4-6 students); these also facilitated skill
development for a group project in the laboratory.
Using the keyboard example as an illustration, we
introduced a device’s programming interface consisting of
status and data registers. But before focusing on the I/O
interface, we used the example to learn about embedded
programming in C. More specifically, base groups
completed the following tasks:
• Read the code and mark the constructs as known,
being studied, or not yet covered.
• Draw a diagram of the keyboard layout.
• Browse class notes on a specific embedded
programming topic. Five topics were listed:
pointers, functions, control flow, I/O, and compiler
directives.
• Discuss as a group the topic in relation to the
keyboard example.
• Answer a question on the topic and be prepared to
share the answer.
• Listen and contribute to class discussion.
As the base groups worked on answering the question, often
additional questions were raised, which led to deeper as well
as broader coverage of the programming and interfacing
issues than would have resulted from a traditional lecture.
The students reached an investigative level of learning, as
oppposed to simply instruction.
This learning was then reinforced and extended through
subsequent course activities, including writing code for a
keyboard in the laboratory (and dealing with complex
hardware-software interfacing issues such as debouncing),
seeing the keyboard code on exams, and studying assembly
programming via the same example.
Curriculum Perspective
A third perspective from which to view a learning
environment is within a curriculum. For example, the
prerequisite structure between courses in a program reflects
linkages. CprE 211 is part of a “learning pipeline,” as shown
in Figure 2. Students will engage in different levels of
learning at each stage of the pipeline.
Courses in the pipeline include:
1) ComS 227: Introduction to Computer
Programming (not shown)
2) CprE 210: Introduction to Digital Design
3) CprE 211: Introduction to Microcontrollers
4) CprE 305: Computer Organization
5) CprE 308: Software Systems (Operating
Systems)
6) Senior-level design courses (electives and
capstone) (not shown)
For example, one of the paths – 227, 211, 308 – takes
students from programming to embedded programming to
systems programming. Along this path, a subject such as bitmasking is first introduced in 227, with instruction and
investigation in 211. A more advanced subject, such as
multitasking, is introduced in 211, with subsequent steps or
levels of learning in 308. Another path – 210, 211, 305 –
takes students from digital logic to digital systems to
computer system architecture. Subject flows can be
identified here as well:
Introduction/Illustration
Tri-stating:
210
Instruction decoding:
211
à
Instruction/Investigation
à
211
à
305
The senior-level design courses typically provide some form
of implementation experience for advanced subject matter.
Obviously, CprE 211 serves specific functions to help
students learn across the curriculum. Recognizing the role
of a particular course as well as the relationships between
courses in terms of the 5I model is one means to improve
the learning environment.
FIGURE 2
CPRE PROGRAM: COURSE FLOWCHART RELATIVE TO CPRE 211
PROBLEM-BASED LEARNING IN THE
LABORATORY
In addition to upgrading the laboratory facilities for CprE
211, we focused on improving the laboratory experience, in
particular by enhancing the problem-based learning. We
organized the laboratory along a real-world theme, making
weekly labs more cohesive and relevant. A thematic lab
starts with a problem and supports all five I’s as part of
problem-based learning.
A real-world theme is selected for the laboratory project
each semester. Recent themes in the CprE 211 laboratory
have included an alarm system, vehicle dashboard system,
and a police cruiser information system. With the theme
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
4
Session
approach, the theme is introduced as the background for a
series of weekly laboratories, each of which has its own
objective, deliverables, and evaluation criteria. However,
each of the individual labs is developing student interest,
knowledge, and skills, and resources to be applied to a final
lab project. For example, the weekly labs for the police
cruiser information system were:
Lab 1. Introduction to CodeWarrior/PowerPC
Lab 2. Digital Logic & I/O Interfaces
Lab 3. Car Odometer
Lab 4. Glove Compartment Lock
Lab 5. Police Cruiser Light Control
Lab 6. Introduction to Assembly on the
CodeWarrior/PowerPC Platform
Lab 7. 7-Segment Display Decoder
Lab 8. Police Cruiser Communications: Serial
Query/Response Terminal
Lab 9. Police Cruiser Speed Radar: A/D I/O
Lab 10. Real-Time Interrupts
Labs 3, 4, 5, 8, and 9 were explicitly tied to the police
cruiser and students were informed that these lab
components would be re-used and integrated into a final
project. About halfway through the labs, students were
formally introduced to the project, including resources on
effective teaming and group-building activities in the
classroom and laboratory (e.g., peer review of code).
The lab project was divided into two parts: System
Integration (required) and System Innovation (optional).
System Integation involved combining previous labs from
the semester to implement a multi-function cruiser
information system. This required the base groups to use at
least one code module from each lab partner pair in the
group. System Innovation added new functionality with
features to customize or enhance the system above and
beyond the required System Integration part. The optional
part of the project was included to challenge students.
During the first offering of the course with a thematic
project, the students were given a strict list of requirements
for the implementation. While the checklist approach
worked well to evaluate proficiencies, it did not set a very
high bar for creative thinking and problem-solving. Thus, in
subsequent offerings, we adapted the grading criteria for the
project to include both required and optional parts. The
project base grade (70%) corresponded to the required
System Integration part. The remainder of the grade (30%)
corresponded to the System Innovation part. Groups could
choose not to complete the System Innovation part of the
project, resulting in a maximum grade of 70% out of a
possible 100%. For the System Innovation part, groups
would deliver the features they deemed necessary to merit
the extra 30% of the grade. In addition, groups were
rewarded for early completion of the project and penalized
for late submissions.
The optional part of the project allowed the students to
experience real-world engineering. Groups were given a list
of potential features to use as a starting point but were not
given a specific number of features to implement. In
addition, groups could explore topics without the overhead
of implementing all features to completion. The objective of
the so-called “dazzle me” part of the lab was to motivate
students to try something new, to differentiate their solution
from other solutions, and to challenge themselves. The
ambiguity of the optional component was key to
accomplishing this. Rather than strictly assigning points to
features, the students needed to justify to the instructor or
TA why certain features are worth certain points. Thus, the
project adapted to address the diverse abilities of students
and provide opportunities for higher levels of learning.
The thematic lab approach has provided other benefits
as well. Integrating earlier labs forces students to think about
issues of code re-use, rather than designing with a
write/throw-away mentality. It also makes a larger software
project feasible, which introduces students to issues in
project management and software engineering found in later
courses.
The thematic projects have met with resounding
success. With the option to specify features for an “A”
grade, students challenged themselves to deliver quality
work, rather than simply jumping through the required
hoops. Student self-assessment of their work proved to be a
useful learning experience in itself, especially in estimating
the value of their efforts and outcomes. In addition, the
innovation was often impressive. Examples of innovative
features include:
• Games/screen-savers on a 2x20 LCD screen
• New LCD drivers in assembly code with optimization
of refresh/clear operations
• Multi-threaded operating system for the vehicle
dashboard system
• Interface to a flashing light (actual police light) through
digital output and to siren sound through an audio chip
and speaker for the police cruiser information system
Despite the increased workload, many students rated the
final project as highly valuable and satisfying. Students
stated that the project helped bring the class together.
Several students indicated that they discussed the project in
job interviews as well.
The following considerations were important to
managing a thematic lab. Facilities, equipment and staffing
must be set up to support the project, as student demands
will be greater than for a traditional lab. Second, student
nature is to leave the project to the last minute. Reserving
lab time for project work was not sufficient, as students
often used the time to finish other labs or classwork.
Specifying milestones and deliverables with deadlines as
well as early completion bonuses were more effective.
SUPPORT FOR ACTIVE LEARNING
Cooperative learning was an important element of problembased learning in the laboratory. However, we also
emphasized cooperative learning in other class activities.
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
5
Session
An example lesson plan was already presented in the section
on Concept Perspective. In addition, students were
encouraged to use their base groups, or groups of the
students’ choice, on homework and programming exercises.
The turn-to-your-neighbor technique was commonly used in
the classroom.
Problem-solving in the laboratory was complemented
with knowledge- and skill-building via programming
exercises (longer homework problems). Although to a lesser
extent, we tried to emulate aspects of the lab in the
programming exercises, such as the use of real-world
examples and performance incentives.
For example, students were given a real-world problem
specification and asked to write the code using either C or
assembly. Examples included a simplified IP router and a
serial HART protocol. In addition to writing the code,
students also prepared a short executive summary based on
their own research into the topic. This approach to
programming exercises served two purposes. First, the realworld problem kept the work interesting and relevant, letting
students apply basic concepts and skills to actual
applications. Second, the research aspect of the assignment
allowed students to explore information technology more
broadly.
In addition to using alternative grading criteria in the lab
project, we experimented with a competitive grading scheme
on programming exercises. For example, on an assembly
programming problem, we used grading criteria based on the
performance (code size/speed) of the group’s solution.
Groups were graded 80% on correctness of the solution and
20% on relative performance. For each of the two criteria
(code size, code speed), the groups were ranked against one
another and sorted into percentile blocks. For example, a
group in the top bracket of code speed and the second
bracket of code size scored 18% for the competitive
component. We also awarded bonuses of 5% to the top
teams.
The results of the competitive grading on programming
exercises were quite fascinating. Within a group, the
students rallied around a common mission, thus heightening
team spirit. Between groups, students protected their
intellectual property. For example, during one three-week
programming exercise, groups avoided sharing solutions and
comparing benchmarks with one another. However, the
instructor-student interaction was substantial, since students
frequently asked for feedback on their performance results.
In the end, the groups produced a wide variety of solutions
and were able to meet or exceed the performance marks of
the instructor’s solution. The competitive nature of the
exercise helped students in a number of ways: built
teamwork skills, highlighted design tradeoffs and decisionmaking (e.g., code size/speed tradeoff), provided in-depth
study of assembly code, and motivated the need for
assessment.
Finally, experience and feedback have shown that the
course website is an important element of the learning
environment. We have focused on the following needs and
improvements.
• Post class notes in advance. Since a cooperative
learning model is used, expectations for class attendance
have already been established. Having notes in hand
lets students think rather than write. We’ve also noticed
that it is especially helpful to international
undergraduate students.
• Maintain a Frequently-Asked-Questions (FAQs) page,
with answers to common questions. This requires
moderate maintenance and may seem trivial, but
students find it informative and re-assuring.
• List all due dates.
• Keep website current. This requires daily maintenance,
which is difficult.
• Make feedback forms available. These may be
distributed at selected times during a semester. They
remind students about learning objectives and provide
feedback on the learning environment.
IN SUMMARY
This paper describes several practical approaches to
incorporate problem-based learning in an introductory
computer engineering course on embedded systems. It is an
account based on our observations and instructor-student
interactions. Our goal was to integrate classroom/laboratory
experiences and bring new system design concepts and
technologies into an introductory course. We targeted four
elements of the course for improvement: classroom learning
environment, laboratory experience, real-world examples,
and course website. We used the 3C5I model as a context for
presenting the practices applied to support the learning
environment.
REFERENCES
[1]
B. Bloom and D. Krathwohl, editors, Taxonomy of Educational
Objectives: The Classification of Educational Goals, Handbook I:
Cognitive Domain, by a committee of college and university
examiners, New York, Longmans, Green, 1956.
[2]
L. Anderson and D. Krathwohl, A Taxonomy for Learning, Teaching
and Assessing: A Revision of Bloom's Taxonomy of Educational
Objectives, New York, Longman, 2001.
[3]
D. R. Woods, Problem-based Learning: Helping your students gain
the most from PBL, Waterdown, Canada, 1995. See also
http://chemeng.mcmaster.ca/pbl/pbl.htm
[4]
CprE 211 website, http://class.ee.iastate.edu/cpre211/01fall/, Fall 2001
[5]
ISU EE/CpE Senior Design website, http://seniord.ee.iastate.edu/
[6]
Cpr E 211 Senior Design website,
http://seniord.ee.iastate.edu/dec0104/, Fall 2001
[7]
Project LEA/RN (Learning Enhancement Action/Resource Network),
Iowa State University, Feb. 2000,
http://www.educ.iastate.edu/ess/learn.htm
[8]
A. Striegel and D. Rover, “Enhancing Student Learning in an
Introductory Embedded Systems Laboratory”, Proc. 32nd ASEE/IEEE
Frontiers in Education Conference, Boston, Nov. 2002.
0-7803-6669-7/01/$10.00 © 2002 IEEE
November 6 - 9, 2002, Boston, MA
32nd ASEE/IEEE Frontiers in Education Conference
6
Download