Final Paper

May 2, 2011

What is a Computer?

Write a ten to fifteen page paper that describes the entire abstraction stack we call a "computer" and close with your own opinion on the real meaning of "computer." Your paper should be written in a voice that is approachable (for example, consider Petzold) and you should feel free to be creative, placing the computer description within the context of a story such as abandoned islanders whose lives depend on creating a computer or teaching cavemen or martians how to build a computer. An outline is provided below, with key questions that should be answered -- but your explanations of each topic area should be not be limited to those questions alone. You may deviate from this, but your writing should still be comprehensive. Do not treat each topic separately -- your paper should be a cohesive description of what a computer is.

Suggested Outline

  1. Introduction
  2. Symbols, Meaning & Communication
    How is symbolic language an abstraction of things in the real world?
  3. Binary Symbol Systems
    What does all this 'binary' stuff mean?
  4. Electricity, Circuits & Boolean Logic
    What is the magic relationship between electric circuits and boolean logic?
  5. Logic Gates
    How do some simple (eg, NAND) and complex (D/MUXes) gates work?
  6. Memory & Sequential Logic
    How does a edge-triggered flip-flop work? What 'magic' properties does it exhibit, and what can we build from it?
  7. Computer Architecture
    What is an ALU? How does a CPU 'know' how to handle binary instructions?
  8. Assembly Language
    What does assembly language enable the machine operator to do? Why use it? How/why can a CPU 'magically' understand assembly language?
  9. Compiler & Virtual Machine
    What's the big deal about 'high-level languages'? What fundamental instructions/language constructs do we typically use when telling a computer what to do? How do we get a machine to understand such a language? How can we get a machine to understand and handle variables, objects, and function calls? How does a 'postmodern' compiler architecture such as the Jack compiler/VM work?
  10. Operating System
    What's an operating system and what services does it provide?
  11. Deeper Meaning
    In the end, what does it mean for something to be a computer, really? (be as opinionated as you wish)
  12. Conclusion

Grading Criteria

1500 points

This paper is worth 1500 points but can be substituted with the completion of ecs12 (OS).

The final due date is 5PM on Friday, May 14. No late submissions will be accepted, sorry.