1. Story

The following case study describes the circumstances surrounding the design and development of a program called Java Logic Simulator (JLS). This software is used in Introduction to Computer Architecture by students and teachers to design and test computer logic circuit simulations.

As an instructor of this course, Dr. Doug Newberry originally wrote a text based version of this program. Since then various students have expanded and updated this software, leading to the development of JLS.

1.1. Teaching Circuit Design

Computer hardware is difficult and expensive to manufacture, so historically, students in a circuit design course (such as the one mentioned above) have typically worked on their designs exclusively on paper. This made it difficult to verify the functionality of these designs because there was no way to test them out. It was also difficult for the instructor or grader to evaluate them.

1.2. LogicSim

In response to the situation described above, the instructor of this course provided students with a program called LogicSim: a text-based logic circuit simulator. Students would write their circuit designs in a special programming language, which would then be interpreted by LogicSim. In this way, students were able to observe a simulation of their circuit designs. This allowed students and instructors to verify the functionality of their designs.

This program was a useful teaching tool because it provided interactivity and the ability to validate designs. It helped students understand the fundamentals of CPU circuit design, such as instruction encoding, combination logic, and arithmetic circuits.

Example text file that demonstrates some of the things mentioned above

However, LogicSim had its drawbacks. The biggest problem was the text based interface was difficult for students to use. The instructor noticed that many of them were spending too much time trying to figure out how to implement the correct circuits within the program. Even within a classroom setting, graphical diagrams, not textual program lines, are a more intuitive way to describe circuit designs.

The text-based circuits also made it difficult for the instructor to help the students. It is not easy to "see" the circuit within several lines of text. To help a student find a particular problem the instructor would have to comb through several lines of text in order to find a mistake, or even just a small typo. A picture or a drawing of a circuit makes things easier to see. When helping students, the instructor would often ask them to "draw what they were trying to do."

The main reason for developing this text based simulator was the fact that it was easy to implement. Developing a GUI for something like this takes a lot of time and effort. LogicSim turned out to be the best of the worst, because it was easy to implement, but difficult to use.