My OCR A-Level Computer Science NEA project source code.
You can draw logic circuits, and the program will produce a truth table for them, as well a Karnaugh map. It will also then use that Karnaugh map to produce the simplest possible boolean algebra expression for the input.
Limited to 4 inputs, the algorithm I wrote for solving Karnaugh maps does not work for 5+ variable maps as they are solved in a different way.