Prospective CS 461/462 Projects


Latest update: January 7, 2005


Proposer Proposer's Email Project Title Project Description
Tracy Arras arrast@engr.orst.edu Bridge Load Analysis An interested person has approached me to develop a software program that analyzes bridges for the load carrying capacity. Truckers request permits from organizations to use routes that require passage over a bridge to carry their load. An analysis needs to be conducted of the weight of the truck, load, number of axles and the given specifications of the bridge (span, material, etc.) to determine if a permit can be issued. Tabular and graphical output would be nice (i.e., shear and moment diagrams). The program must be easy to use.
Brent Leback brent.leback@st.com Compiler Development and Testing Tools ST/PGI, www.pgroup.com, provides high-performance compilers and tools for x86 and x86-64 architectures. As our business has grown, and as chip architectures have added new capabilities, our need for extensive quality assurance processes has also increased.

This project is specifically targeted to improving our internal testing infrastructure for math intrinsics and other small, common, operation optimizations. Library routines, especially math library routines, by their very nature are easy to write tests for. Each function may contain certain special cases, but for the most part we just want to blast as many inputs as possible into the function, then test correctness, accuracy, and speed. For single precision, single argument functions, it is even possible to test every input. And, then, run the same tests on several different architectures.

I have spent some time in the year 2004 putting together an intrinsic testing infrastructure, written in Python, that works pretty well for many cases. But, it has much room for improvement, when I tried to extend it to integer operations (divide optimizations), and more complicated F95 intrinsics. I chose Python because it is portable across Windows and Linux (a requirement), is easy to be scripted and also create a standalone GUI, and is freely available. And I like the language :).

So, the project I have in mind is to treat what I currently have as a prototype, define the requirements needed to extend it, then implement it into a working part of our QA process.

David Conklin david.conklin@oregonstate.edu Make Biomap more usable Biomap is a dynamic general vegetation model which runs under Solaris and Linux. It is the subject of a short course, FS599 sec 02, that I'll be teaching in January: http://catalog.oregonstate.edu/CourseDetail.aspx?subjectcode=3DFS&coursenumber=3D599

I'm finding that the Unix environment, while pleasant for development work, is a barrier to many potential users of Biomap. I would like to propose a project for your senior projects course to "productize" Biomap.

Biomap is a C program containing about 30,000 lines of code in 17 source files. It simulates vegetation and biogeochemical dynamics at a site, taking site characteristics and daily climate files as input. Simulation of one location for 99 years takes about 30 seconds on my Sun workstation. Simulating a grid of 3200 points across the North American continent takes several hours and I usually do the gridded runs on a Beowulf cluster which has about 20 processors. A 140-page technical document describing Biomap is available from the FSL ftp site: ftp.fsl.orst.edu /pub/conklind/BiomapTechnicalDescription1Jul04.pdf

Donald Heer heer@eecs.oregonstate.edu DataLogger to Improve ENGR201 The DataLogger is a hardware system used in ENGR201 that allows students to interface to a small embedded system that can take measurements at varying rates for a period of up to 5 days. The present version of the DataLogger interfaces with any general purpose terminal program to send and receive data with a PC via a serial port. We would like a new windows based tool that would interface with the DataLogger to improve usability by students. Additionally having this tool will cause changes in the firmware of the DataLogger that will need to be rewritten. This project has topics that include:
  • C for embedded systems
  • Serial Communications
  • GUI design
  • Error Checking
Ken Saul ken.saul@hp.com Print Spot Memory Encode and print tiny inkjet spots as a printed representation of binary information. Also work on the read-back (scanning and decoding) to demonstrate the entire concept of Print Spot Memory. There are two separate aspects to this:

  1. Coding and printing the sheet of spots
  2. Scanning and decoding the sheet of spots
Nima Behkami nbehkami@lsil.com Factory Application Transaction Server The purpose of this project is to develop a Transaction Server to be used to integrate multiple factory applications and data sources. Applications to be integrated will include APC (Advanced Process Controllers), SPC (Statistical Process Controller) and FDC (Fault Data Collection) systems.

