A free and open source online judge system for programming courses