CMPT 376 (Spring 2008): Assignment 2

Home    Schedule    Learning Outcomes    Assignments    Email-list    Policies    Resources   

Revision history

Fri Feb 15: Rubric published.

Due

Draft: Friday, Feb. 8
Final: Friday, Feb. 15

Turn in

Draft: Up to four double-spaced pages
Final: Up to four single-spaced pages. The rubric is now available.

Description

Choose a difficult topic from another computer science class you are taking or have taken (but only use a past course if you are not taking any this semester) and explain it to another computer science student who has not yet taken the class. You may assume that the student has taken all the prerequisites of the class. You will get the most benefits from this exercise if you pick a topic that you don't feel you quite understand (this is why I ask that you pick a topic from an ongoing class). Explaining the issue to someone else is an excellent way to clarify your own understanding.

If the main topic is itself difficult, you may want to work up to it in stages. For example, to introduce red-black trees to a student who has only taken CMPT 125, you might want to start with basic binary trees and then describe red-black trees in terms of the simpler binary tree.

Other main topics may be simple to explain but its implications may be difficult to see. In such cases, you may want to use several analogies or examples to get your point across. Consider explaining the implications of Web social networking features. The concept is simple enough, and your readers will have had direct experience with the technology. But presenting several distinct examples can show the diversity of implications, including some they may not have considered.

A third kind of explanation requires stepwise introduction of concepts. If you wanted to describe the Python Django framework, you'd need to introduce the concepts of application framework, data model, variable interpolation, admin interfaces, and other items. You might begin with only the essential concepts necessary to define the basic system, than introduce optional concepts after the basic structure has been explained.

Draft

In the draft, sketch out three different arguments or presentations. First, state the concept or idea that you wish to explain. Just give enough detail that the concept is recognizable. Then present three different sequences in which you could present the material. Make them as different as you can. For example, you might try a bottom-up approach (details first, big picture last), top down (big picture then details), and stepwise development (simpler version, then full version). Try an approach based on a diagram or based on a central metaphor. Try an approach that seems sure to fail, just to see how it turns out ("Plan 9 From Computing Science!").

Sketch each approach out just enough to demonstrate what the stages or steps will be. What will you define when? Note that at this point, you don't need to give the definitions, just put in placeholders for where they'll go.