This project offers an opportunity to
experience the software development process in a diverse computing
environment. The team will be interfacing with senior process
engineering and IT professionals in a high volume wafer manufacturing
facility.
Avaya
designs, develops, and deploys communication systems, applications,
and services on a global level. As a leader in the field of
enterprise telecommunication systems, Avaya is responsible for
meeting the communication needs of small businesses as well as 90% of
the companies in the Fortune 500 and the U.S. government.
As part of an ongoing effort to
maintain and improve quality, data is collected from various data
sources for analysis, and is used to drive critical business
decisions and drives process improvements.
The project requires knowledge of
database-driven web development, Java Servlets, JavaScript, PERL, and
HTML. The architectural design can be flexible, but must be easily
maintained. The application will be deployed on a Unix-based Web
Server. Experience with MYSQL is desirable.
Resource usage estimates are necessary
to determining feature planning. Currently these estimates are
tracked through a web site; however, the current site is product
specific which limits the usefulness of the site.
Redesign the website currently
collecting resource information to accommodate a generic solution for
a set of products. As part of the redesign, additional capabilities
including access control, update functionality, and reporting need to
be provided.
The project requires knowledge of
database-driven web development, Cold Fusion, JavaScript, and HTML.
The application will be deployed on a Windows-Based IIS Web Server.
Experience with MS SQL server is desirable.
Ethan is a
second-year teacher who has volunteered to have a team of Mines
students build a webpage for one of his classes, Physical Science. This
project will serve the students enrolled in Physical Science, a
high school freshman introductory science course at Cherry Creek High
School. Ideally, the material on the web page will be accessible and
helpful for other students in similar classes around the globe.
The team will work
to build a webpage with resources for the students in the class. The
web page will serve as a complement to class lectures, homework,
labs, and projects. Through their computer at home, high school
students will be able to review class notes, communicate specific
questions with each other, try extra problems, and study for upcoming
exams. The page will be designed so that high school math and
science teachers can easily update and edit the information on the
page and use a template to create similar pages for other classes.
In the case of
Ethan's Physical Science course, all of his lecture notes are
handwritten, so the team will use the class book and his notes to
create organized and enthralling power point slides with related
pictures and necessary equations. This course has seven units, with
a test after each unit. The webpage should have unit summaries and
unit activities. An example of an activity could be a story based
off of an equation where the students use scientific reasoning, the
equation, and class material to solve the problem presented in the
story. The program could walk the student through the problem and
check the final answer.
- Linux/Unix programming environment.
- Programming
skills in C++.
- GUI
programming (Java or any language chosen for the GUI development).
- Strong
motivation to learn computer networks and simulation.
By the end of
the field session, the students will acquire a good knowledge of GUI
design, computer networks, and computer simulation. Your participation
in the research group will for certain yield significant weight on your
resume, especially if you are seeking a graduate school. Students who
successfully complete this project will be recruited by the PRIME
research group and funded for further research activities in the summer
as well as during the following academic year.
CSM #4 - Geophysics Interactive Graphical Display
Client:
Dave Hale, C.H. Green Professor of Exploration Geophysics, CSM
Project: Interactive
graphical display and manipulation of 3-D triangulated surfaces.
Background:
The
Mines Java Toolkit (
http://www.mines.edu/~dhale/jtk/index.html)
is open-source software with applications in science and engineering.
Included in the Mines JTK are packages that provide the foundations
for efficient 3-D graphics programming in Java. Specifically, the
Mines JTK includes a package that provides the entire OpenGL 3-D
graphics library in Java, and a package that implements a 3-D scene
graph on top of OpenGL.
Our goal in this project is to build on these packages to design and
implement one of the most fundamental components in interactive
scientific visualization a 3-D triangulated surface.
Applications
of such surfaces are universal. Computer games, computer aided
design, scientific visualization, modeling of biological, geological,
geophysical processe all of these applications require the
display of 3-D triangulated surfaces. Many of these applications also
require interactive manipulation of surfaces, and most existing
software systems do not support this task well. We must take care in
our software to support both interactive visualization and
manipulation.
Requirements:
The
central theme of this project is 3-D interactive graphics. In the
course of this project we will learn
- relevant
parts of the popular OpenGL library for 3-D graphics,
- data
structures (e.g., scene graphs) used in 3-D scientific visualization,
and
- the
mathematics especially relevant to computer graphics.
We will
learn these subjects while designing and developing software
components to
- display
graphically a 3-D triangulated surface,
- interactively
manipulate 3-D surfaces with a 2-D mouse, and
- test
these components.
Along
the way, we will document our work with
- javadoc
web pages for all of our components and
- example
programs that highlight features and trade offs of our design and
implementation.
CSM #5 - Chemistry #1
Client: Dr. Kent Voorhees
A Ph.D. student in chemistry showed in his thesis research that a
protein could be thermally degraded (heat) in a selective and
reproducible process. The student also found that when the protein
structure was known, he could reconstruct the sequence of the original
protein based on the information from the thermal fragments. The
following diagram summarizes the thermal degradation process:
heat
ABCDEFGHIJKLMNOPQRSTUVWXYZ -----------> Protein; letters represent
amino acids
ABCDEF + BCDEF + EFGHIJKL + ABCD + ABCDEFGHIJKLMNOPQRSTUV +
ABCDEFGHIJKLMNOPQRSTU + ABCDEFGHIJKLMNOPQRS + ABCDEFGHIJKLMNOPQR +
GHIJKLMNOPQR + IJKLMNOPQ + JKLMNOPQR + plus many other combinations.
The problem in the case where the structure is not known, is can the
fragment data be used to show that ABCDEFGHIJKLMNOPQRSTUVWXYZ is the
structure of the original protein? Successful completion of the project
will lead to a publication in a chemical journal. The project will not
require knowledge of protein chemistry.
CSM 6 - Chemistry #2
Client: Dean Dickerhoof
Background:
In the 1996 MACS field session, a team of students worked for me
and completed a very useful project. It takes as input chemical
formulas and then decides if a balanced chemical equation can be
written using them and, if so, writes such an equation. Essentially, it
balances complicated chemical equations. Unfortunately, after the
students departed CSM, a small "bug" was discovered in their code. The
code is written in Pascal, so I have been unable to find and correct
their bug. Furthermore, for distribution they have an "exe" file
which must be installed on the user's computer.
Even as it is, the
program has been widely used not only by CSM students but by others
around
the world (including high school students, college students, and
professional people needing a balanced chemical equation).
Project Request:
The goal for this year is to create a web-based version of the original
program, minus the existing bug (of course). The program would
involve:
- "parsing" a chemical formula so that all atoms are counted
correctly,
- setting up the mass and charge balance equations as a matrix, and
- doing what I think is called "reducing it to a row echelon
form".
I can show the students how to do parts (1) and (2), but they will need
to solve the (3) task.
Skills:
Students should know how to do some web programming. Interest
and knowledge of chemistry a plus.
CSM 7 - MCS
Client: Reinhard Furrer
Background information:
Aerosols, particle matter or simply water vapor can be measured with
many different techniques, based on, for example, LIDAR, satellites,
surface and airborn in-situ devices. Although these various
instruments have different sampling times, volumes/footprints and
measurement errors it is commonly accepted that they agree to a
certain extent. Despite the large diversity of mesurement types,
sampling is often very sparse in space and/or time and it is almost
impossible to to quantify their large scale behaviour. The latter is
often studied with off-line transport models or even fully coupled
atmosphere-ocean models.
This reseach aims to assess quantitatively the difference between
aerosol measurements and off-line transport models. We need to
formalize a statistical model taking into account the different scales
and uncertainties.
Project Goals:
The first but indispensible step is to analyse the (surface) aerosol
measurements itself. We will focus on data from (at least) two
sampling sites to allow univariate and bivariate description of
variables like single-scattering albedo, backscatter fraction,
radiative forcing efficiency. The modeling need to take account
seasonal, diurnal cycles, etc. Statistical keywords include:
correlation analysis, multiple
regression, (bivariate) time series models. The analysis is carried
out with the interactive computing environment R.
Skills Required:
- Knowledge of the interactive computing environment R (or SPlus);
- Background in statistical modelling (MACS435 or higher),
additional statistical knowledge and expertise is beneficial;
- Interest to learn new statistical methods to analyze time
series.
CSM 8 - MCS Parametric Model for Oil Production
Client: Reinhard Furrer
Background information:
The "Hubbert curve" empirically approximates the full cycle of the
growth, peaking, and subsequent decline to zero of the "production"
[(quantity/year) vs. year] of a finite, nonrenewable resource, like
oil. Besides this most popular approach, there exists other parametric
families, each with specific advantages and disadvantages. Yet, all
try to answer questions like:
- Did (or when does) the US (or world) oil production peak?
- What is a fair estimate of the remaining resource?
The importance of precise answers to question of the above type is
perspicuous.
Project Goals:
The project is three-fold. First, the rational and elementary
properties of the Hubbert curve need to be acquired from existing
literature. A second task is to find a parametric family to model the
total
crude oil production. The resulting parametric form should have low
residuals with the observations as well as strong predictive
capacities. The third task is to simulate simple oil exploration and
test the predictive skill of the parametric model developed in the
first part.
As data, we will use mainly the North Dakota dataset, but also the
World Oil dataset.
Statistical keywords include: linear and non-linear regression, time
series, marked point processes. The analysis is carried out with the
interactive computing environment R.
Skills Required
- Knowlegde of the interactive computing environment R (or
SPlus);
- Background in statistical modelling (MACS435 or higher)
additional
statistical knowledge and expertise is beneficial;
- Interest to learn new statistical methods to analyze time
series and
spatial data.
eQUIZitive
Background:
eQUIZitive
is a small software company located in Englewood. Our core
product is a web application called medQ, which is a system designed to
help hospitals and medical staffing companies keep track of their
employees' documents, tests, and certifications and prepare for a
health care audit. The application was developed with php and mysql and
runs on our linux-apache webserver. Have a look at our online tour for
a more detailed explanation of our product:
http://medq.equizitive.com/tour
One of the biggest challenges a
new company will have in using the system, and therefore a challenge
for us in selling the system, is loading all of their pre-existing
documents onto the web site. Presently, we have two ways of doing this:
1) They can scan their documents and upload them to our site one at a
time using their web browser, or 2) they can use a process we developed
called Incredifax, whereby they fax in a stack of pages to a staging
area on the web site, and then indicate which documents belong to whom
and enter any metadata for each document. Presently the second method
is preferred by our clients because it is faster, but the main drawback
is that the quality of the pages transmitted via fax is quite low.
The Project:
Our proposed CSM field session project is for the students to create a
windows-based interface to scan documents, enter metadata, and click a
button to have the documents directly uploaded to the site. This
program will use a common scanner interface (TWAIN, Windows Image
Acquisition, etc.) to get images from the scanner and prompt the user
to enter information about the document (who it belongs to, expiration
date, whether or not it has been signed, etc.) Then, they will click
"upload" and the program will send the pages directly to the web site
and update the database with the metadata associated with the page.
This will allow for much higher quality images and will save a step in
the upload process when compared to the current way of doing it. This
might not sound like a lot, but when clients are uploading thousands of
documents, that time savings adds up.
Skills:
CSM Field Session Team members should have experience in windows
programming (VB, C++, etc.) and have a basic understanding of web
technology. Knowledge of php, linux, or mysql is not explicitly
required, since the work will be exclusively on the windows interface.
Members should also be adept in creative problem solving. We know what
we want the program to do, but the team members should come up with the
actual design and specific solution to the problem.
In Closing:
Students will get experience not only working on a real project that
solves a real problem, but in working with a small company and seeing
the challenges and rewards that come with a small workforce. The team
will work with a CSM graduate who has gone through the field session
process and will help the students get the most out of their field
session experience.
ESE Today
Background:
MattSoft Publishing Incorporated (MPI)
produces, publishes, and distributes the journal Explosives Science
and Engineering Today (ESEToday). MPI offers short courses for
training workers who use explosives. Last year a field session
team developed an on-line course environment similar to Blackboard for
instructors to be able to set up courses. The project
included a wizard for setting up courses in a pre-determined structure,
a login function to distinguish
between students, instructors, and administrators, and the ability for
students to view the course material and take quizzes.
The Project:
Last year's project was a success, but there is another component
that needs to be addressed. The website of the ESEToday journal
to which the online courses would be attached is static.
We propose to make it dynamic by creating a database backend with the
ability to collect detailed statistics about how the site is being
used, with snapshots for daily, weekly or monthly views. Also the
ability to easily update news, archive, and have that archive
searchable by users of the site would be advantageous. Another
valuable feature would be a section with login for data that isn't
available to the general public but to select users.
Intrado
Background:
Intrado Corporation
is a company located in Longmont Colorado. We currently provide
Enhanced 9-1-1 Services for many large Local Exchange Carriers and
other Wireline and Wireless carriers. These services include the
collection and retrieval services for 9-1-1 calls that occur
throughout the 50 states. To support these services as well as to
support services in the future, Intrado has a software development
department that is responsible for building and supporting existing
software platforms.
The current 9-1-1
infra-structure in place today has technology that has been in place
since the 1960s. Intrado is currently in the process of proposing
changes to this infra-structure as well as building products to
address needs in the future. As part of these changes and new
products, Intrado has developed a platform that will support the next
generation E9-1-1 systems. This platform is built around a new
protocol that has been recently defined by a 9-1-1 standards
committee made up of industry professionals.
The Intrado
software engineering organization currently has a need to build an
automated testing platform that can be used to build new tests to run
against this new platform to validate functionality and verify the
platform after enhancements are made to it in the future. The team
has discussed using a testing framework like Fitnesse or build
automated tests to provide the needed testing.
The Project:
The project that
we
would like to submit as our proposal involves the building of an
automated testing platform to test out the new E9-1-1 system that
was developed by Intrado. The system accepts a limited set of
messages from outside entities and sends back in many cases
information stored or collected by the system based on the message
received. The automated test platform would create these messages
and then verify that the information returned is correct. The test
platform should be easy to program and provide the capability to
support a large number of test cases. Tests could be kicked off
manually and then left to run unattended. Results of tests should be
available after the tests are run and should be easily summarized so
that an individual can tell if all test passed within a minute or
less. We don't think a complete tool could be built in the
timeframe allotted for this project and feel that a tool like
Fitnesse or other automated test tool framework could provide the
building blocks needed to build a platform that would meet our needs
within the time allotted.
Skills:
I have estimated
that this project would require about 3 individuals if we hope to
complete it in the time allotted. These participants should have
experience in Java programming as they will be writing Java code to
work with the framework. Other experience that would be applicable
would be: the use and programming of ANT XML files for building
software releases; prior experience reading and understanding of the
HTTP protocol, writing software to create XML output; and any
experience with other automated software test tools, including junit.
Any prior experience with the SIP protocol would also be a plus.
The E9-1-1 system
that the tool will be built for uses SIP and another protocol that
is similar to HTTP. By developing the test tool, the students will
be exposed to SIP (the protocol used to support VOIP calls) and will
also learn some internals as to how HTTP works. This will be
valuable experience as VOIP is gaining in popularity and HTTP is
widely used in support of a variety of Web applications.
Automated testing
has become a hot topic in the industry as companies are trying to cut
development costs as well as build better quality products. Developers
that have experience in this area are not only sought by
development groups but can also work in the quality or testing
organizations.
Medtronic
Localization Simulator (Project A)
Medtronic Navigation products rely on a variety of localizing
technologies (optical from NDI
http://www.ndigital.com/medical.php and
electro magnetic - developed internally) to identify and track medical
instruments. Localizing technology has grown and become more
sophisticated and its relationship with applications has grown
accordingly.
Moving forward, on-going product generation will require a development
environment that includes sophisticated localizer simulation
capabilities. This simulator must faithfully mimic the following
localizer behaviors:
- Data Generation
- Event Management
- Control Handling
This simulator should have the ability to do the following:
- Synthesize / simulate behavior (both normal and fault
conditions)
- Capture / playback real localizer data
- Stress the application
- Extended / enhanced to reflect on-going technical advances and
uses.
Development of this simulator will provide the team an opportunity to
- Employ project management skills (planning, requirements
gathering,
estimatinestimating, and communicating) on a large software project.
- Develop software that will be used for the development of
medical
devices.
- Apply current technologies such as Linux, C++, Java, and Qt.
- Gain experience with specific medical device technologies.
Figure 1.
Software Reuse (Project B)
Software reuse is a deceptively difficult problem to solve but
represents one of the key components to realizing the vision of
application development based on a product line philosophy.
Historically, software reuse beyond simple libraries and small
components has been extremely difficult to efficiently achieve across a
large development organization.
Difficult for developers to identify what is available for
harvesting. Rarely does a prospective software component supply
exactly the
functionality required. Contributing to this lack of success has been
the fact that it is hard
to catalog achieve, and retrieve reusable assets as the effort grows to
span multiple projects and organizations within the business.
Developers must be able to easily create potentially reusable
components and locate suitable reusable assets when they exist.
Traditional approaches generate a hierarchical organization similar to
the Java libraries.
Search engine technology (e.g., Google) takes the brute-force search
view of data. No attempt is made to impose an organization to the
information but success is based on the effectiveness of the search
query provided by the user. Drill-down and back out (e.g., wikiwiki
style) represents an attempt to overcome some of the problems
associated with hierarchical organization schemes by providing link
& jump capabilities to the author.
The software reuse issue is particularly interesting given the emerging
ideas about how to organize and think about data/information. For
example, www.flickr.com presents a scheme to associate meta-tags with
photos as opposed to trying to organize them in folder hierarchies. Of
course the variability in how humans think about things, (e.g., adding
a meta-tag of "DOG" to a photo of a poodle while someone else would
attach a meta-tag of "POODLE") presents an entirely new set of
challenges.
This project will require the team to employ a mixture of research,
data design, and programming to accomplish the following:
- Develop a characterization/management scheme for software.
- Characterize extension and modification options for software.
- Design of a database model representing the meta data relevant
to
efficient and effective software reuse.
- Develop the "tools" (e.g., pre-processors) to reliably create
and
populate the meta data database
- Develop a graphical tool to query the meta database and provide
user-friendly access
Medtronic Navigation Website
http://www.stealthstation.com/index.jsp
About Medtronic Navigation
Medtronic Navigation is the leading supplier
of integrated image-guided surgery products in the world. Based in
Boulder County, Colorado, Medtronic Navigation is focused on research
to enhance current imaging systems and develop new image-guided surgery
applications. Medtronic Navigation uses extensive research and
development and strategic partnerships giving surgeons and their
patients the safest and most effective imaging devices available in the
world.
Toilers Research #1
Client: The Toilers Research Group
http://toilers.mines.edu
Colorado School of Mines
Qi Han (CS Faculty)
Background:
With the advances in computational, communication, and sensing
capabilities, large scale sensor-based distributed environments are
becoming a reality. Sensor enriched communication and information
infrastructures have the potential to revolutionize almost every
aspect of human life benefiting application domains such as
transportation, medicine, surveillance, security, defense, science
and engineering. An integral component of such an infrastructure is
a data management system that allows seamless access to data
dispersed across a hierarchy of storage, communication, and
processing units -- from sensor devices where data originates to
large databases where the data generated is stored and/or analyzed.
Skills required:
* Strong C++ programming
* Ability/interest to learn new languages, API's,
and packages
* Basic knowledge in probability theory
Project Goal:
The project goal is to conduct simulation studies for a
well-designed energy efficient sensor data collection protocol using
a network simulator ns2. Since sensors are resource constrained,
often sensor data is collected into sensor databases that reside at
more powerful servers. A natural tradeoff exists between the sensor
resources (bandwidth, energy) consumed and the quality of data
collected at the server. Blindly transmitting sensor updates at a
fixed periodicity to the server results in a suboptimal solution due
to the differences in stability of sensor values and due to the
varying application needs that impose different quality requirements
across sensors. In order to adapt to these variations while at the
same time optimizing the energy consumption of sensors, a data
collection protocol has been designed. Detailed performance
evaluation plans have also been laid out. By the end of Field
session, you should finish the implementation of the proposed
algorithms in ns2, and generate experimental results. Depending
on
the project outcome, you may become a co-author of a high quality
journal paper. Furthermore, you should be able to strengthen your
resume by proudly adding the following shiny points:
* Research experience on wireless sensor networks
* Proficient in the widely-used network simulator
ns-2
* C++ programming
* Strong Object Oriented design
Toilers Research #2
Toilers Research Group
Client: The Toilers Research Group
http://toilers.mines.edu
Colorado School of Mines
Tracy Camp (MCS Faculty)
Stuart Kurkowski (MCS Ph.D. Student)
Tuli Mushell (M.S. Student)
Ed Krohne (B.S./M.S. Student)
Background:
The Network Simulator 2 (NS-2) is a popular and powerful simulation
environment. The Toilers research group at CSM has developed a
visualization and animation tool for use with NS-2 wireless
simulations.
Visual analysis of a wireless environment is important for three areas
of NS-2 based simulation research: (1) validating the accuracy of a
mobility model's output and/or the node topology files used to drive
the
simulation; (2) validating new versions of the NS-2 simulator itself;
and (3) analysis of the resulting NS-2 trace files. Our interactive
NS-2
protocol and environment confirmation tool (iNSpect) program can
accurately handle all three of these areas. iNSpect is freely available
to researchers to improve the accuracy of their simulations, and has
already been shared with over 155 different research groups in 34
different countries. See
http://toilers.mines.edu
for more information about iNSpect and
http://toilers.mines.edu/EXTERNAL/twiki/bin/view/Toilers/NsInspect
for
a small demo.
Skills required:
- Strong C++ programming
- Ability/interest to learn
new languages, API's, and packages
Technology:
- iNSpect is written in C++ using STL, GTK+, GtkGLext, and
OpenGL libraries
Last Summer:
Last summer three students took iNSpect from a research tool to a
teaching tool. They added support of image and movie capture from the
OpenGL canvas. iNSpect images and movies are used in classroom and
conference presentations.
Project Goal:
We have two goals/projects to add further enhancments to iNSpect. (1)
The
first project is to support more functionality in the iNSpect
visualization core engine, including statistical calculations. (2) The
second project is to add more
functionality to the iNSpect OpenGL visualization window to support
more
coloring, texture maps, and lighting. iNSpect makes use of many object
oriented design principles including multiple inheritance, operator
overload, and large data structures. By the end of Field Session, you
should be able to add some shiny bullet points to your resume and speak
intelligently on:
- OpenGL
- GTK+
- Mid-size project development
(iNSpect is ~8000 lines of code)
- Doxygen
- GNU Make and pkg-config
- Bash scripting
- GUI programming
- C++ programming
- Strong Object
Oriented design
- STL (standard template library)
Toilers #3: Simple Sensor Syndication
This project will create a publish/subscribe model for wireless sensor networks (WSNs),
and deploy the system in the WSN testbed installed in BB 154 (known as the
Casino Lab). The testbed has temperature, humidity, and light sensors, and it tests
networking protocols for WSNs appropriate in environmental and industrial monitoring
applications.
Sensor networks are good at gathering data across space and time, but
those data are usually aggregated and stored in an offline database unseen
by users unless there is a critical alarm that must be raised. This
project creates a new way to make WSNs more interactive, in which a user
can get a subset of the available data delivered to him or her online.
Users of the sensor network will specify events that they are interested
in, such as when the temperature gets too cold or when the lights go out.
Theses events are specified by writing short sections of code in a
high-level language that serve as function detectors. The WSN evaluates
these function detectors periodically over the region of interest, and it
records events of interest to the user. Finally, the network will
generate an RSS feed that is updated every time one of these events
occurs. By subscribing to the RSS feed, the user gets periodic updates of
the WSN's status inside his or her newsreader.
The project team will learn about the RSS 2.0 spec, programming in
nesC/TinyOS on the wireless sensor motes to collect sensor readings, and
programming in Python to aggregate and publish the data.
Because this software will be used by scientists and other consumers of
WSN data, it must be easy for them to write code to detect interesting
events, and it must be easy to use in general. Also, because WSNs
comprise resource-constrained devices, most of which run on batteries, the
software must be efficient and not add too much communication overhead.
The final deliverable will be a demo to submit to ACM SenSys 2006, the one
of the top conferences in sensor networks (which happens to be held in
Boulder this year). The demo will involve walking into a sensor network
with a laptop, specifying interesting events, and then monitoring those
events in real time in a newsreader.