A synthesis course in hardware architecture, compilers, and software engineering

Shimon Schocken*, Noam Nisan, Michal Armoni

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

6 Scopus citations

Abstract

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.

Original languageAmerican English
Title of host publicationSIGCSE'09 - Proceedings of the 40th ACM Technical Symposium on Computer Science Education
Pages443-447
Number of pages5
DOIs
StatePublished - 2009
Event40th ACM Technical Symposium on Computer Science Education, SIGCSE 2009 - Chattanooga, TN, United States
Duration: 4 Mar 20097 Mar 2009

Publication series

NameSIGCSE'09 - Proceedings of the 40th ACM Technical Symposium on Computer Science Education

Conference

Conference40th ACM Technical Symposium on Computer Science Education, SIGCSE 2009
Country/TerritoryUnited States
CityChattanooga, TN
Period4/03/097/03/09

Keywords

  • Abstraction
  • Architecture
  • Compilers
  • Design
  • Meaningful learning
  • Software

Fingerprint

Dive into the research topics of 'A synthesis course in hardware architecture, compilers, and software engineering'. Together they form a unique fingerprint.

Cite this