Computer Science faculty have the projects
described below available for students to work on.
Other projects are also possible. You can visit
individual faculty to discuss a project of your
choosing, or other projects that they might have
available.
Dr. Zimmerman: Mobile Game Implementation -- Game Engine
A local entrepreneur has created a board game that he wishes to move to a
computerized version. A primary focus would be on implementing the essence of
the gameplay engine; platform independence would be an important design goal.
This project would require learning to use the iPod application development
framework.
Dr. Zimmerman: Mobile Game Implementation -- Game AI subsytem
A local entrepreneur has created a board game that
he wishes to move to a computerized version. This
project would involve developing an AI subsystem for
the related project. This would allow a player to play
against a computerized opponent. This project would
require learning to use the iPod application
development framework.
Dr. Zimmerman: Parallel Graph
Algorithms
OBJECTIVE
Adapt or retool code that generates families of
Graphs/DiGraphs according to user specified
parameters and then allows algorithms to be executed
on those graphs. This would likely involve: the BGSU
cluster and the new SMP machine, but could also
involve use of machines at OSC. This would be an
ideal project for someone who enjoyed 4170 and
6120.
USEFUL BACKGROUND
MPI, graph theory.
Dr. Zimmerman: Campus-Maps on Mobile
Devices
DESCRIPTION
This project would involve extending and/or
adapting a project from a prior semester. This
earlier project involved developing a system that
would allow for the 'easy' generation of a
campus navigation system, deployable on a mobile
device. A working prototype was developed. A number
of issues remain. Some of these are:
improving the graphics
navigation enhancements
improving robustness
user testing
There was some initial discussion as to use of 3D
graphics -- it's still not clear whether this is
a viable (or even desirable
option).
USEFUL BACKGROUND
2D graphics
Dr. Zimmerman: Skeletal animator for XNA Game
express.
DESCRIPTION
In many games, 3d animations (e.g. a humanoid
running) are created offline using tools like Maya
and 3d studio max. The animations are then
'played' at specific times in the play of the
game. The XNA game express environment has limited
support for use of such 'predefined' skeletal
animation. Ideally this project would have two
overlapping components. 1) develop a toolkit of C#
classes to allow easy manipulation of predefined
animations within the XNA environment. 2) create a
simple XBOX 3600 game that demonstrates the utility
of the toolkit. XBOX 3600 provided.
USEFUL
BACKGROUND
3D Graphics
Dr. Zimmerman: A Java 3D construction
presentation
toolkit.
DESCRIPTION
We have been investigating the use of 3D graphics
as a component in the delivery of instructions for
construction tasks, e.g. build a Lego model. We have
principally been using VRML to generate the graphics
as well as to provide some of the user interaction
capabilities. This project would involve the creation
of a set of software tools to create
construction-task presentations using Java3D for
graphics and user interaction.
USEFUL
BACKGROUND
Java, Java3d, graphics.
Dr. Julie Barnes: Proteomics Analysis
Software
OBJECTIVE
To develop software to process spectra mass unit
values for cells. At a minimum the software will need
to sort two files in parallel, looking for an 80-unit
difference in values between the peaks that are
recorded on the two files. In addition, multiples of
80, such as 1600, 2400, etc. should be flagged if
they are found.
BACKGROUND
Cells are affected by a compound called a tumor
promoter, in such a way that they take on some of the
properties of cancer cells. The investigators have
evidence that these changes can be traced back to a
single protein. This protein, called PKC, is an
enzyme that donates phosphorescer groups to other,
unknown proteins. The mission of the group is to find
out the identity of the proteins. They will do so by
cutting up the proteins of the whole cell, in cells
where the PKC is unaltered versus those where it has
been eliminated. By detecting the 80-unit difference
between the peptides from PKC-replete and PKC-free
cells, the investigators will identify the peptide
fragments from the unknown proteins. >From that,
they can learn the identity of the proteins by
sequencing the peptides.
PROPOSAL
At present, the investigators have spectra from a
technique known as MALDI-TOF. They need to compare
the spectra obtained from the two types of cells,
which has so far been done "by eye".
However, there are already a number of spectra to be
compared, and the investigators may not have found
the differences. If software is used, we can
determine whether every difference has been found
"by eye" in those samples. This project
will be followed by further experimentation to
confirm the peptides as consistent products altered
by the enzyme, PKC. The software will be used in the
confirmation, as part of a graduate student's
Ph.D. project. It may be of interest commercially as
well.
Dr. Rajaei or Dr. Kresman: Use of Java and
Parallel Distributed
Simulation
BACKGROUND
Parallel or distributed simulation refers to the
execution of discrete-event simulation programs on a
multiprocessor system or network of workstations.
This may be carried out in a number of programming
paradigms, including
Java.
OBJECTIVE
Evaluate the suitability of certain public domain
Java simulation libraries by developing Java based
simulation applications using these libraries. The
applications may use several techniques. Conduct test
runs on target architectures and generate numerical
data on performance and other factors. Prepare a
detailed report on your work and give an oral
presentation at the department colloquium slot.
The project may employ more than one student. It
involves many phases with opportunities for students
to work in groups or in different phases of the
project.
PREREQUISITES
Familiarity with discrete-event simulation and
parallel computing. Good Java programming skills.
Dr. Kresman: Component Development for
Public-domain C
Library
BACKGROUND
The Internet Research Group at Sun Microsystems
initiated the development of a public-domain C
library to validate chains of X.509 certificates. The
relevant standard is RFC 3280. Volunteers from
outside have been working on many pieces of this
library. When completed, it can be used by
users/programs across a range of platforms. Soon, the
library may become part of open source code. For now,
it is still work in progress and a number of
additional components are
needed.
OBJECTIVE
Your part is a piece of the overall puzzle; you
need to follow good software engineering principles
and established architecture and programming
guidelines for the library. As well, the development
employs unit testing and code review.
Following the completion of the code and
comprehensive write-up, you will give an oral
presentation at the department colloquium
slot.
PREREQUISITES
Prerequisite include good C programming skills
(NOT C++), CS 4640 ideas, PKI and aspects of CS 5080,
CS 6290.
ELIGIBLE COMPONENTS
Some of the components are listed below, each of
which may be worked on by a team of students:
Certificate status checking (starting with full
direct CRLs and moving on to OCSP, segmented CRLs,
indirect CRLs, delta CRLs, etc.)
Name constraints checking; Certificate policy
processing
Fetching certificates and CRLs from LDAP, HTTP,
and other repositories (using information provided
in AIA, SIA, or CRLDP extensions or through
configuration)
Dr. Leventhal: LEGO Construction
Project
OBJECTIVE
Developing VRML worlds and VRML presentation of a
LEGO construction
project.
PROCEDURE
The student would need to:
1. Train themselves to use VRML and to interface VRML
with java and C++ (this means go through some
tutorials and practice exercises)
2. Learn about the notion of "inherent
complexity" in building tasks (this means read a
paper)
3. Identify a LEGO building task with a suitable
level of inherent complexity
4. Build the VRMLs to present the building
instructions for the building task
5. Imbed the VRML's into a suitable user
interface to use for an experiment.
Students could work in the CHIL lab although the
materials to do development in VRML are mostly
free.
TIMELINE
START: summer or fall
Dr. Kresman: Parallel and distributed algorithms
for mining frequent patterns of large data
sets
OBJECTIVE
Study and implement at least 4 or 5 existing
algorithms. Empirical performance evaluation using
large (real) data sets. Use of real (OSU) and
simulated processors.
GOALS
Propose some improvement over one of the existing
ones, possibilities:
- patterns in underlying data sets vs influence on
performance
- improved data structure vs influence on performance
- processor topology vs influence performance metrics
- anything else?
EXPECTATIONS
Weekly progress report/meet with me (at least once
a week)
Write a VERY detailed, formatted, and
self-contained project report
- on the literature
- your understanding
- your improvements
- program design and methodology
- code walk through + documented code
- program run snapshots and discussion
The write-up may have to be iterated a few times
in consultation with me and possibly one other
faculty.
Formal oral presentation at a departmental
colloquium.
Dr. Maner: Team Formation by Genetic Algorithm
GOAL
The goal of this project is to develop a GA (genetic algorithm)
that will assign students to project teams of size N based, first,
on personality factors; second, on skill sets; and third, on
characteristics desirable in a team leader.
THE PROBLEM
Teams composed of the same personality types tend to be less
productive than teams that are more diverse. In addition, for
class projects, it is unfair for one team to have all the experts
and another team to have all the novices.
THE SOLUTION
To solve these two problems, this GA program
would start by randomly distributing students into teams of N
members. Then, the GA would experiment with different
distributions of students until personality factors are nicely
balanced (i.e., as diverse as possible). Then, with minimal
disturbance to the personality balance, the GA would experiment
with different distributions of skill sets until both personality
factors and skills sets are nicely balanced. Finally, with minimal
disturbance to the balance reached for personality and skill sets,
the GA would place someone in each group who has the potential to
serve as team leader. If necessary, the GA could favor personality
balance over skill balance, and skill balance over leader
identification.
DETAILS
This program should run as a web application, and
should collect the necessary student data by presenting
interactive survey forms to users. The list of relevant
personality factors and the list of relevant skills should be
imported from simple text files, where they can be easily changed.
Each line would be an ordered pair:
"factor or skill in quotes" integer-value
The integer-value represents the strength of the factor.
For skills, this number will come from an online self-assessment
form; for personality factors, this number will come from an
online form that measures personality type (e.g., the "Personality
Styles Inventory"). This information would be stored in a mySQL
database as it is collected; as soon as information has been collected
from the entire pool of students, the GA would import the data
and begin its experimentation.
DEVELOPMENT STRATEGY
An iterative test-first strategy is expected.
Before any coding is done, a set of representative test cases
with known solutions should be created.
QUALIFICATIONS
To complete this project, the student must know (or be willing
to learn) the required elements of JavaScript, HTTP, Perl (or
PHP), XHTML, AJAX, CSS, mySQL and possibly HTML 5. The GA itself
can be implemented using Python or
Perl
libraries.
Dr. Maner: Hartman Value Profile for BGSU Core Values
This project presupposes some knowledge of symbolic logic as taught, for example,
in PHIL 3030.
Dr. Lee: Computer Vision with GPU Computing
OBJECTIVE
The goal of this project is to implement a computer vision algorithm using
Cg/CUDA-based GPU programming language. In particular, the project will involve
GPU implementation of an existing satellite image structural segmentation
algorithm.
USEFUL BACKGROUND
2D Graphics with OpenGL/GLUT, image processing, GPU programming.