Spring Semester 2003
MWF 0800 - 0900 - Room 101 College of Computing (Section B)
MWF 1200-1300 Room 101 College of Computing (Section A)
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
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:
|
Week
|
|
Topic
|
Deliverable(s) Due
|
Teams
|
|
|
|
Course Overview &
Introduction to Effective Teamwork
|
|
|
|
|
|
|
|
|
|
|
|
Status Report #1
|
||
|
|
|
Finalize Team Assignments
|
|
|
|
|
|
|
|
|
|
|
|
No
class
|
Status Report #2
|
|
|
|
|
Holiday!
|
|
|
|
|
|
|
|
|
|
|
|
No
class
|
Status Report #3
|
|
|
|
|
No class |
·Project
Plan
·Requirements
Document
|
(DUE BY 5 PM)
|
|
|
|
|
|
|
|
|
|
No
class
|
Status Report #4
|
|
|
|
|
No
class
|
|
|
|
|
|
Midterm Presentations
|
|
8 AM T18 T9 T4 12 PM T3 |
|
|
|
Midterm Presentations
|
Status Report #5
|
8 AM T19 T10 T15 12 PM T17 T11 |
|
|
|
Midterm Presentations
|
|
8 AM T6 T8 12 PM T16 T12 T13 |
|
|
|
Midterm Presentations
|
|
8 AM T2 T5 12 PM T7 T14 T1 |
|
|
|
No
class (Drop Day)
|
·Design
Document
·Peer
Evaluations
·Status
Report #6
|
DUE BY 5 PM See deliverables for peer review format. |
|
|
|
No
class
|
|
|
|
|
|
|
||
|
|
|
No
class
|
Status Report #7
|
|
|
|
|
No
class
|
|
|
|
|
|
No
class
|
|
|
|
|
No
class (Mid-Term)
|
Status Report #8
|
|
|
| 9 | 3/3 - 3/7 | SPRING BREAK!! | ||
|
|
|
No
class
|
|
|
|
|
|
No Class
|
|
|
|
|
|
No
class
|
Status Report #10
|
|
|
|
|
No
class
|
|
|
|
3/19 |
No Class | |||
|
|
|
No
class
|
Status Report #11
|
|
|
|
|
No
class
|
|
|
|
|
|
No
class
|
Status Report #12
|
|
|
|
|
No
class
|
|
|
|
|
|
No
class
|
Status Report #13
|
|
|
|
|
Final Presentation
|
|
|
|
|
|
Final Presentations
|
|
No Class because no one needed
this period
|
|
|
|
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!!! |
|
|
|
Final Presentations
|
|
8AM Team 15 Galvanic Response (ALL) NO Class for 12 PM section |
|
|
|
Final
Presentations
|
|
8 AM Team 8 Teamview 12PM Team 1 Fedex Estimator (Foley) Team 3 Briggs Builders (Foley)
|
|
|
|
Final
Presentations
|
Status Report #15
|
8 AM Team 19 Leet Sounds (Class Conflict) Team 10 Water Plant Diagnostics 12 PM Team 17 Architecture Visualization |
|
|
|
Final Presentations
|
|
12PM Team 13 Ectropic Team 16 Graphic Literature Search 8 AM Team 6 Net Diagnostics Team 18 Net-CNS |
|
|
|
Final Presentations
|
|
8 AM Team 4 Instructor Scheduling Team 7 Fireman Support 12AM Team 5 Client Tracking (Leahy) Team 14 Falconview |
|
|
|
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
|
|
|
|
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!)
| Team # | Members | Project | Faculty Advisor |
|
|
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 |
|
|
David Norvell, Matt Greenburg, Tong Huang, Edward Kenney, Sanin Rahman | IBM Marketing | Jim Foley |
|
|
David Rudy, Jasper Stone, Kyle Knohl, Viona Tjong | Instructor Scheduling | Leo Mark |
|
|
Chris Lee, Will Boyd, Albert Lee, Jeff Pereboom | E-Commerce | William Leahy |
|
|
Rob Schierholtz, Josh Jones, Christopher Benson-Mancia, Yang Chu, Warren Stramiello | Network Diagnostics | Russ Clark |
|
|
Mia Felder, Cameron Jivani, Ebrahim Bengali, April Holmes, Garret Tomlinson | Firefighter Support | Chris Shaw |
|
|
Michael Mitchell, Jonathan Shaver, David Mullen, Dan Young | TeamView | Tucker Balch |
|
|
Omar Zaki, Matthew Miller, Thom Armstrong, Allen Ferguson, Rod Drews | Distributed Software Deployment | Bob Waters |
|
|
Josh Thames, Marylin Cole, Adam Stevens, Maria Rueda, Brian Mullaney | Gas Turbine Diagnostics | David Smith |
|
|
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 |
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 |
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:
Contact: Bob Simpson (robert.simpson@gtri.gatech.edu) or Betty Whitaker (elizabeth.whitaker@gtri.gatech.edu)Knowledge-Based Internet Search Planning (TAKEN)
Support GTRI and a government customer to use case-based reasoning to guide internet searches
Contact: Bob Simpson (robert.simpson@gtri.gatech.edu) or Betty Whitaker (elizabeth.whitaker@gtri.gatech.edu).Gas Turbine Diagnostics (TAKEN)
Support GTRI and GE Power Systems to use case-based reasoning to assist in performing gas turbine diagnostics over very large data sets.
Contact: Jeff Pierce (jpierce@cc.gatech.edu)Augmenting PDAs with Displays in the Environment
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.
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
Create a user interface to specify and apply shape grammars for architectural design, with Thanos Economou from the College of Architecture.
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.
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).
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
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).
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
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.
Extend and upgrade the ectropic design tool (ECode) that is used in CS2340. Customer is open to a Java port of the tool.
Design and build a tool for Java source code manipulation.
Assist the Oberlin College Music Department in upgrading their spectographic analysis capability. They currently use a Kay DSP 550. Sound 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.
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.
Develop a system to track project files, the sites they are rolled out to, detect overlaps and potential problems in site roll-out configurations.
Comments in code, and the names of functions and variables may
contain clues about their possible functionality. This
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++.
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.
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