Background:
UCWISE is an online classroom system developed here at UC Berkeley by undergraduate students in Summer 2002. Its aim is to give students more time in front of a computer (1 hour of lecture and 6 hours of lab per week) to work on problems at their own pace. Because UCWISE teaches new topics by breaking them down into smaller sizes (called "steps") and having exercises after each step, it gives the instructors more information about where the students are having trouble. UCWISE is currently being used at UC Berkeley to teach CS3 (Introduction to Symbolic Programming using Scheme) and CS61B (Data Structures), and at UC Merced to teach CSE20 (Introduction to Programming using Java). Next semester, UCWISE will be spreading out to several other campuses across the country, so this semester will be a semester of preparation to make this happen smoothly. You can check out UCWISE here: www.ucwise.org by logging in as a guest.
Problem:
UCWISE does a poor-to-okay job of allowing the students to see their mistakes. Students can get stuck on a problem without knowing why they're stuck. They can raise their hands for help, but oftentimes the instructor is busy and so they must get on a queue of students who also need help. We need a way to help these students find their misconceptions quickly, and to give them good hints for fixing them.
Solution:
WebJava is a tool to allow students who are programming in Java to type in their solution to a problem (it could be a chunck of code or fill in the blanks, or multiple choice) into a text field box. It will then parse the solution according to the kind of question that is asked, and give students immediate feedback- whether its correct or not, what is wrong, if there is room for improvement, etc. This is important because it gives students immediate help that they need, and they can move on quickly to other parts of the lab instead of waiting for the instructor to be available. There is a similar tool called WebScheme that is used in CS3.
Customer:
Courses that will be using UCWISE this semester and in the future. This includes CS3, CS61B, CSE20, and other classes that will be offered on other campuses next semester. Professor Nate Titterton is in charge of maintaining the UCWISE system and has been hoping that somebody would write WebJava before UCWISE gets shipped to other campuses.
Justification of project difficulty:
This project will require students to understand how UCWISE works so that they can smoothly incorporate WebJava into the system. Also, it requires that we think well about user interface and ease of using it, because the instructors that will be using WebJava needs to be able to set it up inside an exercise with ease. So we need to work closely with the customers (Professor Titterton will be guiding us) to meet their requirements. We must also think about the different functionalities that WebJava might offer, as there are many ways to provide hints/pointers to the students, and this must be taken into account as we code. Java Applets will be used to code.