CS 3304 Fall 2001 Program Assignments

The programming assignments for this course use different programming languages. A fundamemental element of each assignment will be that to a large extent you will be required, after a brief class room introduction, to learn the corresponding programming language on your own. Thus it will be important that you take the time to learn the language BEFORE you attempt to complete the corresponding assignment.

 Spring 2001 Program Assignments 
No.DueTitle LanguageSample Input/Output
19/26/01 Evaluating Expressions Pascal p1-in.txt / p1-out.txt
210/24/01 Interpreting JVM Sequences Scheme p2-in.scm / p2-out.txt
311/14/01 Weird Pets Prolog p3-in.pro / p3-out.txt
412/10/01  Interpreting JVM Sequences Prolog p4-in.pro / p4-out.txt

Program Submission Guidelines

For each assignment, you will submit both an electronic version and a hardcopy printout of your program. Your progragrm must always consist of a single source file.

Submit the electronic version of your program to the Curator, using your PID and password. Be sure to select the 91312-CS 3304 Edwards 2:30-3:45 MW section when logging in. After logging in, click "Submit" and follow the instructions to submit your program. Each submission should be a plain ASCII source file (not a zip file, tar archive, or anything else).

In addition, submit a hardcopy printout of your program's source code on the due date in class. Your hardcopy printout must match the highest-scoring submission sent to the Curator earliest. In other words, you may not submit your program until it works, go back and add comments and documentation, and then make a final submission of the printable version of your program. Once you receive full credit from the Curator on a submission, that is the version you must print and hand in.

The late policy for program submissions is described in the course syllabus.

Program Grading Criteria

Your program grade is based on the following Criteria:

  • Design and Documentation (50/100)
    • Use of Paradigm--Appropriate use of strategies central to the programming paradigm on which the assignment is based. Deductions taken for use of language features inappropriate within a paradigm (as described in each programming assignment).
    • Design--Is the design sound, easy to understand, and clearly evident from the code? Are there major design weaknesses?
    • Central Data Representation(s)--If one or more core data structures are used within the program, the purpose, content, and structure of each must be described along with the corresponding type and/or variable definitions.
    • Unit Headers and Descriptions--each program unit should be preceded by a comment block that gives the specifications for that unit, particularly detailing its interface requirements.
    • Well Commented--the program source (besides the header) should include comments to explain the specific actions of the elements of the program tied in to the design of the program.
    • Well Structured--careful use of indentation, small abstract program units, logical division of the problem, etc.
    • Careful Use of Identifiers--identifiers should be chosen to give a sense of readability to the program, and should NOT be repeated in other program units unless they have a common meaning.

  • Correct Behavior (50/100)
    • Your program's run-time behavior will be electronically judged by the Curator, and automated electronic submission and grading agent.
    • If you are not familiar with the Curator, consult the Student Guide to the Curator.
    • You are allowed up to 5 submissions for each program, and normally will receive an e-mail report of your submission's performance within a few minutes of your submission. The Curator will allow late submissions according to the policy outlined in the syllabus, and will automatically apply the appropriate late penalty to your score.
    • Each submission is tested against a randomly generated data set--you'll never get the same test data twice, and you'll never get the same test data as the student next to you.
    • The Curator will report your score out of 100, assuming you receive full credit for design and documentation. The Curator score is not your final score, however. Any deductions produced by the GTA's evaluation of your design and documentation will be added to the Curator's assessment to obtain your program's final score.
    • In the output you receive back from the Curator by e-mail, you will notice that the spaces have been replaced by underscores for more effective grading. Keep this in mind when you look at the output produced by your program and that expected by the Curator.

Notes on testing are available for your use.


copyright © 2001 Virginia Tech, ALL RIGHTS RESERVED
Last modified: November 26, 2001, 11:15:04 EST, by Stephen H. Edwards <edwards@cs.vt.edu>