The aim is to develop a software environment for building computer logic circuits from simpler circuits. At the lowest level the simplest circuits are NAND, NOR, NOT, AND, OR, and XOR gates. The environment must include a graphical user interface allowing circuits to be dragged, dropped, and connected to build more complex circuits. These circuits can then be stored and subsequently used to build yet more complex circuits. The environment should also be able to generate truth tables for circuits that are constructed.
You will need to understand Boolean logic, truth tables, and have a good grasp of Java programming.