An example report specification and an example Prolog report file that was created from the specification.
An annotated version of the Sequence ADT that describes the structure of a stand-alone report that you are to use for reports 3, 4 and 5.
A collection of web pages to introduce you to the processes and library resources that can be used in writing papers and reports.
Reports will normally be handed in on or before the due date, to the course instructor at the beginning of the class on the due date. Should you need to submit the report earlier, then please submit it to the instructor in their office or in the Departmental office CSB 1003. Reports are to be handed in during normal Departmental business hours and are due by date and time given in the class schedule. It is recommended that you hand in the reports at the class. Missing classes while working on a report is a poor learning strategy.
Please use a copy of the cover page posted with the report specificatons as the first page of the report you hand in. It is used to record grades for each part and for the marker write general comments about the report.
You are reponsible for arranging to be in a group. Neither the course director nor instructors can deal with group management. Should your group split up, you are responsible for submiting a report. The resulting reports from each subgroup will have elements in common, so each subgroup must clearly and specifically indicate what work was done by each of the group members before the split.
An excellent way of working in pairs is for each person to work out an outline of a solution to each problem, complete the program part for half the report, try to document the programs written by your partner before they explain it to you (learn to read other people's programs). Then discuss the results and make appropriate changes to your submission.
If for any reason a report is incomplete, then you should submit, on or before the due date, all work done to date (organization counts) along with a note describing the following items, which is what is expected in the work world in such a situation.
A report is a description, either oral or written, of something seen or done. Oral reports tend to be informal in style, structure and language while written reports tend to be formal in style, structure and language. In a report you are trying to tell the reader all or some of the following things; depending upon the objectives of the report.
A professional report is done in a workman like manner. It is well organized and well structured. It is neither too long (padded) nor too short (misses essential points). It addresses the proper points and does not digress off the point. The report looks good but is not flashy -- no need for fancy desktop publishing.
Writing a report is very similar to writing a program. The former is in English, the latter in a formal programming language but both require carefully designed logical and physical structures.
There is no single way of organizing a report but there are general guidelines in that you have an introduction, body and conclusion for the work as a whole, for each section, subsection, etc. At the lower levels the introduction and conclusion become briefer with more emphasis on the body. Often a top down structure is used with lower level sections being more detailed descriptions of more general upper level secitons. Logically related sections are physically close.
You have to make decisions based on what you are trying to describe in your report. What is important needs to be emphasized and described at greater length. What is unimportant is described briefly, if at all.
Reports must be customized to the task. You have to think about what is important to describe and what is unimportant. The overriding abstraction is to create a document D for a reader R in a context C. The structure, style and content will of the document takes into account of who the reader is and in what context, i.e. what information does the reader need and how will they access and use the information.
A report describing the design of a program will have different sections and different emphasis than the following: a report describing how you proved a program correct; or how you tested a program; or a comparison of similar but different data structures. For a design you describe the problem (specifications) what data structures you selected, how you refined the problem into abstract data types, procedures and functions, modules, files. For testing you describe tests plans, how you generated the test data, what you observed, what conclusions you drew, how an initial test plan led to a more refined test plan. For data structure comparison you describe the properties of each data structure, how they are similar, how they differ, give an opinion as to which is better under what circumstances.
In courses you are asked to do assignments -- the instructor assigns one or more tasks for you to do. You do not submit an assignment -- you are not asking the instructor to do the task(s) -- you submit a report of what you did in working on the tasks you were assigned.
For assignments it makes sense to structure your report based on the tasks you have been assigned. If given multiple tasks then, generally your report would have specific sections for each task and the sections would appear in the order they were assigned. The first part of a report consists of the body of the report, the second part consists of the supporting documents such as program listings, test input files, demonstration output scripts, etc.
A copy of the specifications is useless. I already have a copy. For readers of your reports they are uninteresting. Instead summarize, in your introduction, what you have done. Think of your reports as something you could take along to a job interview to show the kind of work you do. Just as artists of all kinds you need to collect a portfolio of your work. When someone asks what you have done you can give them example reports.
Do not use point format, except for the occasional list, or unless explicitly asked for. Use correct, grammatical sentences and paragraphs. Word processors and GNU emacs have spell checkers. There is a stand alone program, spell, on Prism. Use them.
A major point of the assignments is for you to apply the knowledge and skills you have learned and are learning through doing the assignments. Another point is for me to see what you are doing and react appropriately so you can learn as much as possible. Typically an answer is not the point of doing and assignment; it is a subpart of the point.
Judicious use of external sources of material makes for better reports. In your reports be sure to cite the source of any material that you did not create yourself (no citation implicitly implies the work is yours). All information taken from external sources (everything which is not your own work) must be clearly indicated (verbatim items are quoted) and correctly referenced. If you cite references, there should be a reference list at the end of the report.
Even in the "real world" you are expected to cite where and how you obtained the answer so those people needing the report know how much trust to place in it.
Familiarize yourself with the rules and regulations regarding plagiarism. Be sure to read the section "Senate Policy on Academic Honesty", and "Faculty of Arts Policy on Academic Dishonesty" of the York University Calendar. Also see On Academic Honesty.