The George Washington UniversitySchool of Engineering and Applied Science
Department of Electrical Engineering and Computer Science
CSci 51 -- Introduction to Computing

Preparation and Grading of Programming Projects:
the Importance of Professionalism

Introduction

This course is taught under the assumption that the students have no
previous experience with programming or program design. Projects are therefore
of a difficulty and complexity that a beginner can handle.

It is, however, important for you to realize that one of the purposes
of this course is to help you begin your preparation for a profession.
If you continue in computing courses, you will find that your experience
here will serve you well. Even if you never take another course in computing,
you will have learned much about the kinds of techniques professionals
use and especially about the courtesy that they are expected to show to
others needing to read and understand their work.

The conventional scheme used in universities to assess a student's accomplishments
is the grade. We therefore use a grading system to assess your success
not only in writing a program that "works," but also in completing
a project that meets the standards of professionalism we have set. Meeting
these standards is neither especially difficult, nor especially burdensome
in terms of your time.

We hope that you will realize that we are not just being bureaucratic,
and that you will understand the benefits of what we are asking you to
do. In any event, we are giving you, through the grading system, a tangible
incentive to do it.

Project Preparation

In developing a project, you will use the Case Study form as illustrated
many times in the Feldman/Koffman book. Specifically, you need to prepare
and submit all the sections of the Case Study: Problem Statement, Analysis,
Data Requirements, Algorithm with refinements, Test Plan, Coding, and Testing.
It is acceptable to attach a copy of the project handout and mark it as
Problem Statement.

Programming projects are to be submitted in paper form, because the
graders will need to make notes on them. Projects will be turned in at
the start of lecture and returned during lab. Be sure your name and lab
section are on each piece, in case they get accidentally separated. Put
the pieces together with a paper clip, not a staple.

Indentation and comments in the program should follow the style of those
in the book, and reflect the major steps of the algorithm as given in the
Design Document. Use comments to document each identifier, e.g.

Project Grading

Your grade will be assigned on the basis of 20 points; partial credit
is always given where appropriate.

up to 6 points, or 30%, are given for the Analysis, Data Requirements,
and Algorithm/Refinements part of your Case Study document.

up to 4 points, or 20%, are given for the Testing part of your document,
in which you will describe and justify the test cases you will use to test
your program. The grader will read your test plan and compare it with the
actual test shown in your script.

up to 4 points, or 20%, are given for the structure and style of your
program, including indentation, consistent capitalization, blank lines
for readability, appropriate level of comments, etc.

up to 6 points, or 30%, are given for the correctness of your program
as shown by the source listing and test run(s).

Note that a complete and correct design and test plan will earn 50%
of the grade, even if you do not complete the program, and that a correctly
developed and formatted program will earn an additional 20%, even if it
does not work. This weighting of grades is quite intentional, and is typical
of modern computing courses. It is also typical in industry for the coding
part of a project to absorb only 30% of the resources.

Schedule

Your project is due on the assigned date at the beginning of class
. A project brought in during the class will normally be counted as
late.

Many teachers refuse to accept late projects at all, but in this course
you are permitted to turn in projects at any time. Your grade on the project
will, however, be reduced by 4 points, or 20%, for each week it is late.

Note that if you are extremely busy, you can buy an additional week
of time for a 4-point price. You do not need permission to do so; just
turn it in late. The "lateness fee" will be waived only
for documented medical situations or other unusual circumstances. "The
computer was down" is not an unusual circumstance; our response
will always be "the computer often goes down; you should have allowed
yourself more time."