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.
The proposed project will entail helping CiviCore of integrating a business intelligence platform with their standard data management application. Specifically, students will:
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:
The location is flexible.
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.
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.
The goal of the project is to enhance the functionality of the game in the following areas:
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.
If you would like to discuss this project more and find out additional information, contact Dr. Irene Polycarpou, ipolycar@mines.edu.
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.
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!
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:
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.
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:
There are some obvious variations to this game mode, including:
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.
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.
The potential list of enhancements includes:
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.
This summer we are looking to augment our Webtop with greater customization and usability for our clients.
Creating a shared calendar that would be able to send Outlook
Calendar notifications and possibly perform Outlook Calendar synching;
webtop customization.
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.
The students should have:
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.
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.
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.
Create a website which has the following features:
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.
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.
There are three possible projects.
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.
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.
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.
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.
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.
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:
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.
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.
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”.