
The George Washington University
School of Engineering and Applied Science
Department of Computer Science
CSci 51 -- Introduction to Software Development
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 software development. 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 format 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.
Your submission must contain:
-
Your Case Study document, printed from a computer or neatly hand-written.
The document must show, on the first page, your name, e-mail address, lab
section, project number, date submitted).
-
One or more listing (.lss/.lsb) files, according to the project
assignment sheet.
-
One or more compile/link/execute scripts, according to the assignment sheet.
Run the program with enough test data that you can show that it works as
advertised. Choose test data carefully!
-
Each program source file must have, at the beginning of the program, a
"banner comment" in the following form:
---------------------------------------------------------------
-- Name: Elvis Presley
-- E-mail Address: elvis@seas.gwu.edu
-- Lab Section: CSci 51-30
--
-- Project #1
-- Date: Feb. 1, 2000
--
-- Brief Project Description:
--
-- This project requires the computation of the American
-- price for a quantity of food purchased in Canada,
-- where the food is purchased in kilos and the price
-- is charged in Canadian dollars.
--
-------------------------------------------------------------
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.
Quantity: Float; -- input - weight of food in kilos
USPrice: Float; -- output - US price of the food
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 Test Plan 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."