Friday, April 30, 2010

IEP: Technical Improvement

I have continued to make progress on the Transcript Illustrator program. The program is not finished, but I have solved most of the major problems necessary to implement it fully, and I still aim to have it ready for our incoming students this fall. To demonstrate technical improvement, I will describe one of the problems I had to solve in order to make the program work.

Reading in a set of English courses is easy, because English classes are already grouped together on our text-based transcripts. The program simply looks for the header line "LANGUAGE ARTS", and then it knows the next courses are all English classes until a new header is reached. The English graduation requirement is simple; students need four credits of English classes, but they can be any English classes. So the program simply displays English classes in the English bar, and puts any English classes over four credits in the Electives bar. These extra credits are color coded, so we can see how English classes are being used to meet Elective requirements.


Science classes are much harder to process. Students need three credits of science classes, but these classes must consist of at least one credit of Life Science and at least one credit of Physical Science. All science courses are grouped together on the transcript, but they are not identified as Physical Science or Life Science courses in any way. This is the central reason that text-based transcripts are difficult for staff to process accurately. We need to read each course title, decide if it is Life Science or Physical Science, and then keep track of how many credits of each a student has earned. The program, however, has no way of deciding if a course is Physical Science, Life Science, or some other kind of science. To solve this, we need some user input.

Good design decisions around user input result in user-friendly programs, while poor design decisions make software that is difficult, confusing, or tedious to use. When the Transcript Illustrator program comes across a science course a dialog appears that lists the course name and asks whether the course is a Life Science class, a Physical Science class, or a General Science class. It does this for each science course that it comes across. However, it also builds its own database of science courses and their categories, so it only prompts once for each course name. If another student has taken the same course, the program already knows what kind of science credit that course belongs in. As usual in programming, my first implementation did not exactly work right, but I figured out how to make the dialogs appear properly.



This part of the program now works. It was very satisfying to run the program once, answer all the prompts, and then run it subsequent times and see all courses categorized properly without having to answer any prompts. I still need to implement this functionality for all content areas with sub-discipline requirements such as Social Studies and Physical Education. I will then need to make an override available for individual students, and the program will have to display sub-discipline courses properly as well.

This is the essence of programming - break a complex process down into a long series of if-then scenarios. I look forward to summer programming at my own pace, and seeing this software used and appreciated by staff and students in the fall.

No comments:

Post a Comment