Human Factors in Computer and Information Systems
Department of Computer Science, University of Maryland
In this project, you will learn how to use external controls, and include dynamic query functionality in your application. Given a data file containing some flight schedules, implement a system that visualizes the flight information, and allow users to do dynamic query on the flight data.
We will provide you with a data file that contains some flights, including the flight number, the airline company, the departure place (by airport codes, JFK, BWI, LAX, etc.) and time, the arrival place and time (assume all flights are non-stop), and the ticket price. Your system should first provide a query window from where the user can choose the departure and arrival places, for example, leave from Washington Dulles Airport (IAD), arrive at Atlanta, Georgia (ATL) and a time range that the user wants to depart (i.e., leave no earlier than 7:00am and no later than 9:00am).
Then, your system should retrieve all the flights that satisfy the given query criteria, and show a result window where the results are visualized in the same way as that presented in the experiment http://www.otal.umd.edu/SHORE2001/airline/experiment.html . A flight is represented as a line starting from the departure time and ending at the arrival time. The thickness of the line represents the price. The cheaper the ticket is, the thinner the line will be. The flight number and the ticket price are shown as a label above the line. And to keep it simple, you can assume all times given are Eastern Time. The result window should also enable the user to do dynamic queries using checkboxes and sliders.
To obtain some idea about how dynamic query works, please read http://www.cs.umd.edu/hcil/spotfire/ and you can download demos at
Dynamic Homefinder http://www.cs.umd.edu/hcil/pubs/products.shtml .
To be more specific, the result window should contain a double-box slider for ticket price, and several checkboxes, each representing an airline company. The user can select/deselect a company to show/hide the flights of that company. At the same time, the user can manipulate the slider to dynamically filter out the flights according to the price. The user should be able to go back to the query window to change the query criteria at any time.
To give you the experience of integrating code from external sources (and to make the project easier), we will provide the VB source code for the slider, and a simple example of how to use the slider. Download the slider source code and example. Download the flight data.
Extra credit (10 points): expand the input data file and the results window to support flights that make 1 or 2 stops.
The project should be done in groups of two. Submission instruction: Same as that for VB project #2, except that p2 should be p3. Due date: 4/22/02 before the class.
Visual Basic Project 2
The second project introduces you to a variety of controls used in regular
Visual Basic applications. This project is to design and implement a small
classroom locator information system for Computer Science courses offered
in buildings in the Northeast Quadrant in the spring2002 semester. The
requirements are :
- The Northeast Quadrant campus map that shows all the building in that quadrant. You can download the map from: http://www.inform.umd.edu/CampusInfo/About_UMCP/Maps/ne.jpg
- The information about a Northeast Quadrant building, including the building photo (this doesn't have to be a real photo), the full name (such as A.V.Williams Bldg.) and the code of the building (such as AVW). The list of buildings in the Northeast Quadrant can be downloaded from htttp://www.inform.umd.edu/CampusInfo/About_UMCP/Maps/ne.jpg, while the building code can be found from http://www.inform.umd.edu/CampusInfo/Facilities/Buildings/abbreviated.html. I have prepared an Excel file that contains all campus buildings with full name and building code. You can download it and convert it to your desired format.
- The information about a CMSC spring2002 course, including the course code (such as CMSC434), the section number (such as 0101), the course name, the instructor, the location (building code and room number), and the time to meet. The course information can be found from http://www.sis.umd.edu/bin/soc?term=200201&crs=CMSC (You can skip the data about the lab sessions, and only consider the courses in the Northeast Quadrant buildings.) I have prepared an Excel file that contains all CMSC courses in spring 2002. You can download it and convert it to your desired format.
Your system should support the following querying:
Query a building by the building name (full name and/or code, case insensitive) or by clicking the building on the map, the system should show the building information, mark the building on the map, and show the information of the courses in that building. If a specific day is given (Monday through Friday), the system should only show the information of the courses in that building on that certain day. If a specific time is given, the system should only show the information of the courses in that building on that certain day whose meeting time overlaps the given time. Your system should be able to handle the case of multiple courses.
Query a course by the course code (case insensitive) and the section number, the system should show the course information, the building information in which the course is offered, and mark the building on the map.
Grading components : Direct manipulation, natural interaction between controls, prompt and proper response to user action, graphical layout, control usage, easy to use, error handling, and so on.
Due date: 3/18 before the class.
Visual Basic Project 1
Suppose you are asked to design the facility control panel for a teaching
theatre. The purpose is to make it easy to use even for novel users. The
control panel is used by the instructor to control and monitor the status
of the following facilities: