1. The Project Proposal
The purpose of the project proposal is to set definite goals.
Students are expected to formulate draft project proposals once an
overview of the course has been given. The instructor shall
provide ideas for possible projects. However students shall not
be constrained to choose from among projects suggested by the
instructor. Students may formulate proposals based on their own ideas.
Students may be required to report on past projects as part of the
process of formulating project proposals.
Students must have at least one draft proposal with a clear description
of the expected output. An introduction and background
information may help to provide some context for the proposed
work. Students may propose projects individually or in
groups.
If several groups submit similar proposals, the instructor shall have
the final say as to which group would be allowed to pursue the
project. This may be based on various factors such as who
submitted proposals first and the quality of the proposals.
Students may submit more than one proposal. There is no guarantee
that any proposal submitted would be approved.
2. Contents of the Project Proposal
The appropriate contents of project proposals may vary depending on the
project proposed.
In general, a project proposal must set definite goals. These
goals must be clearly defined. These goals must be measurable.
A detailed timetable is usually desirable along with descriptions of
the roles of various group members in the project. This usually
demonstrates that the students have a good grasp of what the project
involves, since this implies that they are able to state the project's
goals in terms of smaller tasks. A detailed methodology is
desirable for the same reason.
A good introduction, literature review and theoretical background may
be helpful in motivating the project and setting the project in
perspective.
3. The Project Proposal Grade
The Project Proposal Grade is an assessment of a student's performance
in the formulation of a proposal for a course project. The grade
is based on all aspects of a student's conduct and performance relating
to the formulation of a project proposal. A 10-pt scale is used
in grading the student's performance. Only integral scores are given.
The grade considers the students initial efforts at coming up with a
project proposal, attendance and participation in meetings called to
discuss project proposals, a student's initiative, and actual
submission of an approved final project proposal acceptable to the
instructor.
Each of the following questions corresponds to roughly one point in the
10-point scale:
* Did the student submit at least one project proposal with a
description of the scope of the project?
* Did the student submit at least one project proposal with a
sufficiently detailed description of the goals of the project?
* Did the student attend a significant number of meetings called to
discuss the project proposal?
* Did the student attend all meetings called to discuss the project
proposal?
* Did the student show enough initiative in finalizing the project
proposal?
* Did the student have a good grasp of the scope of the project?
* Did the student contribute to discussions on the project proposal?
* Did the student submit the approved final proposal on time?
* Does the final proposal clearly define the scope of the project?
* Does the final proposal have a reasonable timetable acceptable to the
instructor?
The first two items deal with the submission of an initial project
proposal. Students who intend to work together may submit
proposals jointly. The next five items concern a student's conduct in
finalizing the project proposal. The last three items concern the
quality of the final proposal submitted.
These points are presented here as a guide to students as to what is
expected of them during the proposal formulation phase of a project.
The project grade is not strictly limited to covering only the points
listed.
The instuctor may use these points in arriving at an initial estimate
of a student's project proposal grade. The instructor shall take
into account all aspects of a students conduct and performance.
These may have positive or negative effects on the actual grade
given.
The instructor shall also consider the following scale:
The project proposal grade shall be
0 to 4 points if a student has not done enough towards coming up with a
final project proposal,
5 or 6 points if a student's performance is minimally sufficient,
7 or 8 points if a student's performance is above average,
9 or 10 points if a student's performance was excellent.
In cases where the final proposal submitted is not acceptable to the
instructor, students may be required more meetings with the instructor,
subject to penalties in the project proposal grade as the instructor
deems fit.
4. Project Ideas for CE 160, First Semester, 2005 - 2006
Write a program that determines whether two finite automata are
equivalent. The finite automata are specified by
FASPEC
files.
Write a program that determines whether two DFAs are equivalent.
The DFAs are specified by
FASPEC
files.
(This is more limited in scope than the preceding project.)
Write a program that reads an eNFA specified in an
FASPEC
file and converts the eNFA to a DFA in
FASPEC
file format.
Add a DFA Minimization feature to the graphical DFA editor.
Generalize the graphical DFA editor so that it allows NFAs and eNFAs to
be designed. Allow the generalized editor to simulate NFAs and
eNFAs.
Write a Graphical PDA Editor. And simulator?
Write a tabular PDA Editor.
Write a Graphical Turing Machine editor. And simulator?
Write a tabular Turing Machine editor.
Write a 2 or 3-variable expression parser and evaluator.
Improve the implementation of the existing expression parser and
evaluator so that it could be compiled to a library. Write an
application that makes use of the library, calling on library functions
to parse expressions and evaluate them.
Implement the expression parser and evaluator in flex and/or bison.
Write an RFC to HTML converter using flex and/or bison. (Refer to
previous project ce160_oct2003_02 at
http://ce160oct2003.tripod.com/
for documentation on a previous RFC to HTML converter.)
Write an FASPEC file editor. Or a PDASPEC file editor. Or a
TMSPEC file editor. Or a CFGSPEC file editor. These editors provide
syntax highlighting as the file is typed, so that the user is alerted
to possible errors in syntax. See
http://geocities.datacellar.net/lui_agustin/ce160/representing_automata.html
for information regarding these file formats.
Write a sequential circuit editor and/or simulator. (Sequential
circuits involving combinatorial logic and flip-flops are finite
automata that do not just output 0 or 1 -- accept or reject --
but produce more detailed output.)
Write a program that reads a CFGSPEC file and allows the user to try
deriving strings in the language of the CFG by letting the user
interactively choose which productions to apply to various variables in
the CFG.
Write a program that reads a CFGSPEC file, determines if the CFG
represented by the file is in Chomsky Normal Form and if so, allows the
user to test various strings for membership in the language of the CFG
using the CYK algorithm (p. 298 of textbook).