Rules For Reading

1  Reading

It is my observation that students in computer science do not read nearly enough. This is a road to professional disaster. Our discipline is constantly changing and new concepts are introduced every day. In the professional world of either academia or industry, the only way to hold your job is to continually learn these new ideas. This means lot of reading. In the technical disciplines, such reading is almost always painfully detailed and can be downright boring. It is important that you acquire the habit of technical reading (as opposed to recreational reading which I also urge you to do) early.

Since I know (I’m still a student, too) you will not voluntarily do the readings, I will explain a bit of why (carrot) and what happens if you don’t (stick).

1.1  The Carrot: Better Grades and Easier Classes

Standing where I do, I can tell who is consistently reading assignments and who isn’t. This recognition has some consequences. Firstly, students who are almost always prepared but miss one day are almost always (by anyone I’ve ever talked to) “forgiven” for a lapse. On the other hand, those who are almost never prepared and suddenly show up once well prepared are dismissed as a fluke. The continuously prepared student has a far easier time of it at exam time while the unprepared student ends up in a panic. In the “memorization” style classes, the unprepared student might be able to get enough memorized to survive. That won’t work in my classes because I don’t give tests during the semester. By the way, in the “real world” the only exam is keeping your job.

When grading for the student who is always prepared, such a student is much more likely to get the benefit of the doubt. Exactly the opposite is true for the chronically unprepared student. This has a greater dimension: for example, recommendations for jobs. If I remember you as always prepared and capable of participating, then I will be more likely to enthusiastically endorse your recommendation.

The moral of the story is this. In my classes, a large portion of the final grade is participation. A large portion of that participation is simply reading the material and documenting it as I describe in this and related documents. If you have not made a habit of reading and preparing for your classes in the past, resolve to do so here. It will make your life a whole lot easier and it will make our relationship much smoother.

1.2  Accountability and Consequence

Here’s the stick. Firstly, you will not learn near as much as you might if you were prepared. As the University strives to be a top 20 universities, students will be called upon to do more for them. University classes are fundamentally based on the concept of self-teaching. Secondly, not reading in my classes will cost you points. Because of the grade structure in my classes, there is a large participation component. I consider preparation a large component of participation: if you are not prepared, you can’t participate. Thirdly, I don’t lecture from the book. I will answer questions about the readings if specifically asked but I don’t lecture on what you can more efficiently read for yourself.

1.3  Daily Reading Assignments

The only way to keep up in project-oriented classes like mine is to read every assignment every time. Now, I’m not talking about taking the book over to the Union Coffee Shop and staring at it for twenty minutes. I will provide specific instructions below for how you should prove to me you have read the material. I will expect something from you every class unless I rescind the reading assignment for that class.

In whichever of my classes you are in, we will be developing concept maps. I have a web page devoted to this idea and many illustrations about how to develop such maps. I also have software to help you. Some introductory material is below.

1.4  Class Exercises

Various possibilities for in-class exercises are the so-called “one-minute paper”, in which I give you a question about the reading assignment. I might ask you to write a short (3x5 or 5x8 note card) explanation. I may go so far as to ask for individuals or small groups to lecture. I’ve even been loony enough to consider asking you to write a poem about the assignment.

2  How to Read Technical Literature

All disciplines have huge, specialized vocabularies. To survive in the technical occupations you must master the vocabularies that abound in the discipline. By mastering I mean that you must be able to understand a term and give examples and you must be able to identify an abstraction when presented with a specific case. There are many specialized sub-vocabularies. Hardware terminology is inherited from electrical and computer engineering. Much of data structure and algorithm terminology comes from graph theory. Any application development takes most of its higher-level vocabulary from the application itself.

2.1  English Counts

English counts! You can get very cheap, but complete, dictionaries for your laptop or computer. The University Library website provides access to the Oxford and Merriam-Webster unabridged dictionaries. I use both dictionaries every day. Technical vocabularies borrow heavily from natural languages but often put a special twist on a word. Here’s an example of what I mean.

The Story The word isomorphic is used in data structures. When asked to explain the term in the context “When are two trees isomorphic?” students usually can’t. That’s not a crime, but one should be able to figure it out. When pressed, some students recall that the prefix iso is very common in our business and means “the same” in Greek. The point that I wish to make relates to morph. Virtually every student, when pressed, says that morph means “to change” because of the specialized meaning of the term in graphics (Strictly speaking, this use of morph is a neologism). The context of the question is not graphics and the context makes isomorphic an adjective, so “to change” can’t possibly be right. Morph is Greek for “body” or “shape”. Therefore the term means “same shape”.

Moral I expect you to master the vocabulary in this course. The above story is meant to illustrate the importance of determining the context of the question (data structures) and use of a term in context (name of a property or adjective). If you do not understand the contextual meaning of a term in your reading, then find out.

2.2  Introductory Reading

Even after some thirty-five years in computer science, I often come upon ideas in computation that I am not familiar with. In these cases, one has no choice but to go to the library to learn the basics. The trick is finding introductory texts. I often ask the reference librarian which texts are suitable. When I assign readings in class, I do so with the belief that you have the requisite background, but if you don’t, you must do the background work needed. Every student is different, so I don’t know what must be added. It is your responsibility to tell me if the readings are too advanced. In my classes, the actual meeting time should be spent answering questions about the new information gained in the readings.

