->Homepage
->Schedule
->Courses
-->CS183
-->Tentative Schedule
-->Objectives
-->Quiz 1
-->Lab 1
-->Lab 2
-->Lab 3
-->Lab 4
-->SE281
->Course Policies
->Electronic Submission
->Documentation Standards
->Old Exams
->C++ Examples
->MSVC++ Info
->Software
->Support Forum
->Unix Info
->Nature Photos

[Home]
[Rich][Home][Rich]
[Author]
CS183 -- Lab 4: GPS Analyzer

Spring 2004

Objectives Addressed
  • Understand the rationale for object-oriented design and programming.
  • Understand data abstraction and abstract data types.
  • Be familiar with UML class notation and use cases.
  • Be familiar with composition, inheritance, polymorphism, and C++ templates.
  • Be able to design and implement simple C++ classes and class libraries.
  • Be able to design small software systems using classification and use cases.
  • Be able to document the design and implementation of small software systems.
  • Be able to work in a team to create a small software system.
Overview

In completing this assignment, you will develop a software application to analyze GPS data.

Important Note

You will have over three weeks to work on this assignment. The assignment is worth 200 points.

Problem Statement

In teams of three or four you are to design and implement a GPS analyzer.

Potentially Interesting Results
  • Minimum/Maximum/Average/Standard deviation of distance traveled per trip
  • Minimum/Maximum/Average/Standard deviation of distance traveled without a turn
  • Minimum/Maximum/Average/Standard deviation of the number of turns per trip
  • Minimum/Maximum/Average/Standard deviation of the travel speed
  • Minimum/Maximum/Average/Standard deviation of number of stops per trip
  • Minimum/Maximum/Average/Standard deviation of time per stop
  • Minimum/Maximum/Average/Standard deviation of time stopped per trip
  • Estimated number of stop signs (and their locations)
  • Estimated number of stop lights (and their locations)
  • Number of unique parking spots used
  • Minimum/Maximum/Average/Standard deviation of the number of times parked in a particular parking spot
  • Percent of time backing into a parking spot
  • Percent of time backing out of a parking spot... not necessarily (100-answer to previous)
  • Graphic image displaying routes
  • etc...
GPS Data

The GPS data available to you consists of a file with multiple trips. Each trip represents one commute from my home to MSOE or back. The first few lines of the file are:

Start time: 2004-03-05 11:09:23
record,fix,hour,min,sec,msec,latitude,longitude,alt
1,3,11,9,24,710,43.0835367,-88.0390017,702.09
2,3,11,9,26,310,43.0835367,-88.0390017,702.09
3,3,11,9,27,310,43.0835367,-88.0390017,702.09
...

The first line indicates the starting time for the first trip. The second line contains labels for the different fields associated with each record. The third line contains the data associated with the first data record. Each record includes (separated by commas) the record number, the number of satellites used to get a fix on the GPS receiver's position, the time the record was made (in hours, minutes, seconds, and milliseconds), the latitude, longitude, and altitude. These records continue until the end of the trip. Data for the second trip follow immediately after the first trip. In this particular example, the first trip has 1336 records. Here are lines 1337-1345 of the data file:

1335,4,11,31,52,750,43.0445550,-87.9081050,639.76
1336,4,11,31,53,750,43.0445550,-87.9081033,639.76
Start time: 2004-03-05 17:10:35
record,fix,hour,min,sec,msec,latitude,longitude,alt
1,3,17,10,36,380,43.0445983,-87.9081033,583.98
2,3,17,10,37,380,43.0445950,-87.9081017,583.98
3,3,17,10,38,380,43.0445917,-87.9081000,583.98
4,3,17,10,39,380,43.0445917,-87.9081033,587.27
5,3,17,10,40,380,43.0445850,-87.9081067,587.27

Note: You are not required to use the entire data file for your program.

Design Report (due 11:00pm, the day prior to week 9 lab)

Your design should consist of a list of features, at least one use case describing how the user may interact with your software, and an annotated UML class diagram (see my useful software page for a tool to draw UML diagrams) expressing your high level design, a verbal description of how your objects/functions will interact.

Interim Activity Logs (due 11:00pm, the day prior to week 8 and 10 labs)

You should submit an activity log to indicate your activity and progress on this assignment during the week prior to submission (one log file for the entire team).

Team Evaluation

Upon completion of the project, each team member must complete the Team Evaluation Form and turn it in before taking the final exam.

Lab Report (due 11:00pm, the day prior to last week 10 lecture)

Here is a template file to use as a starting point for this report.

There should be one lab report for each team of students. The report should consist of the following:

  • Your design report (same as what you submitted previously).
  • A description of any changes made to your design after the design report was submitted.
  • A detailed description of how you calculated the two most non-obvious statistics. (See example below).
  • A brief description of any problems you encountered or questions you have regarding the assignment.
  • Any suggestions you have for how the assignment could be improved.
  • Sample results from your program.
  • A description of how you worked (or didn't work) together as a team along with your individual activity logs and a summary of your activity logs indicating how much time you spent on the assignment. Please follow the time log format given in the template file. In particular, you should record the date and time for each block of time you work on the project. Please report the time in the following categories:
    • Designing
    • Coding
    • Debugging (before you think it's working)
    • Testing (after you think it's working)
    • Writing report
    • Other
  • The documented source code for your program. Include only the source files that you modified.

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic submission guidelines. (You may wish to consult the XML help video and/or sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost.

Your lab grade will be determined by the following factors:

  • Scope of project and success at meeting your goals
  • Design and design documentation
  • Technical quality
  • Narrative report
  • Activity logs
  • Internal documentation (comments)
  • Program clarity (formatting, etc.)
  • Spelling and grammar
  • Timeliness of submissions

If you have any questions, consult your instructor.

Acknowledgment

This assignment was developed by Dr. Chris Taylor.

Example Explanation of a Statistic

One statistic we attempted to calculate was the location of traffic lights that varried their operation from flashing yellow in the middle of the night to red/green operation during the day. (We did not attempt to handle traffic lights that flashed red in the middle of the night.)

First we identified all of the potential traffic light locations (see our description of how we did that below [I'm not going to include this description]). A position that would qualify for the statistic we are calculating here must involve some stops during the day and no stops during the middle of the night (because it was flashing yellow then). Therefore, for each potential traffic light, we checked to see if any of the stops occurred before 6:00 AM (this was our middle-of-the-night to day transition time). If no stops occurred before 6:00 AM we then checked to make sure that at the vehicle passed through this location at least three times before 6:00 AM. We did this to eliminate stop lights on any potential "non-standard" routes. If the location met both of these criteria we then selected the center of all of the stopped positions within the 20 meter radius. We realize that there are better ways to get the true position of the traffic light, but we figured this would be close enough.

Last Updated: Thursday, 01-Jan-2015 14:38:09 EST