Computer
Science
26
HASHING 101
Daniel Atwood ‘04
Faculty Advisor: Professor Chris Armen (Computer Science)
Hash coding, or simply hashing, refers to a method for providing easy access to individual data items which are distinguished by a value called a key. Given a key, a hash function will output a hash value, which is then used as the index for determining where in the hash table that item should be placed. When two items hash to the same space in the table, a collision occurs. This Java applet illustrates the relative benefits of three forms of collision resolution; linear probing, quadratic probing and double hashing. The applet takes as input the desired number of available spaces for inserting items. It also requests either a selection of one of several predetermined sets of items, each used to illustrate specific benefits of the different forms of collision resolution, or an integer indicating the number of items that should be randomly generated by the applet itself. The applet then inserts the items into an array three times, using the three methods of collision resolution, and outputs information regarding the relative performance of each method. Hashing 101 was implemented as an online applet in order to provide easy access by computer science students wishing to learn more about collision resolution.
Alexandra Benjamin ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Autostereograms
are pictures created by manipulating pixels and colors so that when viewed
correctly a three-dimensional image is seen within the two-dimensional surface
image. People are generally most familiar with the Magic Eye books that became
popular in the early 1990’s. The program I’ve created consists of an algorithm
that will do this manipulation given a grayscale depth image as input. The
algorithm is based off of information on pattern repetition and how the brain
and eyes process information. It reads the depth image and depending on whether
adjacent pixels are lighter or darker than one another an insertion or deletion
is made to the repeating pattern. The insertions and deletions are what create
the different levels in the three-dimensional image. The end result is a bitmap
file of the same size as the input file that you began with.
28
A FRAMEWORK FOR ENABLING RAPID DATA MINING OF FUNCTIONAL IMAGING DATA VIA MATLAB
Alvin Chon ‘04
Faculty Sponsor: Professor Chris Armen (Computer Science)
Vince Calhoun PhD,
Currently,
the field of neuro-imaging utilizes many methods for data collection and
analysis. Different types of studies
require varying tasks which utilize diverse types of images. These images are used to derive information
on the brain or ‘features’ related to the study. MATLAB, coupled with SPM, is the standard
analytical tool. The project implements
the ability of MATLAB simplified over the web.
It also allows researchers to draw from the extensive image database at
the
Siddhartha Dabral ‘04
Faculty Sponsor: Professor Chris Armen (Computer Science)
Electronic
elections have swept the nation, and in the spirit of the technologically
revised voting schema, I have decided to create a software platform that can be
used as a voting package. The software
package will, in this case, be specialized to the parameters of Trinity’s
Student Government elections. The
package will feature a user friendly interface (coded in Graphical Java), that
will allow a voter to fill out their ballot, and cast their votes. The data will be transferred to a database via
JDBC technology and stored and updated using MySQL server. The election platform will also allow
administrative access to the election supervisors, which will allow them to
create ballots yearly as well as see various election demographics.
Along
with the Electronic Election Software Platform, there will be a paper
describing election security, integrity, and privacy (i.e. voter privacy)
issues in electronically hosted elections, and how the software package handles
these concerns.
Trishan deLanerolle ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Eric Donald ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Identifying junk mail is a very manual process for most casual users but it is an intensely manual process for business people. The process of eliminating junk e-mail is not new. However, as more computer users become technically proficient in their use of computers, the more advertisers, who are the largest senders of junk e-mail have come to realize that they have an increasingly captive audience. This project investigates the widely utilized heuristic or rule based spam filtering methods and compares them to a probabilistic approach using a Bayesian statistical filter. The Bayesian method used in filtering, or text classification is based on an 18th century theorem on conditional belief based probability – or the probability of one’s belief in event x given y evidence. An open source code product, JavaBayes, will be used on e-mail words tokenized to illustrate the performance comparisons of Heuristic versus Statistical e-mail filtering. Another open-source product, SpamBayes, will be used to illustrate the actual functioning of a Bayesian filter from within Microsoft Outlook.
Michael Doros ‘04
Faculty Sponsor: Chris Armen (Computer Science)
Bluetooth technology is a
short-range wireless communication that was originally designed to eliminate
cables between a cell phone and a computer. However, as technology grew
manufacturers found that Bluetooth could be implemented in many more
communication settings. Today, Bluetooth is not only used as a simple cable
replacement in keyboards, mouses, PDAs, and cell phones, but also for the means
of establishing small ad hoc networks between electronic devices. Some of the
devices becoming parts of networks are no longer a computer or PDA, rather
automobiles, kitchen appliances, washers and dryers.
The need for a wireless
communication technology of this kind is evident; however, in addition to
Bluetooth are many other technologies such as 802.11, X10, and Infrared. This
research project looks at the current and future states of Bluetooth in
comparison to not only other technologies, but also world events that could
affect the future of Bluetooth technology.
Meghan Emilio ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Commonly
referred to as Enigma, the German Enigma Machine is a three rotor,
poly-alphabetic encryption machine that was widely used in military and
commercial applications up to the 1950s.
Enigma has historical importance as it was used by both the German Navy
and Army during World War II, and the breaking of Enigma code by the Allies was
credited as a turning point in the war.
This project is a study of the ability for modern day computers to break
Enigma messages. First, a computer
simulation of an Enigma machine was created.
Then the simulation was used to build a computer program to break Enigma
messages. This program was tested on
data of varying size for effectiveness and efficiency. The program was able to break Enigma messages
of substantial length with great effectiveness and relative efficiency, thereby
showing the ability of computers to break Enigma. These findings imply that Enigma is an
inadequate form of encryption for the present day.
34
BED MANAGEMENT DATABASE VITAL SIGNS MONITOR FOR THE POCKET PC
Brad Feld ‘04
Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)
Most
hospitals today manage an increasing number of patients with insufficient tools
such as paper, whiteboards and phone calls to accurately match bed availability
with patient needs. The Bed Management Database (BMD), created by Premise
Development Corporation is an enterprise-wide system that interacts with all
departments throughout the healthcare system to automate the bed and patient
management process. The BMD contains a wealth of information about the hospital
regarding patient flow status and unit statistics. The Vital Signs Monitor adds
the ability for hospital employees to quickly view pertinent information on a
Pocket PC. The feature is implemented via client and server side applications,
which interact with the hospital’s BMD database. The client and server
applications are written in LabVIEW 7.0 using the LabVIEW PDA Module. SQL
Server 2000 is used to implement the BMD database. The system allows a Pocket
PC to make an 802.11b wireless connection to the hospital’s network. Over this
connection, login information and database requests are sent to the server. The
server processes requests, queries the SQL database, runs formatting algorithms
on data, and sends data back to the client. The Pocket PC displays the data in
the form of tables and indicators.
Sam Graefe ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Computers
have the ability to create images that are beyond the possibilities of
traditional artistic methods in terms of complexity and speed. It is also possible to follow the rules of
traditional aesthetics, such as color theory, while generating such a computer
image. Based on these principles, this
project is a user friendly computer program that helps create unique abstract
images. This project creates image types
like fractals, tessellations, and random shapes as well as combinations of
these. However, the focus of this
project is to create images that are practical in the sense that they are
intended to exist beyond the computer screen.
For example, this project can create a complex plan for a glass tile
mosaic that details what colors of tile are needed and exactly where they
should be placed in an actual mosaic.
For another example, this project has the ability to create custom,
unique compositions that are entirely made out of Post-it(R) notes of various
colors. For instance anyone can use
this program to create a plan for a unique and visually stimulating 5’ by 8’
composition consisting of 660 Post-it(R) notes. Programmed in the Java language
this program can be deployed as an applet through a web browser or as a stand
alone application. Beyond what is
mentioned above, this project is designed to serve as a framework for future
expansion and exploration.
36
A SOFTWARE SIMULATION OF AN AES-EQUIPPED 802.11X WIRELESS NETWORK
Matthew Grayson ‘04
Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)
Current
wireless Ethernet networks have many well-known security flaws. The system in
use, Wired Equivalent Privacy, has been deemed insufficient for providing
security and is in the midst of being replaced. The 802.11i standard, which is
currently being developed by IEEE to address current weaknesses, will use a
security system based on the Advanced Encryption Standard (AES). The primary
goal of this project is to evaluate the feasibility of using AES to encrypt
frames (i.e., packets) in a wireless environment. A secondary goal is to
explore the efficiency of implementing AES in software. The simulation being
developed will properly model different aspects of a wireless environment. The
simulation consists of two programs running on a single machine communicating
through a text file that acts as the virtual air space. A third program will
simulate errors that are inherent to a wireless network. The two communicating
programs will be able to recover from such events. A 128-bit AES is being
implemented in software. A public-key cryptosystem will be used to authenticate
parties and establish a key for AES. The implementation will then be integrated
with the 802.11x simulation to provide a secure virtual network providing
authentication, confidentiality and integrity.
Daniel Gyllstrom ‘04
Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)
This
project aims to monitor hard drive disk usage on remote machines from a single
computer. An application of this sort is
practical in that many companies need to store their data on multiple storage
devices because of the sheer volume of their data. With this distribution of
resources, administrators need to manage these storage devices so that they can
monitor resource efficiency and trends.
My project aims to create an application which could be applied in this
situation. The architecture of this
system consists of two important components, the management station and several
remote agents. The management station will scan remote hosts according to a
user controlled scan schedule. When a
management station request is made via TCP/IP to agents installed on remote
hosts, each agent acquires the appropriate operating system data and sends it
back to the management station. The management station collects the resource
data and checks it for threshold violations that have been configured by the
user. If a violation is detected, an
alert is generated to the management station user. The user communicates with the system through
a user-friendly graphical user interface implemented by a Java Applet. The resource data for all scans is logged in
a MySQL database, enabling a history of resource usage to be captured and
viewed. Through this design, this
project helps handle the basic management of network storage system.
Furthermore, the development of this project was instructive in learning
practical networking technology, and in understanding how to manage a
distributed system.
Dragan Levic ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
This is the age of information. The need to collect data is greater then ever. Best way to store large amounts of data is in a database. If database server is available from general internet public it is not very secure. There are many products available that would allow a user to access a database server that is located at some other location. If a person needs to work from home process to access this database becomes increasingly complicated. Program I wrote allows a user to create, manage and search through a database that is located in some distant location with ease. It is a server side run application which allows a user to connect to database securely from wherever in the world without much hassle of setting up a special connection. It can be used from any computer with internet connection. It is primarily made for people with no database servers to be able to create and maintain one, but it can also be used by firms to allow their workers to be able to work from home with more ease. It is open source program, which means that anyone can take my code and work with it to make the program adjust to some special circumstances or needs.
Faculty Sponsor: Professor Chris Armen (Computer Science)
Instant messaging (IMing) has become synonymous with acronyms like AIM, ICQ and MSN and the corporate world has taken Iming to record levels of usage yet. Instant messaging is the act of sending messages over the internet to another computer and instantly being able to see the message and having the capabilities to respond in the same fashion. IMing is a cheap and easy way to communicate among consumers and the idea of businesses utilizing this tool is catching on quick. The purpose of this project is developing software aimed toward corporations in need of a communications product that is controlled and regulated by the company’s IT department and can be secure, reliable, and customizable. This software runs on a windows platform and is coded competely in Java with a XML backbone.
A.J. Pattison ‘07, Alex Spurrier ‘07
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
The PURPLE machine was used by the Japanese military during World War II to code messages and send these, secretly, to their embassies. Two years into World War II a group of Americans, led by W.F. Freidman, cracked the PURPLE machine. This led to insight not only about Japanese forces, but about the movement of Hitler’s troops as well. The PURPLE machine consisted of two main components, the switchboard and a series of four rotors to encode the message. The switchboard encoded the message in a simple substitution cipher, and then the rotors would further encode this message in a very arbitrary manner. The rotors will turn in the same fashion as an odometer. After twenty-six shifts of a rotor, the following rotor will shift once. Therefore, there are twenty-six to the fourth power different possible pathways for each letter. After the message is passed through the rotors, it cannot be analyzed using frequency analysis. A Java program was written that simulates the PURPLE machine by implementing the PURPLE cipher. This program simulates the switchboard by randomly assigning an alternate letter to each letter in the message. Then, a series of four strings represent the four rotors of the machine. These will allow the letter from the message to cycle through as it would in the original machine and be assigned another random letter. The actual settings of the real machine are not known, so a randomly sorted alphabet is used to simulate each rotor. This program is important because studying algorithms such as this leads to the study of how to break the cipher. This could be further applied into another computer program that breaks this code as W.F. Freidman did sixty-five years ago.
James Piette ‘07, John Giammattei ‘07
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
The ‘RSA’ is a commonly used cipher because it has yet to be broken. The RSA cipher works because it uses a trapdoor function which is a function that may be performed one way, but can not be reversed. The particular function that ‘RSA’ cipher utilizes is the product of 100-digit prime numbers, because there are no algorithms that can factor that product. If a message is encrypted using the product of the prime numbers, only the two people that know the prime numbers can decrypt the message. This is all based on Euler’s Totient Theorem, which means that if two numbers, T and R, are relatively prime, with T being the smaller number, then when we multiply T with itself phi(R) times, and divide the result by R, the remainder will always be one. The function phi(R) is the number of numbers between 1 and (R-1) that are relatively prime to R. Using these ideas, Java applications were written to mimic the RSA cipher. What this all entails is that, even though public keys are being exchanged between the encoder and decoder, if an observer does not have access to the necessary private keys, than the message can not be deciphered, which is why the RSA cipher is applicable to today’s technological world.
Hope Roth ‘04
Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)
The
World Wide Web is a fantastic medium for meeting new people with common
interests. The project is a web site geared at Independent Musicians (those
without a major label affiliation). The goal is to create a forum where
musicians can search for other musicians in order to meet new people, find new
band mates, trade equipment and advertise performances. Users create an account
with a username, password and basic personal information. They are then able to
log into the site in order to access the various features. The site is coded in
the scripting language PHP with a backend MySQL database. The entire project is
served off of a personal computer, a G5 Macintosh. It uses the built-in Apache
web-server with PHP enabled. The project consists, mainly, of a series of HTML
forms, PHP scripts to handle the forms and queries to insert, update and
retrieve information from the MySQL database.
Karen Roy ‘04
Faculty Sponsor: Professor Chris Armen (Computer Science)
The
Teacher Computing Competencies Self-Evaluation Tool is an application that
provides schools with a means of assessing teacher competency in computing. The
Connecticut State Department of Education (CSDE) has developed certain
criteria, which schools across the state are required to meet in their
Technology Plans. One section of the criteria requires that the schools have a
strong evaluation component, including Technology Competency expectations for
students, teachers and administrators. This reflects the requirements set forth
in President Bush's No Child Left Behind (NCLB) policies to support education
practices with real data. Schools across
the state of
44
fatChicken.com: A BARTER/TRADE E-COMMERCE SITE FOR UNIVERSITY STUDENTS
Jacob Schneider ‘04
Faculty Sponsor: Professor Chris Armen (Computer Science)
University
students have a great deal of excess possessions: DVDs, CDs, video games, etc.
The purpose was to build an operational website that provides users (initially
college/university students) with a virtual marketplace to trade these objects.
Research in software architecture, human-computer interaction and design theory
contributed to its development. fatChicken.com is built in three layers. From
top to bottom: the user interface (HTML/Java Server Pages); the application/business
logic (JavaBeans); and the backend database (mySQL). The site is Linux-based
(RedHat 9.0) and uses Apache (3.0), Tomcat (4.0) and mySQL (3.x) servers.
fatChicken.com physically runs on a 3 GHz Pentium 4 CPU; a 80 GB hard drive;
and 512 MB of RAM. During a beta-test in mid-March, fatChicken.com performed
flawlessly with over 20 active users owning 70 items and proposing 25 trades.
No data was lost, corrupted or compromised. Based upon these trials,
fatChicken.com may go live in mid-April.
Andrew Schurr ‘04
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
A
neural network is an artificial intelligence construct that mimics the neuron
structure of the human brain. Using neural networks, we can solve many problems
of learning and prediction that have proved resistant to other methods. This
project attempts to predict the results of thoroughbred horse races using a
back-propagation neural network. The network takes various pieces of
publicly-available horseracing data as inputs and passes them through a series
of simulated neurons. Each neuron “fires” according to its internal weight,
passing data through the network’s structure and eventually resulting in a numerical
output that predicts the finish order of the horses. Through a series of training cycles where the
expected output is known, the individual weights in the network are gradually
adjusted to produce more accurate output results. The inputs for the network
include previous race times for each horse, track odds, speed figures, as well
as several sets of win/loss records for each horse, trainer, and jockey. Early
results indicate that this type of network has some predictive ability,
correctly picking around 25-35% of winners, although the full extent is still
being explored.
46
AN EMPIRICAL STUDY OF THE USE OF AN NGRAM BASED GENETIC ANALYZER FOR BREAKING POLY-ALPHABETIC CRYPTOGRAMS
William Servos ‘06
Faculty Sponsor: Professor Ralph Morelli (Computer Science)
Genetic algorithms (GAs) are programs that use simulated evolution for solving search and constraint satisfaction problems. In this study, I use a GA to solve poly-alphabetic cryptograms. Poly-alphabetic cryptograms use a rotation of random permutation alphabets to encrypt a message, where there is a different alphabet for each character in the shift keyword. This increases their complexity when compared with simple substitution cryptograms, which only use one permuted alphabet for encryption. A permuted alphabet has n! possible arrangements, where n is the number of elements in the original alphabet. A poly-alphabetic cryptogram has as many possible arrangements for each distinct alphabet it uses. Utilizing a Java encoded tetra-gram, a four letter sequence, based analysis; I conducted empirical tests to determine the range of effectiveness of my algorithm on keys of varying complexity over a variety of text lengths. The length and variance of the characters in the alphabet shift key was tested. Similarly, the content and length of the text decrypted was varied to test the general effectiveness of the algorithm. It was found that increasing the shift key’s length caused a great drop in the success rate of the algorithm. It was also found that the length of the text analyzed greatly affected the success, particularly on longer shift keywords. This project was successful in determining a general limit of effectiveness for the length of the shift keyword and a general minimum range of effectiveness for the length of the text analyzed.
Rageim Walker ‘04
Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)
Annuities
are useful financial instruments. Their
tax-deferred status facilitates client’s ability to grow wealth. They offer income and benefits that protect
your investment and/or guarantee a rate of return. Annuities are also very complicated. When many clients enter into an annuity
contract they have little idea of what they are getting into. In many cases financial advisors are not even
sure what they are selling and therefore can’t match individual clients with
the proper annuity. This project will
help to resolve this discrepancy. It
will calculate the costs and benefits of owning a specific type of annuity in
up and down markets in order to properly match an individuals risk and
preferences to an appropriate annuity.
Java is used as the programming language for the project. An applet will be created to accept user
input and output results. In its final
stage, the program will potentially be used by financial firms or institutions
to better guess the right investment for their clients or for clients to use
themselves.
Adam Williams ‘04
Faculty Sponsor: Professor Peter Yoon (Computer Science)
With the increasing disk capacity of modern computers, it is common practice to store large volumes of digital images. In order to maximize the usefulness of this data,
it is
necessary to have effective systems for searching these images based only on
their visual content. Content-based image retrieval systems
aim to accomplish this goal. Such
systems generally work by first analyzing or “indexing” each image in the
dataset in order to extract its distinguishing features. This information, usually stored as a vector,
is then placed in memory so it can be searched later. Queries are performed by analyzing a query
image to produce its vector representation and then comparing this vector to
the ones already in memory to find the best matches. The crucial step is the indexing; it must
capture enough information to be useful while remaining small in size so that
memory requirements are practical. This
project focuses on the development of a new indexing technique called a joint
correlogram. This method works by
exploiting the statistical properties of several pixel-level image features
such as color, gradient intensity and texturedness. Specifically, given a certain pixel in the
image, it computes the probability of finding another pixel with the exact same
features at a certain distance from the given pixel. The correlogram has been shown to be
effective when the only feature considered is pixel color; we hope to show that
incorporating additional features will improve its recall performance. We will also compare this method to two
older, similar methods known as color and joint histograms. The tests will be performed on our own
content-based image retrieval system with a dataset of 24,000 images of
heterogeneo
William Zeller ‘06
Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)
Public-key
cryptography is widely used today to protect information. The RSA cryptosystem
is a type of public-key cryptosystem and uses the assumption that the product
of two primes is extremely hard to factor. Many variations of the RSA
cryptosystem have been proposed. The
goal of this project is to find ways to implement the system as efficiently as
possible using the C programming language. In addition to implementing an RSA
cryptosystem, this project included a prime number generator, functions to
handle large numbers, and multiple modulo and multiplication functions.