<- Back to Report Page


COS 450 Directed Research Proposal

for Interterm, 2000

Instructor: Dr. Diller

Matt Oquist

11/22/1999

Area of Study

The effects of implementation language choice on code structure, data structures, and project feasibility.

Background

Of all my computer science classes, my favorite has been Introduction to Artificial Intelligence. I thoroughly enjoyed the projects I did for that class. My favorite project was our semester project, an implementation of an artificial game-player for the board game Quoridor. This program was written entirely in Allegro Common LISP, using Allegro's provided GUI tools.*

Reason for Study

During the completion of our Quoridor game-player, our problem solving methodology was profoundly affected by our choice of LISP as the implementation language. I first learned the concepts of programming using the language C++, and I am interested in the differences between implementation of the same problem in LISP, and in C++.

Objectives

1. To port my Allegro LISP Quoridor game-player to either Visual C++ or Borland C++ Builder.
2. To document the primary differences in code and data structures, in order to study these differences in-depth.
3. To improve upon the implementation in case of poor original design.
4. To develop a well-informed analysis of the following:
    a) The process of porting from LISP to C++.
    b) The design differences between symbolic list processing and numeric processing.
    c) The design differences between LISP and C++ code.
    d) The feasibility of using either language to solve a given problem.
5. To compare the efficiency of the two implementations.**

Significance of this study

This study will give me a greatly increased understanding of both LISP and C++. It will help me to better understand the advantages and limitations of symbolic and numeric processing. It will develop my skills as an independent worker, and it will contribute to my experience in a way that no other project (to this point) has done.

Expected findings

I expect to find that the C++ implementation of this program will contain more code, but (if time allows comparison) I expect it to use less processing time, as well. I expect to encounter difficulties in porting some parts of a symbolically processed program to a numerically processed language.

Gantt Chart

(Darker shading indicates higher priority/emphasis.)

I will expect to meet with my overseeing professor on a regular basis (possibly Tuesdays and Thursdays) throughout the course of the project.


* Matt Mastroine and I were partners in this project.
** If time permits. This would require additional coding in both implementations.


<- Back to Report Page
<-- Back to Quoridor Main Project Page