CS 3911 - Design Project

Spring Semester 2003

MWF 0800 - 0900 - Room 101 College of Computing (Section B)
MWF 1200-1300 Room 101 College of Computing (Section A)


INSTRUCTOR:

Bob Waters

·Office:  120 College of Computing

·Email: watersr@cc.gatech.edu

·Office Hours:  Open door policy and by appointment
 

TEACHING ASSISTANTS:

Yan Gu (Section A)

CCB 153

Thursday 11-1230  Friday 13-1430


OVERVIEW

GENERAL INFORMATION

General Catalog Course Description:
Prerequisite(s): CS 2340
Intensive team-based project experience in the specification, design, and implementation of software and/or hardware for subsequent use in research, industry, and teaching.

Course Objectives:
Students will develop and demonstrate their abilities to work in a team on a substantial software project.  There are three conceptual parts to the project efforts expected of each team:

     1. Define the problem
     2. Design and implement a solution
     3. Deliver the system to the customer
 

Course Organization:



CLASS SCHEDULE
 


Week
Date
Topic
Deliverable(s) Due
Teams
1
1/06
 
 
1/08
 
 
 
1/10
Status Report #1

Template 1

Template 2

2
1/13
Finalize Team Assignments
 
 
 
1/15
 
 
 
1/17
No class
Status Report #2
 
3
1/20
Holiday!
 
 
 
1/22
 
 
 
1/24
No class
Status Report #3
 
4
1/27
No class
·Project Plan
·Requirements Document
(DUE BY 5 PM)
 
1/29
 
 
 
1/31
No class
Status Report #4
 
5
2/03
No class
 
2/05
Midterm Presentations

8 AM     T18  T9  T4

12 PM  T3

2/07
Midterm Presentations
Status Report #5

8 AM   T19  T10  T15  

12 PM   T17  T11

6
2/10
Midterm Presentations
 

8 AM  T6   T8

12 PM   T16 T12  T13

2/12
Midterm Presentations

8 AM    T2   T5

12 PM   T7  T14  T1

 
2/14
No class (Drop  Day)
·Design Document
·Peer Evaluations
·Status Report #6

Sample Template

Sample Template

Design Comments

DUE BY 5 PM

See deliverables for peer review format.

7
2/17
No class
 
2/19
2/21
No class
Status Report #7
 
8
2/24 
No class
 
 
2/26
No class
 
 
 
2/28
No class (Mid-Term)
Status Report #8
 
9 3/3 - 3/7 SPRING BREAK!!
10
3/10
No class
 
3/12
No Class
 
 
3/14
No class
Status Report #10
11
3/17
No class

3/19

No Class
3/21
No class
Status Report #11
12
3/24 - 3/26
No class
3/29
No class
Status Report #12
13
3/31 - 4/2
No class
4/4
No class
Status Report #13
14
4/7
Final Presentation
No Class because no one needed this period.

4/9
Final Presentations
 
No Class because no one needed this period
 
4/11
Final Presentations
Status Report #14

·Project Plan & Requirements Documents due for regrade@ 4 PM

No Class because no one needed this period.

IMPORTANT:  ONLY ONE TEAM SAID THEY NEEDED THE ENTIRE HOUR.  EVERYONE ELSE HAS TENTATIVE 25 MINUTES PER.  WE HAVE DAYS AVAILABLE SO LET ME KNOW IF YOU WANT WHOLE PERIOD!!!

15
4/14
Final Presentations
 

8AM

Team 15 Galvanic Response (ALL)

NO Class for 12 PM section

 
4/16
Final  Presentations
 

8 AM

Team 8 Teamview

12PM

Team 1 Fedex Estimator  (Foley)

Team 3 Briggs Builders (Foley)

 

 
4/18
Final Presentations
Status Report #15

8 AM

Team 19 Leet Sounds (Class Conflict)

Team 10 Water Plant Diagnostics

12 PM

Team 17 Architecture Visualization

16
4/21
Final Presentations

12PM

Team 13 Ectropic

Team 16 Graphic Literature Search

8 AM

Team 6 Net Diagnostics

Team 18 Net-CNS

4/23
Final Presentations

8 AM

Team 4 Instructor Scheduling

Team 7 Fireman Support

12AM

Team 5 Client Tracking (Leahy)

Team 14 Falconview

4/25
Final Presentations
Status Report #16
 

·Design Document due for regrade @ 4 PM

8 AM

Team 2 PDA Interfaces (Pierce)

Team 9 Distributed Software

12 AM

Team 11 Code Data Miner

Team 12 Internet Searches

 

17
4/28 - 5/03
Finals Week
·Customer Delivery
·Peer Evaluations
·Delivery Documentation due @ 4 PM 4/28
·Status Report #17
 
 
 
 