The project deliverable will be Transaction Server in the form of software. The software will act as a transaction/message routing mechanism for a subset of related applications at LSI Logic Gresham Factory. The transaction will include the following high-level capabilities:

  • Configurable Interfaces for plugging in multiple applications and data sources.
  • Capability to execute long running commands/transactions to completion.
  • A queue to record and process multiple requests from multiple sources.
  • A detailed trace/activity log.
  • A Graphical User Interface (GUI) to enable monitoring transactions in real-time by an administrator or Engineer.
  • A scheduling and prioritizing mechanism.
  • Use web services and xml as communication protocol and format

The project will expose the interested students to hands-on business application modeling, software architecture, distributed programming, web services and transaction management.

Mike Bailey mjb@cs.orst.edu Health System Monitoring Work with Oatfield Estates, a senior citizen center near Portland. They have created some very sophisticated patient and health monitoring systems, but need expertise in recording the data and accessing it over the web. (See this article. This could very well be the model of the future in assisted living.)
Raghu Settaluri raghu@ece.orst.edu Filter Design Tools Over the years, I have developed the Matlab code for the synthesis of millimeter-wave E-plane filters in various configurations. The analysis was based on the full-wave solution of Maxwell's equations and is considered quite accurate. The synthesis tool that I have developed can output the physical parameters of the filter for the purpose of final design. Currently, no known design tools are available for this type of high frequency filter design (frequencies 20 ~110 GHz) that are fast, yet accurate and efficient. To give you an idea, currently available commercial software may take hours of computational time to even analyze the characteristics of such a designed filter and synthesizing the filter will be beyond the practical scope. My code can generate the design in minutes with high accuracy. Many of the designs have already been validated by the fabrication as well as with the commercially available analysis software.

I have Matlab code that can output different physical configurations for such a filter design and I am looking for an intelligent GUI, which can run as a stand-alone software on Windows based platforms. This might require creation of executable version of the Matlab code that already exists. The interface may provide the user an option to synthesize the filter in a user-specified environment and analyze the performance. Other features may be discussed later.

Molly Shor shor@ece.orst.edu Stduent Advising Database I'd like some CS senior design students to work with me on designing a database approach to improving our ECE advising/graduation audit system for me. Once the basic database design is done - consulting with me - they would teach me enough to allow me to write software to solve the rest of my problems - upgrading and maintaining the database.

I have experience in proceduring programming (Macro 11 assembler, Fortran, C, APL, Visual Basic), databases & algorithms, OS, Excel, Visual Basic programming for Excel. I've written PRO school audit and graduation audit programs using Excel and Visual Basic, but I do not have enough database background to accomplish my additional goals on my own. With the input from the students, I hope to get a good initial design and the understanding of how to maintain and upgrade the system over time.

Kent Sumner kent.sumner@oregonstate.edu OSU Artwork Database Part of my job is the conservation and restoration of the art collection in the Memorial Union. We have over 350 pieces and they require a lot of paper work. We keep inventory records, provenience/acquisition records, biographical information on the artists, cleaning reports, condition reports, restoration records and a variety of photo on each piece of art work. Depending on a report is filled out, it triggers the type of action that needs to be taken with the artwork.
Rick Anderson rick.d.anderson@tektronix.com Action Item Tracking Tool We have a need for an easy-to-use Action Item Tracking Tool. The tool should be web-based for easy access across multiple development and management platforms (Windows, Unix, Linux, etc.) and to support various international sites.

The tool should allow users to enter a new action item, update/close an open one or retrieve reports on previously entered action items (for example, open). The tool should also have a reminder feature which would send email to various parties that their action item is approaching the due date or is past due. The typical action item would consist of a unique id number (generated by the tool), description of the action item, assigned-to user id, status (a set of to be determined states), expected due dates, action item answer and some history (date open, reassignment history, etc.).

Mike Teixeira teixeira@cs.orst.edu Online Lab Signup Paul Paulson came to me requesting me to make a online lab signup form for his CS 372 class. This same project could also be used for an online advising signup form and Hovland room 10/104 sign up form.
Matt MacClary macclary@trsnet.net Unmanned Autonomous Vehicle Control Several ideas:

  1. Module foundation - Build a foundation for a pluggable sensor network so that the sensor network can have multiple pseudo sensors which are able to create data for the sensor map and for the object map.
  2. Vision system : Given two usb camera, a baseline distance, build a system that can identify objects and put them into the object map.
  3. Line follower: Given a stream of video and a location indicator, create commands that cause the machine to follow the edge of a road.
  4. 4D map representation: create an efficient map representation that returns a view of the world as a function of time.
  5. Path planning: create an efficient method for choosing on optimal or near-optimal path using arbitrary off-road type terrain.
