Problets - How instructors can use them.
Problets are designed to be used as supplements to classroom
instruction and as complements to programming projects traditionally
assigned in introductory programming courses.
Instructors can use problets for learning or testing:
- For learning:
Instructors can use problets to help students learn new
concepts and reinforce learned concepts.
Instructors can assign students to use problets in one of two modes:
- In class, for a specified duration of time, in supervised mode;
- After class, on students' own time, in unsupervised mode.
In order to facilitate unsupervised use, problets provide
help-menus, self-timing, and remote logging of data.
In this mode, instructors need not set aside any class time to use the
problets; students can use them to learn at their own pace, on their
own time.
The following conditions would make
the use of problets in unsupervised mode optimal:
- Instructors make using problets a mandatory part of
the course. Otherwise, students are unlikely to use problets, or
for that matter, any other supplementary material;
- Even though using problets is a required part of the
course, students do not get any credit towards the course
grade for using problets. This helps prevent cheating.
The following features of problets are designed to promote learning:
- Problets generate problems as random instances of
templates. Therefore, students can use problets to practice
problem-solving for as long/often as they like.
- Problets generate problems adaptively, i.e., on only the
topics the student has not yet mastered. This helps save students
time.
- Problets provide detailed feedback, including explanation of
the step-by-step execution of programs. This helps students learn from
their mistakes.
- For testing -
Instructors can use problets for assignments and tests in class.
Since problets have no way of authenticating the user, it is
recommended that problets be used for testing in supervised mode only.
The following features of problets are designed to facilitate
testing:
- Problets generate problems from a predefined sequence of
templates. This helps minimize the variability of the test from one
student to the next.
- Problets generate problems as random instances of
templates. Therefore, every student gets a different set of
problems. This prevents cheating during the tests.
- Problets do not provide any feedback, not even whether the
student's answer is correct or wrong.
- Problets automatically grade the student's answers. This saves
instructors the time and labor of grading the tests.
- Problets collect and log the student's scores on the
server. This again saves the instructor time and effort.
- Problets can be configured to administer tests of fixed
duration, tests with a fixed number of questions, or tests that
last until the student has demonstrated a pre-determined level of
mastery.
Problets can be used in any introductory programming course. This includes:
- Computer Science I, the traditional introductory course in Computer Science
- Introductory programming courses in Engineering that use C/C++
- Introductory programming courses in Business that use Java/C#
Amruth Kumar, amruth@ramapo.edu