15-819K Logic Programming

The following are the final project reports that have been submitted in this course. The project reports are accessible only from CMU.

Projects are a major component of this class, making up 55% of the grade. Projects start after the midterm and should be completed by the end of the semester. Projects can be done in groups with up to three students. They proceed in three phases: white paper, proposal, and report. The deadlines on the white paper and proposals are strict. The point distribution is 100 pts for the project proposal 450 points for the final report.

Projects can be of different kinds; see some sample scenarios below. It is not required that each project have design, theory, and implementation components, although this is natural since the course is concerned with programming languages.

The white paper is a short document, 3-5 pages, which sketches a proposed project. It should lay out some background, the problem, the method by which it is approached, and the expected outcome. It should cite the most relevant literature. The white paper is not graded, although I will provide feedback to each group.

The proposal is a more extensive document, 10 pages, which highlights preliminary results, partial algorithms or implementations, and goes into more detail on the approach, including possible alternatives, and measures of success. The proposal will be graded.

The report is in the style of a technical report with no particular target on page numbers. It should detail background, approach, and results in the manner of a conference or journal paper, possibly supplemented by code. Literature should be cited in a scholarly manner. Specifics of the contents will depend on the nature of the project.

Some Sample Scenarios

Program Analysis

A project could attack a particular logic program analysis problem, such as advanced type, mode, or termination checking for logic programs. Typically, such a project would consist of a the design of an algorithm, its correctness proof, a prototype implementation, and a critical or empirical evaluation of the results.

Implementation of Advanced Features

A project could attack implementation of an advanced logic programming idea such as saturating forward chaining or quiescence. Typically, such a project would consist of an implementation technique, some prototype code, and an empirical evaluation of its efficiency.

Novel Language Design

A project could develop a novel logic programming language such as epistemic, spatial, or temporal logic programming. Typically, such a project would consist of the definition of a logic or fragment thereof, sample programs that illustrate its expressive power, and some meta-theoretic analyses. If feasible, it could also have a prototype implementation.

Logic Programming Applications

A project could develop an application of logic programming. This could either be in area where it is not standard practice, or where current practice can be improved with novel features in the logic programming language.

[ Home | Schedule | Assignments | Handouts | Software | Resources ]

Frank Pfenning