Pam Van Londen vanlondp@cs.orst.edu Da Vinci Days Online Event Booking Develop an online event booking system using PHP and MySQL for Corvallis's Da Vinci Days.
Mike Bailey mjb@cs.oregonstate.edu Holodeck Client-Server The OSU Graphics Lab has a "True 3D" device. It is on its own dedicated PC. Rather than porting applications to run on that same PC, I would like a server to run there so that various client applications can send their data to it for subsequent display. Both the client and server sides of this application need to be written in C or C++. A knowledge of computer graphics would be helpful, but not absolutely necessary.
Mike Bailey mjb@cs.oregonstate.edu Tsunami Simulation Visualization OSU is involved in projects to simulate tsunamis. The recent catastrophic tsunami in the Indian Ocean has confirmed why this is an important field of study. This project is to create 3D visualizations of the results from the tsunami simulations. A knowledge of the OpenGL graphics API is necessary to do this project.
Eugene Zhang zhange@cs.orst.edu. Texture Synthesis Texture synthesis refers to creating visually pleasing patterns on an object, and it has many applications in computer graphics. In this project, students will implement a texture synthesis algorithm for planar domains and for curved surfaces. Through this project, they will develop a first-hand experience working with curved surfaces and texture generations.
Eugene Zhang zhange@cs.orst.edu. Fluid Simulation on Surfaces Fluid simulation has become popular in entertainment industry (the perfect storm). In this project, students will implement an algorithm for performing fluid simulation on curved surfaces. The basic idea is to write necessary components to solve the discrete Navier-Stokes equation on a mesh surface. Through the project, students will have a first-hand experience working with fluid simulation and with curved surfaces.
Eugene Zhang zhange@cs.orst.edu. Shape Matching Shape matching is one of the fundamental tasks in 3D modeling. Basically, shape matching refers to finding shapes that are similar to a given description that is not necessarily text-based (as you might do on google.com). There has been much research in this area, and many good algorithms exist. In this project, the students will implement several similarity metrics between shapes and experiment with their own metrics.
Eric Mortensen enm@cs.orst.edu. Graphical-User Interface (GUI) environment for development of and interaction with computer vision algorithms This project consists of building a graphical environment to be used as a research development platform for various computer vision algorithms. Knowledge of computer vision or image processing is not necessary (though some experience in either would be helpful). This project is to be written using C++ (with a strong object-oriented emphasis) and a cross-platform graphical windowing library such as Qt or FLTK. The goal is to provide a graphical framework that can be used by computer vision researchers at Oregon State Univ. (i.e., Dr. Mortensen and his students) to port existing computer vision methods and develop new computer vision techniques. The graphical environment should support interactive image viewing and editing (something like a very basic Photoshop interface) as well as a "visual programming" interface that allows a user to link together various functions/methods (represented as icons in a "Workbench" area) to perform a desired task. For example, in the "User Interaction" mode, the user could open an image using either the "File" menu or "Open" button, edit/manipulate it with a set of tools (again, similar to Photoshop or GIMP), and then save it (again using the "File" menu or "Save" button). Alternatively, the user could open an image by placing a "Load Image" icon in the "Workbench" and filling in the parameters (i.e., the file name). The user can then link the output of this icon with the input of of one or more other icons that manipute the image data. The output of these icons could in turn be linked to inputs on other icons (such as viewing the image or resulting manipulated image). Some of the icons may represent interactive processes/ methods that would require the image to be displayed and interacted with (such as defining a segmentation or specifying points on the image). These icons would cause the program to temporarily enter the "User Interaction" mode to complete the task and then return the result of the interaction back to the "Visual Programming" environment.
Ron Metoyer metoyer@cs.orst.edu. Web Repository for Motion Capture Data Motion capture data is used to drive computer graphics animations. I have the need for a web repository for motion capture data. This would probably require setting up a database and a front end for accessing the data.
Brad McRae brad.mcrae@nau.edu Gene Flow Gene flow is the movement of genetic material between populations of plants or animals via migration. Understanding patterns of gene flow over large areas (e.g., how much genetic connectivity there is between grizzly bears in Yellowstone and Alaska), is important for endangered species conservation.

