Addressing the Gender Gap in Computer Programming Through the Design and Development of Serious Games