In this paper, we present the evolution of a computer-programming course at the Univ ersidad Nacional de Colombia (UNAL).The teaching methodology has evolved from a linear and non-standardized methodology to a flexible, non-linearandstudent-centered methodology. Our methodology uses an e-learning platform that supports the learning process by offering students and professors custom navigation between the content and material in an interactive way (book chapters, exercises,videos).Mareover,theplatform is open access, and approximately 900 students from the university take this course each term. However,ourevaluationmethodology has evolved from static evaluations based on papertests to an online process based on computeradaptivetesting(CAT)thatchooses the questions to ask a student and assigns the student a grade according to the student's ability.