Retina Project

Summer 2008

About This Project

In this project, we are seeking to learn about introductory-level students' programming habits by observing their behavior when they use an IDE such as Eclipse. We intend to 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.

This summer, we will be analyzing the data that we collected and trying 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.

Team Members

Faculty
  Prof. Gail Kaiser, kaiser [at] cs.columbia.edu

Graduate Students
  Chris Murphy, cmurphy [at] cs.columbia.edu

Undergraduate Students
  Tina Loveland, kl2289 [at] columbia.edu

Former members
  Diana Chang
  Aaron Fernandes
  Michelle Forman
  Sahar Hasan
  Tian He
  Shreya Kedia
  Henry Lau
  Ben Monnin

Links

Related tools
  Eclipse
  NetBeans
  BlueJ

Downloads
  Microsoft JDBC driver

Documentation
  SQL tutorial
  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)
  sample JDBC code

  XML and DOM tutorial
  sample XML/DOM code and a sample XML file

  Java socket tutorial
  Sample server and client code

  Engineering Library
  To find ACM proceedings, follow the link above, then go to "ACM Digital Library", then "Proceedings".
  Our work is mostly related to publications in ICER, ITiCSE and SIGCSE.


cmurphy@cs.columbia.edu
May 21, 2008