TY - GEN
T1 - A practical methodology to learn computer architecture, assembly language, and operating system
AU - Fukuda, Hiroaki
AU - Leger, Paul
AU - Figueroa, Ismael
N1 - Publisher Copyright:
Copyright © 2020 by SCITEPRESS - Science and Technology Publications, Lda. All rights reserved
PY - 2020
Y1 - 2020
N2 - System-level details, such as assembly language and operating systems, are important to develop/debug embedded systems and analyze malware. Therefore it is recommended to teach every topic of these subjects. However, their learning cost has been significantly increased due to current system complexities. To solve this problem, several visualization techniques have been proposed to help students in their learning process. However, observing only the computer system behaviors may be insufficient to apply it to real systems due to the lack of practical experiences and a comprehensive understanding of system-level details. To address these issues, we propose a novel methodology where students implement a virtual machine instead of using existing ones. This virtual machine needs to execute binary programs that can be run on a real operating system. Through implementing this virtual machine, students improve by experience their understanding of computer architecture, assembly languages, instruction sets, and the role of operating systems. We also provide MMVM that is a virtual machine implementation reference, and can execute the binary programs while showing the internal states of CPU (registers & flags) to users (students) to support their implementation. Finally, this paper reports the education results applying this methodology to 15 students that consist of 3rd-year students and 1st year of master students.
AB - System-level details, such as assembly language and operating systems, are important to develop/debug embedded systems and analyze malware. Therefore it is recommended to teach every topic of these subjects. However, their learning cost has been significantly increased due to current system complexities. To solve this problem, several visualization techniques have been proposed to help students in their learning process. However, observing only the computer system behaviors may be insufficient to apply it to real systems due to the lack of practical experiences and a comprehensive understanding of system-level details. To address these issues, we propose a novel methodology where students implement a virtual machine instead of using existing ones. This virtual machine needs to execute binary programs that can be run on a real operating system. Through implementing this virtual machine, students improve by experience their understanding of computer architecture, assembly languages, instruction sets, and the role of operating systems. We also provide MMVM that is a virtual machine implementation reference, and can execute the binary programs while showing the internal states of CPU (registers & flags) to users (students) to support their implementation. Finally, this paper reports the education results applying this methodology to 15 students that consist of 3rd-year students and 1st year of master students.
KW - Assembly Language
KW - Computer Architecture
KW - Educational Methodology
KW - Operating System
KW - Virtual Machine
UR - http://www.scopus.com/inward/record.url?scp=85091422079&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85091422079&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:85091422079
T3 - CSEDU 2020 - Proceedings of the 12th International Conference on Computer Supported Education
SP - 333
EP - 340
BT - CSEDU 2020 - Proceedings of the 12th International Conference on Computer Supported Education
A2 - Lane, H. Chad
A2 - Zvacek, Susan
A2 - Uhomoibhi, James
PB - SciTePress
T2 - 12th International Conference on Computer Supported Education, CSEDU 2020
Y2 - 2 May 2020 through 4 May 2020
ER -