Circuitscape is a gene flow model which borrows algorithms from circuit theory to predict connectivity between populations in heterogeneous landscapes. It turns out that effective conductance in a network of resistors is closely related to effective migration (a measure of gene flow) in a network of populations. The circuit model uses standard matrix algebra to solve much larger (300x300+) arrays of populations than conventional population genetic techniques can handle. So, the circuit theory approach works out to be an efficient way to approximate gene flow in large arrays of populations or large maps of continuous habitat. The model is currently programmed in Java, and has some computational limitations that I would like to improve upon.

Deliverables: Re-coded program in Java, C, or other language that allows easy download and use by novices. Appropriate language to be determined based on students' interests and ability of the language to quickly store and manipulate (e.g., invert and multiply) large sparse matrices (100,000 x 100,000 or larger). Use of Java may require calling compiled code to speed up calculations. Project requires understanding of, or willing to learn, basic matrix algebra. Interest in conservation and GIS mapping a plus. There are lots of possibilities for enhancing this program depending on students' areas of interest. These could include application of finite element techniques to solve even larger networks, 3D visualization tools, or user help files accessible from within the program.

The current version of Circuitscape can be found here.

John Schmitt schmitjo@engr.orst.edu Wireless Technology in the Classroom The basis of the plan is to leverage technology in the classroom, specifically the Wireless initiative that has been adopted by the College of Engineering this year. One of the difficulties in teaching large classes is determining how well the students understand the material. Students are hesitant to answer or ask questions in front of their peers and often the students are so busy writing down the notes that they have not had time to process the material fully to formulate the problems that they are having. Ultimately, this leads to questions that go unasked and unanswered, and a learning gap begins to form. This, of course, is the gap between what the professor believes the students understand and the students' actual grasp of the material. Only when assessment is performed, through homework assignments, quizzes or exams, is the extent of this gap clearly visible to the professor. While there are methods that can be used to help reduce the size of the gap and the delay in recognizing the gap, we can leverage existing and new technology to provide quicker and better assessment for all students.

Since the college of engineering has required its incoming freshman to purchase wireless laptops, it makes sense to try to make use of the available technology in teaching. My idea is rather large, so it may make sense to split it and only pursue one part or have separate groups pursue different parts. I present the whole thing in two parts in an effort to give an idea of how it all fits together.

The first part of the idea is to incorporate active learning techniques into the classroom through by having students interact with the course website throughout class. To do so, we would require all students to bring their wireless laptop with them to class. At the start of the quarter, students would randomly be assigned a student number and a password. Students will use this information at the start of class to login to the class website. This information would be stored through the rest of the lecture and would be used to identify students to the professor, but keep them anonymous among their peers. The class website would then be used throughout lecture to illustrate key points, but more importantly, to gather assessment data during solution of example, discussion, and design problems. During the course of lecture, problems would be posed to the class based on the material just presented. These problems could take the form of an example problem, discussion problems, or design problems. Example problems could be broken down into the steps that need to be performed in order to obtain the desired solution. If I were to lead the class through the example problem, I could present (via the website) different alternatives for the next step of the problem. I could then ask the students to select the next step from a series of choices and submit their choice via the website. This information would be written to a database and could be recalled and presented in bar graph form to show what the students thought the next step was - and what the correct answer actually was. In this manner, I could obtain real-time assessment of student learning that could be used to modify lecture on the fly. Students would also be able to tell how well they were performing relative to the rest of the class, which may provide more impetus for them to brush up on the concepts if they are behind. At the end of class, this information could also be loaded into the professor's grade log so that when a student entered during office hours, the professor would have a much better idea of their grasp of particular subjects and where they were in their learning. This part of the project is obviously a relatively straightforward web design/database design project. It would be nice if it could be generalized a bit so that technology challenged colleagues could also use it in the future for lecture creation.

The second part of the idea is to use instant messaging technology for communication and assessment during the solution of group design problems. The idea is to have 5 tabbed "question" chat windows open that the whole class can access. While solving the problem, students can ask a question via one of the 5 question windows. If any other student has the same question, they would be able to press a button on that question window to indicate that they would also like it answered. These question windows could then be quickly ranked in terms of importance (based on the number of students who share the same concern). At this point the professor can answer the question and visually mark the chat window as "answered". The whole class, if they so chose, could then view the answer to the question. In the background, the text of each of these chat sessions would be stored in XML format. Additionally, the student numbers of all students who had the same question would be recorded via XML. This data would be uploaded to the database after class for further assessment. This methodology has several advantages. Students who are comfortable with the material do not have to view the questions and answers. The whole class does not have to be interrupted for a single question - especially if only one person has that question. It also provides a measure of how unclear a particular concept is, as indicated by the number of students who have the same question. This can be used to modify lecture, if necessary, to explain the concepts that are unclear. Additionally, the professor could get further assessment information by viewing which students had similar questions. While most messaging technologies have APIs available, I have not had the time to figure out how they could be used to create the above tool. I really don't know that much about messaging technology, though, so it may just be easier to design something from scratch...

