An Undergraduate Course on Computer Architecture

Teaching computer architecture to students focused on high-level programming is a challenging task. Such students often struggle with the complexities of this subject, exhibiting difficulties in grasping connections between hardware and software and in understanding low-level concepts. Here, we present the curriculum for an undergraduate course on computer architecture, which combines lectures and practical assignments, covering the main hardware components of the computer system and their interactions. Our description focuses on the practical assignments, of which the first one introduces basic assembly programming, the second one concerns communication with peripheral devices using ports and memory mapping, the third one deals with the interrupt system and the real-time clock, and the last one is related to how the graphics card operates in a graphics mode. We also report that students' engagement can be increased if the assignments involve programming in a high-level language such as C equipped with a library offering low-level instructions instead of assembly language.

Authors

Institutions

Publication Details

Published
2025-02-18
DOI
https://doi.org/10.1145/3641555.3705126
Primary Topic
Experimental Learning in Engineering
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

An Undergraduate Course on Computer Architecture

Dariusz Puchała, Kamil Stokfiszewski, P. Nowak
Experimental Learning in Engineering
article

An Undergraduate Course on Computer Architecture

Dariusz Puchała, Kamil Stokfiszewski, P. Nowak
article en

Abstract

Teaching computer architecture to students focused on high-level programming is a challenging task. Such students often struggle with the complexities of this subject, exhibiting difficulties in grasping connections between hardware and software and in understanding low-level concepts. Here, we present the curriculum for an undergraduate course on computer architecture, which combines lectures and practical assignments, covering the main hardware components of the computer system and their interactions. Our description focuses on the practical assignments, of which the first one introduces basic assembly programming, the second one concerns communication with peripheral devices using ports and memory mapping, the third one deals with the interrupt system and the real-time clock, and the last one is related to how the graphics card operates in a graphics mode. We also report that students' engagement can be increased if the assignments involve programming in a high-level language such as C equipped with a library offering low-level instructions instead of assembly language.

Lodz University of Technology (PL)
Sustainable cities and communities
Openalex Percentile: Top 96%
Experimental Learning in Engineering
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

An Undergraduate Course on Computer Architecture — Dariusz Puchała, Kamil Stokfiszewski, et al. · (2025) | TGRS Research Map | TGRS