Building a Framework to Assist in Programming Learning