TY - GEN
T1 - A synthesis course in hardware architecture, compilers, and software engineering
AU - Schocken, Shimon
AU - Nisan, Noam
AU - Armoni, Michal
PY - 2009
Y1 - 2009
N2 - We describe a synthesis course that provides a hands-on treatment of many hardware and software topics learned in computer science (CS) programs. Using a modular series of twelve projects, we walk the students through the gradual construction of a simple hardware platform and a modern software hierarchy, yielding a basic yet powerful computer system. In the process of building the computer, the students gain a first-hand understanding of how hardware and software systems are designed and how they work together, as one enterprise. The course web site contains all the materials necessary to run this course in open source, and students and instructors are welcome to use and extend them freely. The course projects are modular and self-contained, and any subset of them can be implemented in any order and in any programming language. Therefore, they comprise a flexible library of exercises that can be used in many applied CS courses. This paper gives a description of the approach and the course, juxtaposed against general educational principles underlying meaningful learning.
AB - We describe a synthesis course that provides a hands-on treatment of many hardware and software topics learned in computer science (CS) programs. Using a modular series of twelve projects, we walk the students through the gradual construction of a simple hardware platform and a modern software hierarchy, yielding a basic yet powerful computer system. In the process of building the computer, the students gain a first-hand understanding of how hardware and software systems are designed and how they work together, as one enterprise. The course web site contains all the materials necessary to run this course in open source, and students and instructors are welcome to use and extend them freely. The course projects are modular and self-contained, and any subset of them can be implemented in any order and in any programming language. Therefore, they comprise a flexible library of exercises that can be used in many applied CS courses. This paper gives a description of the approach and the course, juxtaposed against general educational principles underlying meaningful learning.
KW - Abstraction
KW - Architecture
KW - Compilers
KW - Design
KW - Meaningful learning
KW - Software
UR - http://www.scopus.com/inward/record.url?scp=77956197053&partnerID=8YFLogxK
U2 - 10.1145/1508865.1509021
DO - 10.1145/1508865.1509021
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:77956197053
SN - 9781605585048
T3 - SIGCSE'09 - Proceedings of the 40th ACM Technical Symposium on Computer Science Education
SP - 443
EP - 447
BT - SIGCSE'09 - Proceedings of the 40th ACM Technical Symposium on Computer Science Education
T2 - 40th ACM Technical Symposium on Computer Science Education, SIGCSE 2009
Y2 - 4 March 2009 through 7 March 2009
ER -