3  Standing Assignment: Concept Maps

We are going to use the reading to drive your learning of concepts and propositions. Concept maps are devices to help you integrate new concepts with the old.

3.1  Concepts

A concept is defined as (Merriam-Webster Collegiate Dictionary) “an abstract or generic idea generalized from particular experiences.” Concepts are sometimes called categories. Concepts are inductively formed. That means that these ideas don’t spring, fully formed, out of nowhere. The process of concept formation is the process of sorting out specific experiences into general classes of objects or events or into general rules. Concepts are not mathematical things necessarily, although most mathematics start from assuming that ones ideas of a concept can be translated to set theory. Concepts can be formed into higher-order concepts in which case we generalize the already generalized concepts. In data structures, for example, graphs are more general than trees.

3.2  Rules and Propositions

Concepts can be objects or events — in effect, any noun or adjective in English names a concept. Concepts can be related in many different ways. There are two that are interesting in our work. The first is that sometimes one concept can be converted by rules into another concept. For example, binary numbers (a concept) can be mathematically converted into decimal numbers (another concept). The second relationship is that of a proposition. A proposition is a statement about one or more concepts and statement can be true or false. From the above concepts we can form the proposition every binary number can be represented as a decimal number and vice versa. As another example, every (graph-theoretical) tree is a (graph-theoretical) directed acyclic graph. The parenthesized word graph-theoretical is the context of the term. Establishing and understanding context is crucial.

3.3  Developing Concepts and Propositions

There are many ways to develop concepts. I have chosen the following requirement based on ideas expressed by Dr. Calvin Kalman of Concordia University in Montreal. You will be writing short papers using the free writing technique explained below. These papers come about by brainstorming about the readings and the focus questions, also described below.

3.3.1  Brainstorming

Brainstorming is a technique whereby you simple put down ideas. In brainstorming, it is crucial that you not stop and analyze what you write. Keep going. Wrote the same thing twice? Keep going. Subject and verb don’t agree in number? Keep going. Misspelled something? Keep going. You cannot be wrong in writing in this style. Once you get the hang of it, you will find that this type of writing is fun and moves very quickly. This technique of writing — one could do this verbally into a recording device — is called free writing.

3.3.2  Focus Question

In order to brainstorm effectively, you need to have a problem to brainstorm about. This focus is called the focus question. Of course, there could be multiple focus questions. For the reading assignment free write, there is always an implicit focus question: “What are the new concepts and propositions and how are they related to what I already know.” In some cases, I will give you focus questions to consider.

3.3.3  Free Writing

You are to read the required reading plus any implied readings. You then are to write a paper that is equivalent to three handwritten pages, or more if you wish. In my own experiments using handwritten pages, it takes about five minutes per page. Normally, I would specify that your assignments be in some presentation software like Microsoft Word — but that clearly is at odds with the whole idea that you just write. Therefore, you can use any editor that deals with just text, but not something like Word. You will be expected to email the document to me.

The style of writing is called free writing and it is quite different than for more formal assignments. Free writing is a record of your brainstorming about the reading assignment. It takes a bit of practice, but you’ll get the hang of it. In free writing, you do not need to observe punctuation except to end a sentence. In fact, you don’t even need to write full sentences — sentence fragments are better. I expect you to use free writing on exams. If you get “writers’ block”, don’t worry. Just keep typing some nonsense word or phrase until you break the block. When I was an undergraduate, a friend of mine would break writers’ block by typing the special symbols (over the numerals) to indicate profanity with himself.

Free writes are not essays. Writers’ block is usually attributed to knowing exactly what to say. There is no exact here — only ideas.

I will not assign a grade to the free write. You will receive credit/no credit but no grade for this portion of the assignment.

3.3.4  The Assigned Paper

The paper must be at least three pages (in handwritten form), although you may have more. Length and English elegance are not the issue: content is.

  1. Read the focus question.
  2. Look in your text for information on the subject. Check the net, even. Your textbook is neither infallible nor complete. Read as much as you can on the assignment. If it is necessary to read surrounding sections, do so. If it is necessary to get another reference, do so. Be sure to set the context.
  3. Put the chapter and section information at the top of the first page along with the date and your name. Brainstorm and free write on the following focus questions:
  4. What are the new concepts? Free write the definitions.
  5. How are the new concepts related to one another? Free write an explanation of the relationship.
  6. How are the new concepts related to previous concepts you already know? Free write how they’re related.
  7. What claims are made? A claim is some statement of value: “algorithm A is better than algorithm B”, for example. Free write the claim.
  8. After you are through brainstorming, put in a section header or some other indication that what follows the indication is the answer to these questions:
  9. List the new concepts in order of the most general to the most specific.
  10. List the old concepts in order of the most general to the most specific.
  11. List the propositions (answers to question 3b and 3c).
  12. Write three grammatically correct sentences concerning either new concepts or propositions.

3.4  Concept Map

As computer scientists, it should be obvious that I can form a weighted directed graph using concepts as nodes and rules and propositions as weights on arcs. The direction that we choose to honor is that the arrow has its head at the less general node and its tail at the more general node. Such a graph is called a concept map. I will discuss this in a different paper.