| In the initial conception of the CLAI project, our group was
chartered to design a front-end for teachers to see the results obtained from the Assistments system, which would be stored in a database.
In the system architecture, this database is then our primary link to the
Assistments system. However, at this early stage of the Assistments research
project, the architecture is still in early stages of development and very much
in flux. At the time of our group's joining the project effort, there hadn't been much
initiative yet in processing or analyzing student data, and thus there had been no reason
to put a lot of effort into the database yet. |
 |
|
|
|
|
It was imperative to have real student data (from the beta tests
being done in Worcester schools)
in our prototypes. It would lend more credibility to our testing in the
following ways:
- If the data displayed in the prototypes was inconsistent or irrational,
this would distract the teachers from the test tasks, in that they would be
wondering why the information didn't make sense (such as a factoring problem
requiring Pythagoras' theorem).
- If we showed a teacher data from her real life students she would be more
involved in the task and our results would be even more indicative of how she
would really benefit from the interface.
- Mocking up a large volume of fake data can take a really long time.
|
|
|
| This project is slated as an HCI project, meaning our
goal is to work on the user experience and user interface. In a way, working on
the database and architecture is out of this scope and not something our group
was expected to be working on. However, people in the field of HCI usually come
from a very varied background, and sometimes digressions like these come our way
and it turns out that the best solution is for us to tackle them ourselves. And
so it was in this project. |
|
|
|
 |
We started by designing an ideal database, to represent all the
data that we foresaw to be necessary for the interfaces we would like to design
for teachers. Our goals were to show teachers how Skills related to Standards by
showing how their students performed on related Assistments questions and steps,
so that's how we organized our database design.
- The "School Structure" section holds data to identify students, classes
and teachers
- The "Assistments Activity" represents all the data collected while
students are working through assistments questions
- The "Questions" section is a repository of all the data pertaining to the
assistments questions that the students work through
- The "Skills" and "Standards" sections describe the skills and standards
that assistments questions or scaffolds can be categorized into.
CLAI database design diagram:
[ Visio ] | [
GIF ] |
|
|
| At the same time, we got in touch with the developers at WPI in order to get
access to the data that had been collected in their beta testing. In trying to
make use of the data, we felt their database design was not designed in a way
that would enable us to pull the relevant information that would be showed to
teachers through our prototypes. There was a lot of complexity due to the needs
of the software system's architecture and implementation, and also the needs of
the researchers who would be doing complex data analysis on the student data.
Also, due to the system being in beta and not very stable, a lot of the
collected data was corrupt or inconsistent. WPI database design
diagram: [ Visio ] | [
GIF ] |
 |
|
|
|
|
We were faced with 2 possibilities. One was to take a dump of whatever data
the developers had at that moment, find a way to reformat it so that it
would fit our database design, and not have to worry about that again. The
other was to spend more time communicating with the WPI team in order to
understand their system requirements, and design one combined database that
would serve the purposes of the software system, the research and data
analysis initiative, and the teacher interface. Even though database work
was pretty far from the HCI-related experience we wanted to be getting from
our Masters project, we agreed that for the good of the Assistments research
project as a whole the second option made more sense. |
|
|
A very large proportion of our time during the first half of
the summer semester was spent in designing a database that would be
useful for the whole Assistments research project. The structure can be broken
down into 6 areas:
- "Pre/Post Testing" holds data from paper tests given to students before
and after they used the Assistments and is part of the research analysis
- "School Structure" represents students, teachers and classes, and
curricula which list which assistments students are working on.
- "Assistment Activity" holds all the data collected by the system while
students are using the Assistments software needed to display data to teachers
and to analyze student performance
- "Assistment Questions" represents all the information needed to define
assistments questions and scaffolds. This section may be in flux as more data
such as behavior recorder diagrams get transfered into the database or the
developers move to a more object-oriented structuring of the questions
- "Knowledge Components" describes knowledge and skills and their
hierarchies, and the mappings to scaffolds and assistments, as determined by
the educational experts.
- "Standards" holds information about how assistments relate to different
state standards.
Assistments combined database design diagram: [
Visio ] | [ GIF ] |
 |
|
|
 |
|
With the database designed reaching a more stable version it was now possible to
implement it in order to have a fully functional back end to feed real student
data to our prototypes. This was achieved by querying data from the database,
converting it into XML and transferring it through web services, and receiving
the web services with ActionScript in order to display it in Flash.
|
|
|
 |
A database following the new design would not be implemented by
the Assistments developers, since they were still in the opening stages of their
4-year research project, so it was not high on their priority list. We, on the
other hand, were nearing the end of our 2-semester project, and had decided that
having real student data was a top priority. So we implemented a subset of the structures that was necessary for
us to run our prototypes, outlined here in red. After manually processing
the data obtained from the original Assistments database we were able to
insert it into our database implementation in order to use it for our user
testing. Implemented database design diagram: [
Visio ] | [ GIF ]
Database structure creation SQL file: [
SQL ] |
|
|
| These tables held all the raw data produced by the Assistments system being
beta tested in real schools that was necessary for us to display the
information we wanted to display in our prototypes. But in order to convert
such data into percentages and scores representing student performance,
further processing was needed. This should normally be done in complex SQL
nested queries, stored procedures or views, but mySQL (the database software
being used for the Assistments system) doesn't have such functionality yet.
So we did some of this processing ahead of time and stored it in the
database as regular tables, and treated them as views. View
relationships diagram: [
Visio ] | [ GIF ]
View creation SQL file: [
SQL ] |
 |
|
|
 |
| Now the performance data had to be extracted from the database and sent to our
Flash prototype. There were several options for ways of doing this, and the
simplest one seemed to be web services. This involved writing java code query
the database (both tables and "views"), setting up an Apache server with an Axis
server to convert the result of the java code into XML, and write ActionScript
functions to interpret the XML data into something that Flash can use. These
ActionScript functions could then be called from the graphical widgets and
interfaces that are our prototype. |
|
| |