The George Washington University
Department of Electrical Engineering and Computer Science
CSci 131 -- Data Structures
Preparation and Grading of Programming Projects:
the Importance of Professionalism

Introduction

This course is taught under the assumption that the students have a semester's experience with programming and program design, equivalent to CSci 51. Projects are of a difficulty and complexity that someone at this level can reasonably be expected to 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 are a major in Computer Science or Computer Engineering, 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

Programming projects are to be submitted in paper form, because the graders will need to make notes on them. There are just too many students to make e-mail submission practicable. Be sure your name and quiz section are on each piece, in case they get accidentally separated. Put the pieces together with a paper clip, not a staple. It is acceptable to attach a copy of the project handout and mark it as Problem Statement.

Your submission must contain:

---------------------------------------------------------------
-- Name: Danny Quayle
-- E-mail Address: dquayle@seas.gwu.edu
-- CSci 131-11
--
-- Project #1
-- Date: September 22, 1993
--
-- Brief Project Description:
--
-- This project simulates a game of ten-pin bowling.
-- A game is played by up to four players; a box score
-- is displayed after each frame.
--
-------------------------------------------------------------

Indentation and comments in the program should follow the style of those in the book and project example. Use comments to document each identifier.

Project Grading

Your grade will be assigned on the basis of 20 points; partial credit is always given where appropriate. Unless otherwise specified, here is the grade allocation.

The textbook describes user guides and test plans. An example of a test plan can be found in Section 2.2.

Note that a complete and correct user document 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."

Where Is Ada Available?

The "officially supported" location for Ada program preparation and compilation is the SEAS Computing Facility Unix network, and the GNU Ada 95 (GNAT) compiler. There are terminals and connected microcomputers all over campus; there are also dial-up lines and telnet connections so that, once you have a SEASCF account, you can log in remotely from work or home.

If you have your own DOS-family computer available, you are welcome to use it. You can download a free DOS version of GNAT together with a nice editor and graphics libraries. See the file http://www.seas.gwu.edu/faculty/mfeldman/ez2load.html.