# Assignment 3: Explaining Assignment and I/O

Assigned: Wednesday, 15 September 2010
Due: 11:00 p.m., Wednesday, 15 September 2010

This assignment is also available in PDF.

Summary: In this assignment, you will write short textbook-like sections about what happens when you assign across types and about basic I/O in C.

Purposes: To help you think more about these topics. To give you a different kind of computer science assignment. To encourage you to explore.

Expected Time: Two to three hours.

Collaboration: I encourage you to work in groups of size two or three. However, you may also work individually or in groups of up to size four. You are certainly welcome to talk to anyone about this assignment, provided you document such discussions. (For this assignment, an Acknowledgements section is particularly appropriate.)

Warning: So that this assignment is a learning experience for everyone, I may spend class time publicly critiquing your work. I may also post your work to the World Wide Web (provided you give me permission to do so).

## Assignment

Amazingly, some readers find K&R a bit too concise in their description of assignment, basic types, and input and output. Your job is to help those readers by writing short, informative documents on (a) assignment using the basic types (`char`, `int`, and `double`) and (b) I/O. You need not deal with signed/unsigned modifiers nor with `short`, `long`, or `float` values.

Your documents should certainly include informative code snippets and the output from those snippets. Your documents should also provide information to the reader about ways in which the commands can be used incorrectly and what happens when they are used incorrectly. (For example, we explored what happens when you try to read an integer and the user types `three`. I'd like to see that documented.)

Try to explore deeply when working on this assignment. For example, when we assign an `int` to a `char`, there are at least four possible cases that depend on the value of the integer (or integer expression).

• The integer is between 0 and 127, inclusive.
• The integer is between 128 and 255, inclusive.
• The integer is greater than 255.
• The integer is less than 0.

I would prefer that you write your documentation in HTML, but you may use any text formatting or word processing application that you deem appropriate.

## Important Evaluation Criteria

In part, I will assess this like any other piece of writing at Grinnell: I will look at the clarity of your writing, your grammatical correctness, your flow of ideas, and so on and so forth.

I will also look at the correctness of your work. Have you told your reader the truth about what happens in C? When your answers correspond primarily to our implementation of C, have you made it clear that it's our implementation, rather than C in general.

I will also look at the thoroughness of your work. Have you explained a wide variety of issues and found code snippets to illustrate those issues?

I reserve the right to impose additional criteria as I see your work.

## Miscellaneous Notes

I would encourage you to release your documentation under some form of Creative Commons license.

Please submit this work via an email message entitled should be titled CSC161 Assignment 3.

Since you are likely to have taken advantage of a word processor or document formatter to make your documents beautiful, you should feel free to send your document as an attachment. If you use an application that I may not have, please send a PDF, too.

## History

Friday, 10 September 2010 [Samuel A. Rebelsky]

• Created.

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Fri Sep 10 09:23:12 2010.
The source to the document was last modified on Fri Sep 10 09:23:09 2010.
This document may be found at `http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2010F/Assignments/assignment.03.html`.

Samuel A. Rebelsky, rebelsky@grinnell.edu