zero, the second missing assignment means no credit for the course. Labs and/or assignments (even if
not covered in the lectures) will be examined—either separately, or by being included on regular exams.
or the professor by the indicated
date. LATE ASSIGNMENTS WILL BE PENALIZED, AND MAY NOT BE ACCEPTED. No more than one
lab assignment may be submitted in the last week of the course under any circumstances.
Hand in what you have for marking on your first lab day
following the start of the indicated due week. Other courses MAY have different policies
Some students may be tempted to submit work prepared by others. Such copying IS
possible to detect, and will result in a failing grade for the course.
There will also be a report to
university authorities who may take further action.
Writing and Submitting Labs
number, and the assignment number and title all clearly PRINTED on the cover. It must include (in
this order):
•• Planning documents (prepared before
writing any code)
• A brief restatement of the problem in your own words
• A statement on the suitability of solving this problem with a computer
• A first refinement of the solution (A statement of the steps required to solve the problem)
- what is given
- what needs to be calculated including any formulas used
- output required
• Second refinement; first level of pseudocode
- can be sketchy
- may not exactly match the final product, but illustrates first level of thinking
- may be handwritten and on a separate sheet
- don't go back and change this after coding
• Third refinement to final pseudocode on a procedure by procedure (or function by function)
basis clearly showing any algorithms
- should match the final product, or explain why not
- one line of pseudocode per statement or per block as appropriate
Examples:
> print out informative headings and greeting to the user
> compute _____ using <formula in first refinement>
> obtain the density of the material from the user
> assign the initial value 3 to the rate of decomposition
> for each element of the array, do the following:
statement
statement
> while the value of the month is more than June do
statement
statement
> repeat the following steps
statement
statement
until
<some condition is met>
DO NOT INCLUDE:
keywords or key symbols such as :=
or
BEGIN
or
MODULE; though you may need to use
repeat
, while
, and so on
• If the steps in the third refinement cannot easily be implemented or need further breakdown,
you may need to include a fourth refinement with more sub-steps shown. The rule of thumb is
that if the implementation of a line of pseudocode is obvious to you, you need not refine it
any more; otherwise refine to smaller steps until each one is obvious.
• A data table, listing all constants, types, and variables and noting all imports
- should be by block, including the main block and every procedure
- say what each one is for
• Sample I/O
to illustrate how it is supposed to work
- NOTE: this is a statement of how it is supposed to work, not how it did work. That is,
you do this before you write the code, not after you run it.
• Documentation for a USER to operate the program (a user manual)
• Explanations of error handling and messages (if applicable.)
- for every error that may happen, tell how you handle it or why it isn't a problem
•• The final program listing, including
• comment header for identification
(* Name: Johanna Meier *)
(* Student Number: 102001 *)
(* CMPT 141 Fall 2010 *)
(* Assignment #1*)
(* Solving third order differential equations *)
• appropriate comments for internal documentation
•• Run-Time printouts
• Actual printouts of trial runs with real data
(Printouts must also have name and assignment number via a WriteString statement at the
start of the code. )
• Actual printouts of data files used to obtain the submitted results
- these should show how you test a variety of data
- every possible error/ error message should be shown as tested
- every feature has to be tested
- if there are discrepancies between the predicted I/O and the actual, you must explain
Marking of Assignments (out of 50):
45 - 50
Excellent. Everything complete, explanations and all planning evidence and documentation
clear AND IN PROPER ENGLISH, efficient and readable (prettyprinted) code.
35 - 44 Good. Some things overlooked, but reasonable explanations.
27 - 34
Just satisfactory. Some important omissions or errors in the submitted package
< 27
Unsatisfactory
The normal marking system for first year courses:
Planning:
Problem Statement, restatement, and first refinement
5
Pseudocode for algorithms, etc. (as needed)
5
Data tableSample I/O
5
User documentation, error planning
5
Implementation
Proper headers, overall appearance, prettyprinting, etc.
5
Internal documentation, comments, identifier names
5
programming style (modularity, modifiability, etc.)
5
Production:
Correctness of outcome and thoroughness of testing
10
Hardcopies of actual runs and data (if appropriate)
5
TOTAL
50
NOTE:
The mark distribution and some of the requirements may vary in upper level courses.
Professors may add additional
assignment requirements, and adjust marks for individuals in shared
projects if not everyone does an equal amount of the work.
First page 10 marks
Who are you?
Statement of problem
Discussion of strategy
Code
30 marks
See the sample problem and comments above for formatting and necessary information
Hard copy of output and data
10 marks