include_template( 'topper.html' ); ?> CS 3304 semester(); ?> Program Assignments include_template( 'page-start.html' ); ?>
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. | Due | Title | Language | |
---|---|---|---|---|
1 | 2/14 | Diagramming English Sentences | Pascal | |
2 | 3/19 | Diagramming English Sentences | Scheme | |
3 | 4/7 | Transport Planner | Prolog | |
4 | 4/28 | Diagramming English Sentences | Prolog |
section_title( 'Program Submission Guidelines' ) ?>
For each assignment, you will submit an electronic version of your program to the Web-CAT Curator. No paper copy will be turned in. After grading, the TA will e-mail feedback to you in the form of a PDF printout of your program marked up with comments.
Program submissions for 3304 normally consist of two files: your program as a single source file, together with a set of test cases as a plain ASCII file. See the TDD Tools for CS 3304 for more information about the format of the test case file.
The late policy for program submissions is described in the course syllabus.
section_title( 'Program Grading Criteria' ) ?>Your program grade is based on the following Criteria:
Design (20/50)--Is the design sound, easy to understand, and clearly evident from the code? Are there major design weaknesses? Your solution should also be well structured, with a clean, clear, understandable approach to the program's decomposition. A logical division of the problem using small, clearly defined abstract program units is desirable.
Central Data Representation(s) (10/50)--If one or more core data structures are used within the program, the purpose, content, and structure of each must be clearly described. In Scheme and Prolog in particular, it is important to document the intent, layout, and interpretation of any list-based structures, since there are no corresponding type definitions to examine.
Embedded Documentation and Comments (10/50)--All aspects
of your code should be understandable and easy to read.
Each program unit should be preceded by a unit header comment block
that gives
the specifications for that unit, particularly detailing its
interface requirements (what its purpose is, a description of its
parameters, and a description of any nonlocal variables, if any, on
which it depends). Overall, the program source should be
well commented, includind comments to explain the operation
of any code segments that require it. Avoid useless comments
that add no information beyond what is already evident from the variable/
operation names involved (i.e., there is no need to comment a variable
declaration for repCount
that it counts repetitions!).
Identifiers should be chosen carefully to maximize readability and
minimize the need for comments. The same identifier should not be
used repeatedly in different portions of your code unless it is has
a common meaning.
Use of Paradigm (10/50)--Appropriate use of strategies central to the programming paradigm on which the assignment is based. Deductions will be taken for use of language features inappropriate within a paradigm (as described in each programming assignment).
Your program's run-time behavior will be electronically judged by the new Web-CAT Curator, an automated electronic submission and grading agent.
The Curator will not provide test data to exercise your program. It is up to you to provide test cases that thoroughly exercise all required behaviors in the program assignment.
The Curator will assess your program and the test data you submit. Your score is computed by measuring the following:
The correctness of your test cases (each test case must have the right expected output)
The thoroughness of your test cases (together, they must exercise all behaviors required by this assignment)
The correctness of your program (it must pass all your test cases)
The Curator will evaluate your submission and assign a 0%-100% score on each of the three dimensions. Your final score will be determined by multiplying together the three values to get a final percentage, which will then be scaled to 50 points.
You are allowed an unlimited number of Curator submissions.
You will not receive e-mail from the Web-CAT Curator. Instead, all assignment results will be viewable on-line through its reporting system.
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.
The Curator will report your score out of 50, since it is only responsible for half your score. Your final grade will include the TA's half of the score as well, and will be in the marked-up file returned to you by the TA.