About This Project
In this project, we sought to learn about introductory-level students’ programming habits by observing their behavior when they use an IDE such as Eclipse. We do this by capturing such data like compilation errors, amount of time spent on an assignment, etc., then reporting the data back to a central repository where it can be mined and analyzed. This will help us create reports for the instructor, and also allow us to create ad hoc social networks of students who who have similar programming styles and habits. We also want the system to be able to provide helpful hints to the students, based on their programming styles. We believe that this will enrich the students’ experience and make them better programmers.
In Fall 2007, we built the basic infrastructure for capturing compilation errors and storing them in a database, as well as a prototype UI for instructors’ reports, and a IM-based user interface with which students can “chat”.
In Spring 2008, we collected data from some students in COMS W1004, added new reports and analysis to the instructor’s UI, began the creation of ad hoc user communities (social networks), and created a “help” feature that suggests ways that students can improve their code.
In Summer 2008, we analyzed the data that we collected and tried to determine any correlations between when students start their homework, how much time they spend on it, how many errors they make, what time of day they work on it, and what grades they receive. We also developed the student-view UI and implemented the real-time recommendations. Last, we wrote a paper, which was presented at SIGCSE 2009.
Unfortunately the Retina project is no longer active but if you are interested in working on it and reviving it, please contact us.
Prof. Gail Kaiser, kaiser [at] cs.columbia.edu
Retina paper from SIGCSE 2009
Microsoft JDBC driver
JDBC tutorial (focuses on Oracle but a good starting point)
Microsoft JDBC tutorial (warning: there are some errors in the doc)
JDBC tutorial (this one’s actually really good)
XML and DOM tutorial
Java socket tutorial