Purpose
This document specifies the required functionality for Vincent, a web-based application course management application currently employed in the Computer Science Department at Indiana University Bloomington (IUBCS).
Overview
Vincent evolved with no clear plan over the course of a year, beginning in the summer of 1999. The purpose of this document is to lay out the requirements for an update of Vincent, taking into account the knowledge and experience gained by instructors and students who have made use of Vincent in its current incarnation. This section provides an overview of the document, including the goals used to guide the rest of the requirements process. As Vincent addresses only a small class of problems associated with managing large courses in the Computer Science Department at Indiana University, an attempt is made to identify solution constraints that help narrow the scope of the possible solutions. Lastly, functional and qualitative requirements are laid out to guide the development of an implementation specification for Vincent.
Goals
- Provide an easily maintainable file-management solution for service courses in IUBCS.
- Provide an framework for the development of additional tools and utilities.
User Roles
Vincent recognizes three classes of user.
Students interact with Vincent in the most restricted manner possible. Typical interactions include submitting homework and downloading restricted-access files for testing purposes.
Assistants have wide access to the system, but are unable to effect the configuration of the system. Typical interactions include downloading student files for grading or permitting student access to files.
Administrators have ultimate access to all aspects of Vincent. Typical interactions include loading rosters and uploading files for distribution.
Terms
Must indicates a requirement which, if not present in the final system, renders it unusable or unacceptable.
Should indicates requirements that, barring unforeseen constraints, should be implemented.
Constraints
There are no significant changes in the constraints on Vincent from previous versions. Most significant is the mandated (university-wide) abandonment of the SSN as a unique identifier for students, faculty, and staff.
Solution Constraints
- Vincent must make use of technologies (languages, software) commonly available on IUBCS machines.
- Vincent must not use of SSN's as unique identifiers for students.
Implementation Constraints
Server-side
- Vincent must run on IUBCS WWW servers.
- Vincent must be written in Perl.
- Vincent must use the filesystem as it's data store.
Client-side
- Vincent must run as a CGI process under Apache.
- Netscape v4.7 clients must be able to utilize Vincent functionality.
- Vincent should be accessible via. IE5.5 and Netscape 6 (Mozilla).
- Vincent must support access for common operations by administrators from a command line interface.
- Vincent should support access for common operations by assistants from a command line interface.
As a result of these constraints, there are certain features that are difficult or impossible to implement. Data sharing with other applications is difficult; tying Vincent into other systems is similarly difficult. Most operations that would normally be performed as SELECT in a database involve loading all appropriate data from disk and then performing the operation on an ad-hoc ``database'' in memory. As a result, seemingly simple pieces of functionality (e.g. retrieving only the non-late file submissions for all students, or keeping only the three most recent submissions for any given assignment) is a non-trivial chore. Assuring data consistency and protection from multiple, simultaneous updates at a reasonably high level of abstraction is likewise difficult or impossible.
Functional Requirements
In exploring the space of functionality possible, Vincent was too many things to too many people. In revising Vincent's current state, only the functionality currently used or most important to those making use of Vincent will be kept.
Students
Students utilize Vincent primarily for the purpose of submitting completed work.
- Students must be able to submit files by way of a web-based interface.
- Students must be able to verify that files they have submitted were accepted by Vincent.
- Vincent should provide immediate feedback on the success of file submission.
Assistants
Assistants provide administrative and instructional support in the typical classroom context; they are not expected to have the ability to create assignments or add files to Vincent for student access. Assistant functionality is therefore limited to permitting access to existing files and downloading files submitted by students.
- Assistants should be able to log in to Vincent as students.
- Assistants must be able to download files submitted by students.
- Assistants must be able to enable the download of files uploaded to Vincent by the course administrator.
- Assistants should be able to obtain a current list of students in their section.
Administrators
Administrators have access to all of the same functionality as Assistants, with additional administrative responsibilities.
- Administrators must be able to update course rosters.
- Administrators must be able to upload files, as well as update and/or remove those files at a later point.
- Administrators must be able to create assignments and edit/remove those assignments at a later point.
- Administrators must be able to obtain a current listing of students in any given section or the entire course.
Additional Constraints
In addition to the above high-level constraints, the current version of Vincent has a number of interface or usability issues that should be addressed in an update.
- When creating new assignments, the date fields should default to some reasonable value (either the current date or some fixed interval in the future).
- When creating new assignments, the assignment description dialog should be a large text area, not a single-height text field. It should also accommodate carriage returns.
- It would be useful it new assignments could be created offline and submitted to Vincent, instead of requiring the WWW-based GUI; this goes back to the desire for a command-line interface to various aspects of the software.
- When submitting assignments, the student interface should default to the assignment that is currently due.
- In the event that a student has a valid excuse for submitting work after the deadline, it should be easy to remove the ``late'' status of the assignment. This is currently a complex operation.
- Administrators should be able to limit the maximum file size allowed in a single submission.
- Administrators should be able to limit Vincent's file store of submitted work to the most recent version and some maximum number of previous versions. For example, keeping only one previous version.
- When viewing submitted files, administrators and assistants should be able to choose a view that does not include late homeworks.
- In Vincent's current implementation, due to the way assignments are stored, they do not preserve their logical, chronological ordering in all interfaces. This is confusing to students. In particular, the 10th assignment gets sorted after the 1st assignment, but before the 2nd, and so on.
- When particular filenames are required for submission, those filenames should be presented to the students automatically.
- Even in controlled laboratory environments, students have found ways to submit work for each-other by sharing their Indiana University network ID with a peer. As Vincent is used for administering and collecting material under test conditions as well as general homework submissions, some sort of password protection on submissions would be nice. This way, in a laboratory situation, the assistant or administrator could either A) issue the password to the class, or B) enter it themselves for each file submission. This problem may not be solvable by technological means, but introducing the administrator or assistant into the situation would provide more contact between the students and facilitator under test conditions, thus making it harder for this kind of file sharing to take place.
In addition to these issues, Vincent behaves incorrectly in some situations. These conditions must be addressed.
- When a student is submitting work that is past it's due date, Vincent will only accept one file at a time, regardless of how many file submission fields are present in the interface.
- Vincent does not handle roster updates properly. If a student switches sections within a large class, they are (technically) withdrawn from one section and added to another. Vincent tends to be ignorant of this fact, and depending on what order the operations occur in, will happily withdraw the student.
|