Module 0318: How Logisim assigments are graded
Tak Auyeung, Ph.D.
October 17, 2018
Contents
1 About this module
- Prerequisites:
- Objectives: This module describes how Logisim designs are graded. Understanding the process can greatly improve
your chances of getting a good score.
2 The mechanism
Logisim (2.7.1) has a feature that allows a substitution of a subcircuit, and this provides the most important infrastructural
mechanism for grading.
A subcircuit is like a subroutine in programming. The interfaces to a subcircuit are the input and output pins, much like parameters
in subroutines. The design of a single file can be “imported” as a subcircuit to be used as a component of a higher level
design.
My grading mechanism involves the following:
- a high level circuit that feeds test cases to a subcircuit being tested
- a log file that logs the output of the subcircuit being tested
- a comparison of the logged output versus the output of a correct circuit, and
- for certain designs, I also manually go over the design and grade the design itself
3 How to make sure your assignment is gradable
In order for the auto-grade mechanism to work, you must pay attention to details, including but not limited to the
following:
- The positioning of the “ports” of the “appearance” of a circuit. As a part of a design specification, the pin-out
of the appearance of a circuit is specified and it must be followed exactly. A design assignment may also start
with an empty circuit with all the input and output pins populated, along with the appearance already determined.
The positioning of the ports of an appearance is analogous to the positioning of parameters in most programming
languages.
- The naming of the Logisim circuit, this is analogous to the naming of a subroutine. I have a script that extracts
submitted Logisim files and submit those files as substituting subcircuits. A submission file that is not named as
specified breaks this script and as a result won’t get graded.
For each assignment, I will give you a skeletal grading environment so that you can make your own test cases and check whether
your file is gradable.
4 Test cases
In certain designs, I use test cases to check the validity of a submitted design. However, test cases for grading purposes are not
disclosed. In order to test your design, you must come up with your own test cases.
After an assignment is due and graded, you can check with me if your design is not getting full score and you do not understand
why. However, there is no guarantee that I will disclose the actual test cases as a means to explain why a design is not getting all
the points.