Alan Fern afern@cs.oregonstate.edu Supporting AI Research on the Game of SokoMind SokoMind (sometimes called Sokoban) is a popular computer puzzle game that can be found here. The game is particularly interesting to researchers in Artificial Intelligence (AI), as existing AI planning techniques perform very poorly in comparison to humans. The goal of this project is to support AI research by developing a web-interface to the game of Sokomind with the following three features:

  • Allow humans to play games online and record the moves in those games in a central database.
  • Allows users to design levels of the game.
  • Allows users to run one or more of the state-of-the-art AI planners on Sokomind levels. (This involves interfacing to currently available AI planning programs, rather than developing the AI technique(s) from scratch.)

The long-term aim of this project is to develop AI techniques that can ``learn'' from the database created in order to improve performance. The development of such a learning technique is not intended to be part of the immediate project---however, a motivated group of students may make progress in that direction. To complete this project students should have experience or interest in developing web-based interfaces. Knowledge of AI planning techniques is a plus, but the necessary ideas can be learned during the project.

Alan Fern afern@cs.oregonstate.edu Making Pine Smarter Pine is a popular UNIX/LINUX-based email interface. The primary goal of this project is assist the user in filing email messages. Currently, to save an email message the user must manually enter the destination for the message (e.g. osu/people/bailey, or advising/students/john). This takes a significant amount of time over the course of thousands of messages and is even more time consuming in cases where the user forgets the proper location for a particular message.

This project will enhance Pine with the ability to predict where a message should be stored. The new version of Pine should be able to automatically customize to a particular user by learning where messages are likely to be stored based on observing where the user stores previous messages. When the user decides to save a message Pine will display a short list (2 or 3 items) of the most likely storage locations that the user can select from. Ideally the list will contain the correct location, which will save the user from needing to think about the location and entering it manually. Note that if a message is not "similar" to any previous messages (e.g. it is from a new address) then the system has no basis for making a prediction. In this case the user will manually save the message, providing Pine with a basis for making future predictions.

Initially the predictions will be based on only the email address(es) associated with a message. More sophisticated techniques can be considered as time allows. But it is likely that very simple prediction techniques will take care of most of the email messages and save significant time. In addition to the predication part of the the project, the students should also provide a search routine that facilitates performing various types of searches over the email database.

Milo Koretsky,
Sho Kimura
koretsm@engr.orst.edu
kimuras@engr.orst.edu
Simulated Fabrication Room We are currently creating a virtual Chemical Vapor Deposition (CVD) reactor. This project will teach engineering students design of experiments as they operate a CVD reactor, clean wafers, and take measurements in a fab setting. We seek to contract out the sub-project of developing a multimedia-based fab environment. The software package developed as the CS senior project should allow students to navigate through several rooms with the mouse, and allow them to view the fab equipment, run the processes and conduct other engineering tasks. It may be 2D or 3D and can be produced with or coded in any software that integrates well with Unix and the Web. This user front end will eventually be integrated with a database of student performance and a numerical simulation of the reactor. These latter two elements are already in development.
Rob Peattie peattie@engr.orst.edu Conversion of CFD Flow Field Data for Display NEEDED: student(s) with skills and interest in graphics and scientific data display.
Computational Fluid Dynamics (CFD) results generated from certain commercial CFD packages are usually only graphically interpretable by a program within the CFD package. The CFD package we have been using is CFD-ACE, which records all the results into one file. Computed CFD results contain the geometric information, the grid points of the model and the computed flow results associated with each grid point. It would be of great convenience if the results computed by CFD-ACE can be converted to other formats more suitable for display purposes and graphical manipulation. In particular, TecPlot (Amtec, Inc., available in the Peattie laboratory) is a widely used standard format that would be a desirable means of displaying our CFD data.