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.
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.
Your submission must contain:
-- Name: Elvis Presley
-- E-mail Address: firstname.lastname@example.org
-- Lab Section: CSci 51-30
-- Project #1
-- Date: Feb. 1, 1996
-- 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
Your grade will be assigned on the basis of 20 points; partial credit is always given where appropriate.
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.
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."