|Software Design Guidance: A Study of its Effectiveness & Extensibility
|Vaporware and Lock-in:What's the Connection?
|Teaching a Second Language: An Interactive Approach
|Mark W. Weston
|Cryptography Problem Generation
Advisor: Prof. Cass
Design guidance is our effort toward making software design easier and less time-consuming. With this goal in mind, a tool was developed to allow a designer to get automated feedback on a design while representing it graphically. The program checks the design against that prescribed by a design pattern and warns the designer of inconsistencies between the two. So far the tool fully supports Model-View-Controller and experimentation has shown that it is indeed effective in helping the designer apply this pattern.
Advisor: Chris Fernandes, Stephen Schmidt(Eco)
Living in the ‘technology era,’ we have come to expect rapid technical innovation. While new technology is quickly invented, it may not be turned into new products for consumers to buy as quickly. Recent research has indicated that a locked-in market (a market that has conformed to a standard) can inhibit progress. This project looks at how vaporware announcements (deliberately false preannouncements of upcoming products) affect a locked-in market. By simulating a locked-in market where producers are allowed to make vaporware announcements, we can see how technological progress is affected. In this experimental structure, we are unable to determine the effect of vaporware, but we were able to see that truthful products announcements inhibit progress. By observing the effect of vaporware announcements, we can better understand the potentially problematic role that they play.
Advisor: Prof. Cass
In response to the demand for a variety of teaching materials in the classroom, we developed an electronic tool to help engage students in learning new languages. The tool allows an instructor to create word puzzles and allows students to play those puzzles over the internet. The puzzle engine can handle simple puzzles and combinations thereof to create more complex ones. In this work, we describe the assumptions we made in order to make the puzzles as general as possible.
Advisor: Prof. Hemmendinger
All too often these days a seemingly safe website will install programs that can track computer usage, cause annoying popups, or do a myriad of other things that you never agreed to. These programs, known as ‘spyware’ or ‘adware,’ are the bane of computer users everywhere. While there are numerous tools available to detect and remove spyware from a computer, none of them can get everything. The problem is that these tools work by simply scanning a computer for files that are on a large list of all known spyware programs. Anything not on the list is ignored, and this can cause certain spyware programs to escape detection. I have developed a C++ program to detect spyware in a completely different way. Spyware is found by searching for patterns that it commonly exhibits, using traits such as its file size or creation time. The result is a program that can detect spyware without relying on a list, avoiding many of the problems suffered by existing spyware removal programs such as having an incomplete list or having to constantly update it.
Mark W. Weston
Advisor: Prof. Brian Postow
It is common for professors to create their own homework assignments. This gives them the most control over the kind and amount of work their students are doing. Creating homework assignments in a math course can be particularly laborious, sometimes requiring a professor to work through many problems to find one that is ‘just right’. We decided to create a tool to assist in this problem generation process for Union’s Math 221 Mathematical Cryptology course. First, we specify a set of metrics for a problem type. These metrics are properties that describe what we want a solution of our problem type to look like. They specify the kind and amount of work that went into producing the solution. We then use a generate and test strategy to generate instances of a problem type, solve them, and test the solutions against the desired metrics. Upon success, we print out the problem and the full solution as a student would solve it. We successfully generate thirteen problem types, removing a substantial burden from the professor of the course.