top of page

Teaching Introduction to Computer Architecture: A Hands-on Approach

Lilly Logo - Colors.png

Presented by:

Lina Sawalha, Western Michigan University

Key Statement:

Learning computer architecture can be very challenging without the ability to design and test computer processor components. Hands-on computer architecture design and implementation is very effective in helping student understand the subject, and retaining students in computer engineering and recruiting them from graduate school.

Keywords:

Hands-on Teaching, Self-Learning, Teamwork

Abstract:

Learning computer architecture can be very challenging without the ability to design and test computer processor components. Hands-on computer architecture design and implementation is very effective in helping student understand the subject, and retaining students in computer engineering and recruiting them from graduate school.

Click Image to Expand
Teaching Introduction to Computer Architecture: A Hands-on ApproachLina Sawalha, Western Michigan University
00:00 / 01:04

HEAR IT FROM THE AUTHOR:

TRANSCRIPT:

Teaching Introduction to Computer Architecture: A Hands-on Approach

Lina Sawalha, Western Michigan University

The Introduction to Computer Architecture course at Western Michigan University is a
junior/senior level course that teaches computer engineering students the basic concepts of
computer architecture, roughly speaking, simple design of CPU with the different components,
design decisions, tradeoffs, and performance measurement. This is a complex subject that can
be hard for undergraduate students to understand even with the use of diagrams. The course
has been redesigned and restructured to emphasize hands-on experiential learning and critical
thinking. In addition, active learning techniques have been integrated into the classroom.
A major component of the course is reinforcing the principles presented in the lectures in the
laboratory through team laboratory assignments, in which each team of students designs and
builds a basic computer in hardware and then runs programs on it. Another main goal of this
class is to teach students how to think critically about different design options and computer
architecture topics.
I will first describe the hands-on experiments that were added to this course. Students first do
some digital logic review and learn how to use Verilog hardware description language through a
couple of individual lab assignments. Then students learn the instruction set architecture of the
MIPS processor and design their own ISA given certain rules and guidelines to follow. Then they
learn the different components of processors and implement different components in Verilog
and simulation their design to verify their designs’ functionality and find their performance.
Their design includes a single-cycle processor architecture, multi-cycled or pipelined
architecture, memory hierarch and caches, and branch predictors. This is implemented in a
sequential incremental lab throughout the semester. They also write algorithms to run their
designed processor.
We tracked students' performance by measuring their grades of D, F, and W & I rates. In the
beginning, we added a few projects to help students understand the subject, and every year we
added more labs. As we can see once we added enough labs to cover more material, the DFWI
rate started decreasing (2020 was a COVID year and was an exception to the trend). We also
noticed that part-time students have been struggling a lot more than full-time students and this
hands-on experience differently helped them.

Takeaways:
• Implementing the concepts through hands-on experience gave students a better
understanding of the different topics and higher success rates.
• This also motivated them to learn more and was evident through their attempt to do
the bonus labs and discussion of different ideas.
• The new assignments emphasized optimized designs that result in higher performance.
Students had to think critically about their design choices, tradeoffs, and decisions to
achieve higher performance. They also learned how the different decisions affect

performance. This is an important skill that will prepare them for lifelong learning and
design decision-making in their careers.
• In addition, active learning techniques such as the muddiest point, think-pair-share,
think-aloud, teamwork, and problem-solving techniques have significantly helped
students assimilate the subject and participate in the classroom.

In conclusion, the hands-on experiential learning, teamwork, critical thinking, and active
learning techniques increased student understanding of computer architecture,
motivated them to learn more, lowered their DFWI rate, and increased student
retention.

LEARNING OUTCOMES:

1- Describe experimental and hands-on teaching in computer architecture
2- Explain the benefits of hands-on learning for a complex topic such as computer architecture.
3- Assess student success and summarize student attitudes and outcomes related to concept-understanding, self-learning, retention and teamwork.

bottom of page