TEAM INFORMATION
Team numbers are available below.  General class information will be sent to via e-mail to the aliases for all teams, which will be set up to address your GT accounts.  Be sure your GT account forwards your mail to wherever you actually want to read it.

Given that your team number is N, you have the following resources available: (THESE WILL  BE SET UP SOON.  DO NOT BUG CNS ABOUT IT!)

CLASS PROJECT ASSIGNMENTS

Team # Members Project Faculty Advisor
1
Emeka Okunkwo, Pavan Kual, Nicholas Gibbs, Ryan Forman, Richard Forman  FedEx Package Estimator Jim Foley
Ken Edwards, Jason Fulgrum, Joaquin Madruga, Tom Park PDA Interfaces  Jeff Pierce
3
David Norvell, Matt Greenburg, Tong Huang, Edward Kenney, Sanin Rahman  IBM Marketing Jim Foley
4
David Rudy, Jasper Stone, Kyle Knohl, Viona Tjong Instructor Scheduling Leo Mark
5
Chris Lee, Will Boyd, Albert Lee, Jeff Pereboom E-Commerce William Leahy
6
Rob Schierholtz, Josh Jones, Christopher Benson-Mancia, Yang Chu, Warren Stramiello Network Diagnostics Russ Clark
7
Mia Felder, Cameron Jivani, Ebrahim Bengali, April Holmes, Garret Tomlinson Firefighter Support Chris Shaw
8
Michael Mitchell, Jonathan Shaver, David Mullen, Dan Young TeamView Tucker Balch
9
Omar Zaki, Matthew Miller, Thom Armstrong, Allen Ferguson, Rod Drews Distributed Software Deployment Bob Waters
10
Josh Thames, Marylin Cole, Adam Stevens, Maria Rueda, Brian Mullaney Gas Turbine Diagnostics David Smith
11
Matt Quigley, Charles Quinn, Evan Wheeler, Daniel Fernandez, Ali Bahmanyar Code Data Miner Bob Waters

12

Paul Geyer, John Borak, Josh Stevens, Dennis Cook, Rocky Dunlap Knowledge-Based Internet Search David Smith

13

Sarah Moore, Omar Delara, Brandon Yarbourough, Eric Yang, Nadia Dowla ECode/ Ectropic Design Spencer Rugaber

14

Thomas Lee, Patrick Parker, Drew Roos, Chris Jones FalconView William Leahy

15

Jeff Tchang, Lili Lili, Shivank Dua, Umang Dua, Askay Dayal Galvanic Skin Response Melody Moore

16

Patrick Cotrona, Donald Norbury, Jamie Lynn, Addison Bath

Computational Biology

Graphical Queries

Frank Dellaert

17

Niall Little, Hamed Ghani, Brett Sturgis Software Architecture Visualization Bob Waters

18

Safdar Abedi, Beylul Bahta, Jonathan Broomfield, Timothy Brown, Richard Murphy Net-CNS Russ Clark

19

Benjamin Bonetti, Brett Flury, Steven Lee,  John Misinco, Phillip Holley Oberlin DSP Dan Colestock


PROJECT IDEAS

Contact: Jeff Pierce  (jpierce@cc.gatech.edu)

