The Knob & Switch Computer uses an intuitive metaphore and an incremental approach to introduce introductory CS students to the big ideas in computer organization. Students are introduced to a datapath containing an ALU and 4 registers. The ALU operation and the registers on which it will operate are selected by rotating (clicking) a collection of knobs. A second increment adds a main memory unit to the datapath along with switches that control the flow of data between the CPU and the memory. The third increment adds a microprogram control unit that allows the machine to be programmed using 1's and 0's that correspond to the knob and switch settings. The final increment turns the K&S into a complete stored program computer that executes assembly/machine language programs stored in its main memory unit.
The remainder of this page contains simulators for each of these increments, links to presentations and papers that describe the K&S computer, links to courses and materials that use the K&S computer and downloads for the K&S computer source code.
NOTE: The following links open a new browser window and work best if your browser's default fonts are set to 12 point.
) & Talks (
):
Braught, G. & Reed, D. (2001). "The Knob & Switch Computer: A Computer Architecture Simulator for Introductory Computer Science," Braught, G. and Reed, D. Journal of Educational Resources in Computing (JERIC), 1(4), 31-45.
The Knob&Switch Computer is also featured in a text published by Prentice Hall:
The following paper and presentation discuss an earlier version of the K&S computer:
Braught, G. (2001). Computer Organization in the Breadth First Course. The Journal of Computing in Small Colleges, 16(4), 182-195.
The Knob and Switch Computer: An Incremental Machine Simulator for the Breadth First CS Course, The Consortium for Computing in Small Colleges, Middlebury College, April 21, 2001. (Selected as "best paper" at CCSC-NE 2001)
):
The JavaScript and HTML source code for the Knob and Switch Computer. This code is released under the terms of the GNU CopyLeft agreement. I ask that if you make any changes or improvements to the K&S Computer that you contribute them so that they can be made available from this page. I will post these updates here with credit to the contributors.
The following links contain the latest version of the K&S computer:
KandS2.zip - The JavaScript and HTML Source code for the K&S Computer in zip format
The following links contain the original version of the K&S computer (The newer version is recommended):
KandS.zip - The JavaScript and HTML Source code for the K&S Computer in zip format