Field Session Projects 2010


This is the list of clients/projects for Field Session 2010.  Some clients have submitted multiple projects.  If you select one of those projects, then on your selection form list the client name followed by the order of preference for the individual projects (e.g., Civicore, project #2/project #1).

Civicore
CSM 1: Edgar Mine WSN
CSM 2: Math City
CSM 3: Recruit and Educational Tools
CSM 4: CONNECT
CSM 5: MCS Website Enhancement
DVI Systems
Los Alamos
ModsDesigns
Oracle
ShipWare
Standing Cloud Inc.
TR Services LLC

Civicore

Client: Charles Naumer

Background

CiviCore is a software development company catering to nonprofit organizations, public sector agencies and foundations. An area of increasing importance is business intelligence, data analysis and visualization. We are interested in helping our clients better analyze their data. For example, a non-profit who delivers food may want to analyze and visualize who they served and how much food they delivered.

Project #1 Goals/Requirements:

The proposed project will entail helping CiviCore of integrating a business intelligence platform with their standard data management application. Specifically, students will:

Project #1 Desired Skills:

Project #2 Goals/Requirements

The proposed project will entail helping CiviCore to develop new builder tools. These tools will create methods for staff to more easily create applications in our various frameworks. While these tools could be created with a variety of technologies our preference is to use the Adobe Flash Platform, which will expose students to the latest tools being used for RIA development today.

Examples of tools students could be creating are:

Project #2 Desired Skills:

Location:

The location is flexible.


CSM 1: Real-time localization in the Edgar Mine using a Wireless Sensor Network

Clients: Alan Marchiori and Doug Hakkarinen (CS Ph.D. Students)

Background

The Edgar mine, the Colorado School of Mines Experimental Mine, is located in Idaho Springs. In the 1870s, it produced high-grade silver, gold, lead and copper. Today, as an underground laboratory for future engineers, it produces valuable experience for those who are being trained to find, develop, and process the world's natural resources.

Wireless sensor networks are networks of tiny computing nodes called motes. A wireless sensor network has been deployed in the Edgar mine where each mote has a low-power wireless radio and a 16-bit 4MHz CPU with 48K ROM and 10K RAM. These motes run the TinyOS operating system.

In this field session project we will expand the capabilities of the current network to include tracking of occupants throughout the mine. Each person will carry a mote that periodically transmits a packet. The nearby infrastructure nodes in the mine will receive these packet transmissions. Using triangulation of the received messages, we will be able to approximate the location of the person carrying the mote. This information will be pushed to a server and then displayed in near real-time on a dynamic web page.

Project Goals

Requirements:

Location:

Students will be have access to our wireless sensor network testbed on campus where they can develop and test their software. In addition to our testbed, students may also checkout a few motes so they can do some work at any location. There will be one initial visit to Edgar Mine early in field session to perform upgrades on the wireless sensor network. During the last 2-3 weeks of the project, students should expect to make 1-3 trips per week to Idaho Springs to deploy and test their software. Exact number of trips is flexible; details can be worked out with the client during field session.

CSM2: MathCity: K-12 game for practicing math concepts

Client: Dr. Irene Polycarpou

Background

MathCity is a simulation-based game in which students can actively create their own city while practicing different math concepts. The game was designed for the fifth grade level. When the game begins, the students have a certain amount of money available to start building their city, but to be able to further expand their city they need to obtain additional funds by correctly answering different math questions. The difficulty of each question changes dynamically, based on students’ performance in previous questions. The system also provides basic feedback on whether the answer submitted was correct or incorrect, as well as a summary of the student’s performance which includes the number of correct/incorrect answers in each category/topic of questions. All the math questions included in the game were created based on fifth-grade CSAP standards.

While students are building their cities, the game provides them with feedback on how efficient their city is by taking into account different factors such as, the amount of pollution in the city (based on the number of factories, coal plants, etc.), the happiness of the people leaving in the city (based on the number of hospitals, police stations, fire stations, jobs available, etc.). During the game, students have the option to add renewable energy sources in their city such as solar and wind-power, as well as non-renewable energy sources (coal plant). According to the energy source students chose, they are able to see the effects that each energy source has on their city.

Project Goals

The goal of the project is to enhance the functionality of the game in the following areas:

  1. Design and develop a feedback mechanism for the game.
  2. Add more problem types into the game.
  3. Design and develop the help feature of the game.
  4. Develop small tutorials for the different features of the game.
  5. Fix bugs.

Resources Provided and Requirements

The game is developed with JAVA, therefore, you will need to have programming experience with JAVA. The existing code of the game along with any other relevant information will be provided to you.

Location

Location is flexible

Questions?

If you would like to discuss this project more and find out additional information, contact Dr. Irene Polycarpou, ipolycar@mines.edu.

CSM 3: Recruting and Educational Tools

Client: Keith Hellman

Project 1 - Wii Routing Game

Background

During the Fall 2009 semester, a talented group of students wrote version 0 of the Wii Routing Game. The implementation is in .NET, but is hampered by a shaky bluetooth stack on Windows.

The game reads a simple text file defining a weighted non-directed graph that represents a small network topology. Each player in the game controls a node in the graph, and "pushes" packets to other incident nodes by motioning with the Wii mote. The game inserts a fixed number of packets into the graph, randomly at different nodes, and the players' goal is to route all the packets using a minimum cost (determined by the edge weights).

The current game code resides in a Google Code repository.

Project Goals

Goals for this project include:

Project 2 - MCS Outreach Wii Game

Background

The MCS Outreach committee has substantially revamped its presentation to students and parents during Preview Mines, Discover Mines, and Majors Fair events. In part, our success has been based on a Jeopardy style game using a lot of JavaScript and Dynamic XHTML. The questions are fun and informative, revolving around student life at Mines, within the MCS department, and career potential for mathematicians, computer scientists, and statisticians.

It is time to raise the bar again!

Project Goals

This project will create a Wii game allowing up to eight different players to participate in the game — either in solo or team play. The same types of questions will be presented to the participants, but the multiple-choice answers will appear in the "playing field" randomly over server seconds.

The answers will "float" using a simulation engine based on a real-world physical model, but whose per-question parameters will fluctuate based on game state. Participants will need to "grab" or "push" the right answer into their "base" to score points.

Some ways in which the physical world might dynamically change through the game are:

  1. The correct answer can move slightly faster or in a more random pattern than the wrong answers,
  2. A team or player winning by a large margin will find it hard to grab and push a correct answer into their base,
  3. The right answer may develop an affinity for the low-scoring bases in the game.

Project 3 -Balanced Tree Wii Game (v0)

Background

For the upcoming CSCI 101 Introduction to Computer Programming course at Mines, a Wii game will be developed to demonstrate the difference between simple binary trees and balanced binary trees. Simple binary trees can become inefficient in search, addition, and removal (as bad as singly linked lists) if the input is malformed. The best (average) case performance of simple binary trees comes from randomly ordered inputs.

Balanced trees overcome these edge case inefficiencies by keeping a tree in balance at all times: nodes are migrated around the tree (when needed) to always minimize tree depth.

Project Goals

The Balanced Tree Wii Game will be two team graphical game, all team input will be via Wii remotes. There may be several different game modes, one example of which would be:

  1. Each team received the same set of values to place into a tree. But the order of the values is provided at random to each team.
  2. New values automatically placed into a tree by the game engine, but they can only enter a tree when it is in a balanced state.
  3. The entry of a new value may require re-balancing: this is where team cooperation comes into play. The rotation of three nodes or the swap of two node values requires the coordinated efforts of two players via their Wii remotes.
  4. The team able to "consume" all the input values and finish with a balanced tree wins.

There are some obvious variations to this game mode, including:

  1. allowing the computer to be one player,
  2. allowing the teams to dictate the input order of their opponents values,

The manipulation of tree nodes should obey some set of physical laws: dampened oscillators on each node, "springy" edges, or nodes that are "heavier" [2] based on their value.

Project Requirements (all projects)

Location

Location is flexible.

CSM 4: CONNECT

Client: Kerri Stone (PhD Student)

Background

Traditional methods for exchanging contact information at conferences can be inconvenient (e.g., exchanging business cards and then, perhaps, typing contact information into the computer after returning home). The CONNECT system has been designed as a more transparent mechanism that can allow attendees to connect with minimum effort. Each conference attendee will have a bar code on his or her name tag. If two or more people want to “connect” (exchange information), they flag down a CONNECT volunteer who scans the bar codes. Each day the conference attendees receive an email with a listing of the contact information for all their connections.

The prototype version of the software has been pilot tested at several conferences. Although response was generally positive, a number of useful enhancements have been identified. We would like to address several of these enhancements as part of this field session project.

Project Goals/Requirements

The potential list of enhancements includes:

Desired skills

Location

Location is flexible.

CSM 5: MCS Website Enhancement

Client: Terry Bridgman

Background

During the past year the MCS department has been evaluating and revising the department website. A number of changes have been made so that the site more closely follows recommended web/CSS practices. Now we’d like to enhance the site to add visual appeal and more useful functionality.

Description

For this project, students will be adding features to the site, such as:

Students may be able to extend code created as class projects, rather than starting from scratch. The exact list of features will be determined during field session. Students may submit their own ideas for useful functionality.

As part of the site redesign, much of the dynamic data (lists of faculty, lists of grad students, schedule of events, etc.) is now stored in xml format. In addition to the above site enhancements, we would like to have a desktop application (or applications) to allow users to enter/edit data to be stored in the xml files.

Time permitting, we’d like to have an online application that allows professors to update their achievements for the year. This information will then be extracted into a specific format required by the university (faculty data report) and will also be used to facilitate maintenance of the faculty web pages.

Desired Skills/Aptitudes

Location

Location is flexible.

DVI Systems

Client: Dr. David Flammer

Background

Rich internet applications (RIAs) and Software as a Service (SaaS) are rapidly becoming a dominant force in software development, and knowledge of how to develop RIAs is becoming increasingly important. Data Verity is a retail consulting firm that provides its clients with a Webtop (web-based desktop) interface with a variety of services.

This summer we are looking to augment our Webtop with greater customization and usability for our clients.

Project Goals/Requirements

Creating a shared calendar that would be able to send Outlook Calendar notifications and possibly perform Outlook Calendar synching; webtop customization. 

Specific functionality:

Subtasks:

There are some javascript based calendars which could be integrated into the webtop (integration with the webtop is very important), but they lack the
ability to send/receive Outlook notifications or perform Outlook synchronization. Since all of that is done via email, the students will have to set up the email server, acquaint themselves with how Outlook notifications work, and do the required server-side programming.

The other piece of this would be the server-side programming necessary to show joint calendars at the same time for meeting coordination.

Skills Required/To Be Learned

Location

For the convenience of the students, work will be done on CSM campus in one of the computer labs.

Benefit to CSM Students

project will give students experience with:

Los Alamos: Software Management on High Performance Computing (HPC) Clusters Consistent User Environment

Client: Cindy Martin

Motivation:

The Los Alamos HPC environment includes several major computing clusters. The user environment for large-scale scientific computing requires multiple software tools including compliers, debuggers, special purposes libraries, performance analysis, etc. The HPC-3 group at LANL provides basic support for these tools. Our goal is, wherever possible, to provide identical software environments on each of the major clusters.

Vendors frequently revise and update their products and as a result maintenance and configuration management are an on-going concern in our organization. Each of the clusters is on a different maintenance schedule and this can cause software environments to drift. The problem is further compounded by the fact that each cluster has multiple subsections, and internal mechanisms can lead to failures caused by discrepancies in environments. These complex environments can even result in differing behavior within the same cluster.

A few years ago the Colorado School of Mines helped to develop a tool, Module Display Application, to collect and display the current state as well as the history of software installed on our clusters. It has undergone a few revisions since its initial release. We would like to implement several enhancements to this application. These enhancements are listed below. This project is geared towards the expansion and automation of the current Module Display Application’s functionality.

Project Goals

Student/Mentor/Machine Requirements

The students should have:

A machine running a stable web and database server will be sufficient for most of the tasks.

Communication/Project

LANL contact on this project can come to Golden at the beginning of the project and also at the end. A telecom schedule would be established for review and issue discussion. Interim communication can be via e-mail, teleconference, and LANL also has polycom and access grid video teleconference capabilities which work well for remote collaboration between small teams.

Initial face-to-face meeting includes sample data, discussion of environment, and demonstration of the current system. Students should choose the design approach and begin implementation of that framework within the first week. It is expected that the various components will proceed concurrently.

The team will be expected to write a report, present design decisions and results and demonstrate a prototype with the requested enhancements.

Student Outcomes

This project will provide students with an introduction to LANL’s HPC environment, and the chance to influence a real-world suite of software tools in collaboration with technical staff at the National Laboratory.

ModsDesigns

Client: Jill Modesitt

Background

This is a start up local company offering web based services that send images to cell phones. With an emphasis on helping families communicate, the premise is to transfer the personal connections offered by traditional greeting cards to a more contemporary and relevant platform, the cell phone. This company will also be donating a percentage of all proceeds to “kid” friendly charities. This project is rooted in creating a complex data base which needs to work flawlessly with the user interface. Note: there is already a web design (Adobe Illustrator) and site layout draft that can serve as a starting point.

Proposed Work

Create a website which has the following features:

Location

Work can be done from anywhere where the technology is available to the student. Client will be accessible for questions and clarification along the way.

Desired Skills

Benefit to student, the student will gain experience in:

  • Knowledge and application of MMS protocol.
  • Working with established web hosting (Blue Host)
  • Knowledge and application of User Interface Design Abilities.
  • Knowledge and application of Web Services and XML for real world, enterprise ready services.
  • Knowledge and application of SEO procedures.
  • Knowledge and application of Data Based Systems
  • Oracle

    Primary Contact: Eric Ray, eric.ray@oracle.com

    Background:

    OpenSolaris is a state-of-the-art, cutting-edge operating system that provides a rich, coherent platform for building and running applications, such as Oracle databases. It is both a community and an open-source project licensed under CDDL. There is still much functionality to be implemented in the install technology area. Some of this functionality is requested by both Oracle-internal users and the community on a consistent basis. Your work on these projects will have a significant impact on OpenSolaris.

    Working environment:

    Students will be expected to work from the Broomfield campus for the majority of the project. Close interaction with the install team (including engineers working around the country, and even a few in Prague, Ireland and China) will ensure successful completion of the project. Past field session projects from Sun, recently acquired by Oracle, have a reputation for being challenging yet rewarding. For all projects, strong operating system and interpersonal skills are a MUST.

    There are three possible projects.

    installadm graphical UI:

    The OpenSolaris automated installer mechanism, called AI, requires setup and administration of a server to deliver images to client systems. This server currently offers only a command line tool, installadm(1M), to setup these AI services. This project will consist of defining the requirements for, designing, and implementing a GUI based tool to provide the same functionality as that provided by the CLI tool.

    Valuable skills:

    Network-bootable Text Installer:

    Enhance the OpenSolaris text installer to be bootable over the network. In addition, incorporate the text installer onto the Automated Installer media, giving the user the ability to do an automated install or a text-based interactive install from the same net bootable media. This project will require the students to understand and reconcile the conflicting dependencies and start-up processes of two separate media.

    Valuable skills:

    Web interface for Distribution Constructor (DC):

    This project will be to create a Web-based application to allow users to create a custom OpenSolaris install CD or DVD, based on their specific software preferences and needs. A broadly similar example of what might be interesting would be: http://www.instalinux.com/cgi-bin/coe_bootimage.cgi. The front end is just the start, however; a significant portion of the project will entail mapping the selections into a DC manifest, and managing the creation of the image on the server. The project will additionally require students to carefully design the interaction between the front end and back end, such that the API can expand easily to handle future enhancements to DC and be enhanced to support the creation of all media DC is capable of generating.

    Valuable skills:

    ShipWare

    Client: Kenneth Riskey

    Right now there is no software on the market that compares shipping rates from what I'll call the "Big Three" shipping companies: USPS, UPS, and FedEx. I want to design download-able software much like Endicia or Stamps.com but with the ability to compare prices and delivery times as well as print postage and prepaid labels. The ShipWare site is designed to help the end user save money!

    With the onset of literally hundreds of thousands of ma' and pa' Internet stores on Amazon, eBay, Half.com and other e-commerce sites, each and every vendor would like to have a way of comparing prices of the Big Three when shipping their goods for obvious economic reasons.

    For example, e-Vendor A, sells books and needs to know the cheapest way possible to get the sold books from coast-to-coast. The college text book weighs 5lbs and has LWH dimensions of 14x9x3inches. By simply looking at our (not yet existent) ShipWare.com comparison chart, it's easy to see that FedEx Ground ($5.18) beats USPS Media Mail ($7.03) by a margin of $1.85. Plus FedEx Ground will deliver the package in 4 days, not 8-15 days with USPS Media Mail.

    Not only will the vendor be able to compare prices, but will also be able to print postage (Stamps.com already does postage) or prepaid shipping labels depending on which courier is used.

    Skills:

    The student team will evaluate the requirements and determine what software to use for development.

    Location:

    Location is flexible.

    Standing Cloud Inc

    Client: Dave Jilk

    Background

    Standing Cloud, Inc. is a Boulder-based firm that makes it easy to deploy and manage application software anywhere in the on-demand cloud. We are a venture-funded startup founded in January 2009 and have just launched the Trial Edition of our product, with more sophisticated capabilities and editions coming soon.

    Problem Description

    On-demand cloud server providers, such as Amazon EC2, Rackspace Cloud, GoGrid, and others expose an API (different for each provider) that enables starting, shutting down, and other operations on cloud servers. Further, each provider offers a finite selection of "images" from which the server can be booted. Standing Cloud's current product generally uses the most bare-bones boot image available (typically Ubuntu or Centos) and then automatically performs substantial configuration on the server after it has completed its boot cycle. This works reasonably well, but has two negative consequences: first, the configuration process usually takes significant time to complete; second, downloading the software required for the configuration uses cloud provider bandwidth, which is not generally free of charge.

    One solution to these issues is to boot servers from "pre-configured" images comprised of the net result of the current configuration process. We have done this to some extent, but creating these images on each service is tedious, awkward, and error-prone; and worse, it must be performed each time there is a change to the configuration procedure.

    The problem to be solved in this project is to automate the process of building preconfigured boot images on several services. Our expectation is that the resulting code can be integrated into our core system and used as part of a larger process to completely automate image creation.

    Implementation Details

    The implementation of the solution will be in a standalone Java 1.6 environment. A small amount of Bash scripting may also be required. Students are free to choose their IDE; we will use an online Subversion repository to store code. Particular JARs required for the project will be identified and/or provided at the beginning of the project, along with account credentials for the Standing Cloud and cloud server APIs.

    The input/output profile of the project is very simple:

    Input: Cloud Service identifier and Configuration identifier
    Output: New Boot Image identifier

    The implementation should provide a simple Java GUI or command line interface to enable manual use of the project as well as to demonstrate it.

    The process will generally involve two stages:

    1. Start and configure a cloud server using the Standing Cloud API
    2. Create a new boot image from that server using the cloud server provider API

    Step 1 will be the same, or very close to the same, for each cloud server provider. Step 2 will be completely different for each provider. As part of the project planning, students will determine the appropriate number of providers to implement given the time available; however, we believe the project outcome will be more valuable if there are at least two providers implemented. Our priority order is Amazon EC2, Rackspace Cloud, then GoGrid.

    It is possible that some changes will be required to the Standing Cloud API to accomplish the project. These changes should be identified as early as possible in the project lifecycle so that we can implement them prior to the project coding effort.

    Much of the effort in this project will be involved in learning how to use the cloud services and their APIs. We will provide some example code and initial guidance, but to accomplish the project the students will need to independently digest each service's (sometimes incomplete or poorly written) documentation regarding the creation of boot images. In some cases, clever or non-obvious solutions may be required.

    Delivered code should follow the coding standards at: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html. It should also have reasonable unit test coverage using appropriate mock objects (some of which we can provide). Students will also be expected to be conservative with server usage, in particular ensuring that all servers are shut down during off periods and after they are done being used.

    All students contributing to the project will be required to sign an intellectual property assignment agreement with Standing Cloud, Inc.

    Student Benefits

    This project is expected to be intellectually and technically challenging for undergraduate students, and you will learn not only how to use the increasingly popular on-demand cloud services, but also how to build software in a complex heterogeneous environment.

    Location

    Students may do most of the work at a location of their choice, but should expect to meet with the client and work on-site at least once a week, more if needed.


    TR Services - - Video capture of hand motion for computer control

    Client: Dr. Roman Tankelevich

    Background:

    Can you control your computer without a keyboard, mouse or a touch screen? Microsoft and GestureTek, MIT Media Lab and many other R&D organizations have already made significant advances in developing such systems where all these commonly used devices may become obsolete. Instead, human gestures are used to control entry of data. Look, for example, at the demo presentation of Sixth Sense Technology by Pranav Mistry, or just watch any CNN news where the shows are supported by the display system controlled by GestureTek technology. These technologies are based on video capturing of objects such as human arms moving and changing their shape. It is still a challenge to make this technological breakthrough sufficiently sound to become practical. Humans do not feel comfortable keeping their arms in front of their faces without any support. This limitation of the gesture technology is known as the “effect of gorilla arms”.

    In this project:

    The purpose of the proposed project is development of an algorithm and a program to capture motion of hands and fingers resting on any surface in front of a regular Web camera. An available library of motion detection functions will be used. The captured motion is mapped onto a space of designated controls such as keyboard strokes and mouse clicks. To identify specific motions, some techniques of Artificial Intelligence, such as neural networks and cluster recognition will be implemented and analyzed. In conclusion, a working prototype of a program and results of research of algorithms should be prepared.

    Project Goals:

    1. Research applicable AI methods of pattern recognition and video capturing of motion
    2. Develop a program that uses standard video capturing libraries and implement the algorithm of converting hands’ motion into control signals
    3. Analyze the efficiency of the implemented method and prepare a nice appealing demo

    Skills Required:

    Location

    Location is flexible.