Users of personal digital assistants (PDAs) like Pilots or PocketPCs will often dock their PDA when working on their desktop machine and
then ignore it. We could instead take advantage of the PDA as an additional input/output device to monitor or control some aspect of the
desktop computer. The goal of this project is to prototype and study several applications whose interfaces relies on adding a PDA to a
desktop PC. For example:

  • Use the PDA to monitor your instant messaging contact list: who's online, who's busy, etc.
  •  Use the PDA to keep track of the progress of different tasks (ftping files, downloading web pages, print a paper)..
  •  Use the PDA to switch between different projects (sending email, writing a paper, working on classwork).
  • Use the PDA to monitor your hard disk usage, CPU activity, and network activity.
  • Knowledge-Based Internet Search Planning (TAKEN)
  • Contact: Bob Simpson  (robert.simpson@gtri.gatech.edu) or Betty Whitaker (elizabeth.whitaker@gtri.gatech.edu)

    Support GTRI and a government customer to use case-based reasoning to guide internet searches

  • .Gas Turbine Diagnostics (TAKEN)
  • Contact: Bob Simpson  (robert.simpson@gtri.gatech.edu) or Betty Whitaker (elizabeth.whitaker@gtri.gatech.edu)

    Support GTRI and GE Power Systems to use case-based reasoning to assist in performing gas turbine diagnostics over very large data sets.

  • Augmenting PDAs with Displays in the Environment
  • Contact: Jeff Pierce  (jpierce@cc.gatech.edu)

    A major drawback to personal digital assistants (PDAs) is their small screen size. While a PDA's computational power, memory, and battery
    life will all improve with time, the size of its screen is limited by what people are willing to carry with them. If we wish to avoid having the small screen size
    dictate the types of tasks we can use a PDA for, we need to find a way to improve the available screen real estate.
    One way to add more screen real estate is to recognize that there are many places in the world around us where there are displays in the
    environment. For example, offices often contain desktop displays and classrooms often contain projectors. If we could temporarily annex a
    display in the environment when using our PDA, we could use our PDA for a wider range of tasks (or complete existing tasks more efficiently).
    In addition to creating an infrastructure for annexing displays, we need to determine how to effectively use that additional screen real
    estate, for example by dividing application functionality across the different displays.  The goal of this project is to prototype and study
    several applications that divide input and output to the application across (at least) a PDA screen and a desktop display.

    • Graphical Literature Search
    Contact: Frank Dellaert (frank@cc.gatech.edu)

    The first step to implementing a research idea is to check the literature what has already been done on the subject, and how your idea differs or improves on the existing body of work. Often this involves backtracking references in papers you like, and identifying particularly salient papers.  Some of this has already been automated by search-engines like citeseer (http://citeseer.nj.nec.com/cs), but it is sometimes hard to separate junk from real relevant papers. I once toyed with the idea to put a graphical
    interface to this process (http://www-2.cs.cmu.edu/~dellaert/bib/Bib2.html) but never developed into a usable application, even though this would be quite valuable. The project I propose would

      • discover what a scientist/researcher would want from an interface (e.g. interactive creating of a graph, filtering, highlighting, searching text in the documents, laying out the graph in different manners)
      • implement this in an application or applet, that interfaces with e.g. citeseer or with a local bibliography file. Create an application to assist literature searches in a graphical manner, by displaying the interconnected research papers in a customizable graph.
    • Shape Grammars for Architectural Design
    Contact: Frank Dellaert (frank@cc.gatech.edu)

    Create a user interface to specify and apply shape grammars for architectural design, with Thanos Economou from the College of Architecture.

    • Firefighter Sequence Planner (TAKEN)
    Contact:  Chris Shaw (cdshaw@cc.gatech.edu)

    As part of the Firefighter Training Virtual Environment, we need a team to build a tool that will help the trainer design training scenarios. The system to be built will start off with the representation of the house that is to burn down, and will allow the trainer to enter time points and geographic locations for operations and/or facilities such as hoses, etc. The output of the system will be fed to a fire simulator that will compute the progress of fire through the building.

    • Dictionary of Programming Techniques (NA)
    Contact: Spencer Rugaber  (spencer@cc.gatech.edu)

    A web-based way of submitting and accessing suitably cited segments of programs.  Submittals include information about submitter, programming language, source, and categorization. Accesses include various indexing schemes. Representation makes use of the LOOM Knowledge Representation language and tools.  This would be a continuation of work done last semester by a 3911 team.

    (http://www.isi.edu/isd/LOOM/PowerLoom/index.html).

    • An Environment for Testing Profile Driven Register Allocation Algorithms Based on Graph Coloring
    Contact: Santosh Pande (santosh@cc.gatech.edu)

    Register allocation is an important phase in code generation used by compilers. Many architectures mandate values to be in registers before they can be used (popularly called load/store architectures such as RISC machines). Values held in registers can be used with much lower latency than those in memory.  Register allocation problem involves determining assignment of values to registers and deciding which values should be kept how long in assigned registers. This problem is solved by coloring the interference graph which shows (in a loose  sense) whether or not the values are simultaneously used together in the program (called simultaneously live values).

    In this project, we will design a graph based environment to test out register allocation algorithms. Our goal is to provide infrastructure for experimentation with different allocation algorithms. We will first build an interference graph of values - each node represents a value and an edge between two nodes shows that the values are simultaneously live. Each node has a spill cost associated with it which shows how expensive it might be to use it from memory compared to a register. We will first undertake splitting phase which will split a value into its multiple "hot" or "cold parts inserting what we call "move related" edges with costs of the moves as edge weights. We will then implement iterative versions of coalescing and simplication phases and then do the coloring. We will compare our algorithms for performance -- the amount of time it takes, the number of
    nodes it colors/spills, number of moves it eliminates and how far it is from optimum one. The environment could be implemented as a standalone basis or by using the gcc's output of register transfer language (RTL).

    Prerequisites: Prefer someone with a compiler background/strong interest and motivation

    • Falcon View (TAKEN)
    Contact: Chris Bailey  (chris.bailey@gtri.gatech.edu)

    In FalconView (a mapping/gis program we develop for the DoD) we frequently have a need to create a geospatial database.  Historically we have used Microsoft Access and a separate data file that indexes the database for fast queries based on Latitude and Longitude bounds.  That is to say, a where clause something like "where ("Lat" > 30) and ("Lat" < 40) and ("Lon" < 113) and (Lon > 120)".  This gets tricky when you need to consider the international dateline and the poles and standard SQL database are inefficient at these queries.  Our current solution is not "general" and needs to be re-worked for different applications.

    The database would need to support standard SQL queries and have extensions for queries for distance, and queries for containment in an arbitrary polygon.  The database needs to support reads and writes (many schemes in the literature build indexes and assume the data is static after loading)

    To aid in the development we could provide copies of FalconView and the FalconView SDK (Based on Microsoft COM) which has documentation and sample code in C++ and VB.  Additionally, we currently have 2 team members taking graduate courses in the College of Computing (George Menhorn and Edward Robertson).

    • TeamView: Visualizing the Behavior of Social Insects (TAKEN)
    Contact: Tucker Balch <tucker@cc.gatech.edu>

    We are investigating how the behavior of individuals in social groups can be automatically recognized and learned
    by observing their movement patterns.  Initially we are exploring this problem by looking at social insects
    (ants and bees).  We have developed computer vision software that can track the insects, and record their
    positions over time to log files.

    What we need, and this would be the goal of this project, is a way for a researcher to replay, visualize and annotate
    the log files.  We envision something like a media player that would animate the movements of the animals.
    It would have play, pause and rewind buttons, and additional bells and whistles for visualization (e.g.
    a histogram of where the animals are most often located) and notation (e.g. labeling an individual's behavior).

    For more information about this research, take a look at http://borg.cc.gatech.edu/biotracking

    • Computational Biology (TAKEN)
    Contact: Dick Lipton  (rjl@cc.gatech.edu)

    Code a complex algorithm into a robust system.  This system concerns combining DNA data.   No knowledge of biology is required, the customer will provide necessary background.

    • Ectropic Design (TAKEN)
    Contact: Spencer Rugaber  (spencer@cc.gatech.edu)

    Extend and upgrade the ectropic design tool (ECode) that is used in CS2340.  Customer is open to a Java port of the tool.

    • TAJ: A Java Analysis Tool (NA)
    Contact: Spencer Rugaber  (spencer@cc.gatech.edu)

    Design and build a tool for Java source code manipulation.

    • Digital Signal Processing, Spectographic Analysis (TAKEN)
    Contact:  Michael Gaare  (mgaare@oberlin.edu)

    Assist the Oberlin College Music Department in upgrading  their spectographic analysis  capability.  They currently use a  Kay DSP 550Sound is captured via a microphone and displayed via a 2D graph where X axis is time, Y axis is Frequency and the intensity is shown in color variations.  Additional capabilities that are desired are configuration, multiple displays and more advanced recording capabilities.  Customer wants to get rid of the old hardware (DSP) and have a PC-based software system.

    • FedEx Package Estimator (TAKEN)
    Contact: Carl Valentino  (crvalentino@fedex.com)

    Customer desires a web-based application that allows a user to input an origin, a destination and a package weight and get an estimated shipping cost.

    • Distributed Software Deployment Tracking (TAKEN)
    Contact: Mike DeBinder  (michael.debinder@constructware.com)

    Develop a system to track project files, the sites they are rolled out to, detect overlaps and potential problems in site roll-out configurations.

    • Source Code Data Miner (TAKEN)
    Contact: Bob Waters  (watersr@cc.gatech.edu)

    Comments in code, and the names of functions and variables may contain clues about their possible functionalityThis application would parse a C file and associate key words in comments with their appropriate function.  It also breaks up function names  and expands them (like sys_memset into  system memory set).  Basic algorithms will be provided by customer.  Implementation language must be either Java or C++.
     

    • Instructor Course Scheduling (TAKEN)
    Contact: Maureen Biggerstaff  (maureen@cc.gatech.edu)

    Each semester instructors must submit available course times manually to the Scheduling Coordinator.    All these times have to be blocked out manually.  Also special equipment requests have to be accounted for.  Customer desires an automated, web-enabled system to do this scheduling.  Faculty Sponsor: Leo Mark.

    • Software Architecture Visualization (PARTIAL)

    Contact: Bob Waters (watersr@cc.gatech.edu)

    Eclipse is a general Java framework for applications.  It can be extended via plug-ins.  This project is to develop a plug-in using Eclipse and GEF (Graph Editing Framework) to input description files in ACME or xADL and display them in eclipse.

     



    Georgia Tech Disclaimer
    This page is maintained by: allison@cc.gatech.edu
    Last Modified on Wednesday, September 11, 2002 .