From its beginning as an academic NSF project, one
of the development goals of CodeLab was reduced attrition.
CodeLab achieves this by flattening the CS1 learning curve
by providing a setting where students can master the syntax and
semantics of a programming language.
This is clearly having benefits.
For example, one instructor reported that six weeks into the term,
instead of the usual 30 student withdrawals (out of 150), only 2 had dropped out.
Many departments have a sequence of programming courses in which the language for
the introductory course is different from what is used in the Data Structures or
Object Oriented Programming course.
CodeLab makes it much easier to switch languages without having to
devote class time to teaching the fundamentals.
Students who have programming experience in one language can quickly get
up to speed on a new language by using CodeLab.
This allows the instructor to focus on
the concepts of Data Structures or Object Oriented Programming, rather than language details..
Confidence of Achievement Level
CodeLab certifies that the student has correctly written code
that solves a stated problem.
This provides an additional measure of confidence that
students coming out of an introductory class have obtained mastery
of the topics covered by CodeLab.
Instructors in succeeding courses can assume this competence and spend less
time reviewing basic concepts and more time teaching the more complicated
programming ideas that depend on this base level of mastery.
Automated Placement Exam
CodeLab can also be used as an automated placement exam.
Students coming into the program can be accurately assessed with relation to their mastery
of programming basics and fundamentals.
Many students come in as freshmen with programming experience but without AP credit.
CodeLab can reduce the amount of work needed to assess a student's placement out of CS1.
The student simply logs on to CodeLab at a particular time and completes
as many exercises as they can and the results are automatically delivered to
the administrator of faculty member.