Sie sind auf Seite 1von 7

TWO CONCRETE EXAMPLES OF UPPER-LEVEL WRITING

ASSIGNMENTS IN AN ALGORITHMS COURSE *

Dee Weikle
Mathematical Sciences Department
Eastern Mennonite University
1200 Park Road, Harrisonburg, VA 22802-2462
(540) 432-4416
dee.weikle@emu.edu

ABSTRACT
This paper discusses two concrete examples of writing assignments given in
conjunction with projects in an upper level undergraduate algorithms course.
The first is a “white-paper” or experimental research paper that is designed to
teach all aspects of the research writing process, including presenting results
in both tabular and graphical form. The second is an annotated bibliography
coupled with a survey paper with a central theme. Both assignments have been
used successfully in two instances of teaching a third or fourth year level
writing intensive course in algorithms.

INTRODUCTION
The literature has several examples of papers describing the general approach and
techniques for teaching writing in the computer science curriculum. [1, 2, 3, 4, 5] In
addition to promoting the importance of writing in computer science, these articles give
tips and advice on how to include a variety of assignments to promote learning in a wide
range of courses. While useful to the instructor faced with incorporating writing into a
course, he or she still needs to actually create the assignment and make sure it is relevant
to the material at hand. This paper provides two concrete examples of assignments given
by the author on successive semesters of teaching Analysis of Algorithms. These
assignments are each a significant project for students in an upper division undergraduate
course and are characterized by technical rigor, differentiation in terms of both ability and

___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a
fee and/or specific permission.

14
CCSC: Eastern Conference

interest, and a clear analogy to real-world writing assignments. For each a description of
the staging of the assignment is also described.

ASSIGNMENT ONE: EXPERIMENT AND RESEARCH PROJECT


The first assignment is a project and research paper on sorting. Specifically, students
are asked to choose two sorting algorithms for which they design and run actual
experiments on data they have created. A scenario is described where the student writes
from the perspective of a researcher in a company choosing a sorting algorithm. The
scenario is designed to imply that records are very large and cannot be swapped in their
entirety. The student must write programs implementing both algorithms, write an
analysis of the analytical time and space complexity of each on a set of test data, compare
the analytical results with the experimental results and give a recommendation to a
manager on what sorting algorithm to use under what circumstances. This assignment for
the experiment is inspired by labs in other general science classes that essentially “repeat
and validate” experiments already performed by experienced scientists. While the student
will likely be able to predict the results from the literature and course material presented,
the process with a known experiment is manageable for an undergraduate while still
being very educational. In addition, even though the paper is being written from a
perspective of choosing the best algorithm, the specific algorithms chosen for the
comparison are left to the student, allowing them to choose algorithms based on their
interest and ability level rather than what algorithms would be optimal for the problem
at hand.

Technical content: Assignment One


This assignment provides several clear learning outcomes from a technical
standpoint. The experiment requires writing clear code with appropriate comments for
the sorting algorithms to be included in a paper appendix, learning how to create random
test data, seeing the need to include multiple tests for each data size, and how to
aggregate data in a clear and technically appropriate manner. In addition, to run tests
efficiently students often learn how to write scripts to run batch jobs as well as process
large amounts of data.

Differentiation: Assignment One


Because students are allowed to choose both the algorithms and implementation
language, they have a greater interest in the results. In addition, students with more ability
tend to choose more difficult algorithms to code and analyze. This provides a
differentiated assignment for both interest and ability levels.

Real-world writing lessons: Assignment One


This assignment requires writing clear code with internal comments appropriate for
publication to a wide audience, learning how to compile and display results in graphs in
an honest and comprehensive way, writing clear explanations with examples of analytical

15
JCSC 28, 3 (January 2013)

analysis, learning how to detail experimental set-up and approach so that experiments can
be replicated, and researching original papers on specific algorithms.

Staging: Assignment One


Preliminary assignments were given to make sure students were capable and
informed of the requirements. Initially, the whole assignment is handed out with two
example papers in the subject matter of algorithms for the students to read. Ideally these
papers dovetail the content currently being addressed in lecture and homework. The
assignment includes a detailed list of paper sections that must be included in both the
rough draft and the final submission. Class on the day the assignment is handed out
includes a discussion of how to read a technical paper using this as motivation for what
each section of the assigned paper should contain. Students then choose one sorting
algorithm and for homework give a detailed write-up analyzing the time complexity of
that algorithm. The instructor grades that homework and makes comments regarding the
content and form of the analytical write-up. Students are given another two weeks to run
their experiments and submit a rough draft. The instructor uses the university writing
rubric, along with their own criteria to grade the rough draft with an emphasis on making
sure all necessary content is included and that the overall structure of the paper meets the
criteria outlined in the assignment. The university writing rubric provides an excellent
means of focusing writing commentary. A number or grade for each rubric metric can be
assigned with one or two examples from the paper for the student to correct. It is then
useful to give a list of the top three changes the student should make to the overall paper
for maximum impact, along with one or two “favorite” aspects of this student’s writing
to celebrate. If time permits, meeting briefly with each student to discuss the written
review is helpful. At least a week is then given for the student to revise the paper before
the final grade is given. Focus can then be placed on evaluating whether the student has
accomplished the requested modifications. This focus enables the faculty member to
more efficiently grade the final papers, and gives the student specific direction on what
to improve first.

ASSIGNMENT TWO: ANNOTATED BIBLOGRAPHY AND SURVEY PAPER


The second assignment is to create an annotated bibliography of 10-15 academic
papers that the student discovers through research on algorithms in an area of his or her
interest. As a separate assignment a survey paper is written highlighting 2-3 algorithms
that best represent a theme chosen by the student from the annotated papers in the
bibliography. The theme can be left wide-open to choice by the student, or directed as
was done here in the second semester to a larger topic in which sub-themes are chosen
by the student.

Technical Content: Assignment Two


While it is more difficult to identify the exact technical knowledge acquired by the
student in every case, the experience of finding and at least skimming such a large
number of papers was a challenge that produced results. Several algorithms identified by
the students were not only new to them, but to the instructor as well, significantly

16
CCSC: Eastern Conference

impacting the relevance of the algorithms experienced in the class as a whole. Also, a
significant component of the annotation required was the time and space complexity. By
writing the annotations, students became familiar with the characteristics of a wide
variety of algorithms surrounding their theme of interest.

Differentiation: Assignment Two


Leaving the theme more open is preferable to restricting the theme as students are
more engaged if they are interested in the topic. Here the theme for the survey paper was
restricted to sustainability one semester to support a university-wide effort to include
sustainability issues in upper level course of all majors. The final papers were not as
elaborate as the semester where choice of topic was almost completely under the control
of the individual student.

Real-world writing lessons: Assignment Two


This assignment provides instruction in how to write a summary as it relates to
particular bibliographies, experience in reading multiple technical papers, and challenges
the student to make generalizations from specific examples they have seen in the
literature as well as create and format a larger bibliography.

Staging: Assignment Two


Again on the day the assignment is handed out example papers are provided and
discussed along with the expected sections for the final paper. It is recommended that the
digital librarian be brought in to run a short session on using the library and digital
sources. The second stage asks students to write a rough draft of a survey paper
highlighting 2-3 algorithms. Similar to the above assignment the instructor uses the
university writing rubric, along with their own criteria to grade the rough draft and
provide the student initial feedback. Again a list of the top three changes the student
should make to the overall paper for maximum impact, along with one or two “favorite”
aspects of this student’s writing are made clear in the instructor comments. The final
version is submitted at least one week later and a final grade is given.

CONCLUSION
While adding this kind of significant writing assignment to a course requires an
instructor be open to learning how to evaluate these types of assignments, the benefit to
the student is worth the effort. The revision process significantly improves the final
product and students not only have learned how to write better, but have become better
readers of technical material. The hope is this enables them to learn more effectively on
their own after college, a critical skill in the ever-changing field of computer science. The
tips and techniques outlined in the references have proven invaluable through these
assignments, particularly 1) being explicit about expectations, 2) using university rubrics
to more efficiently and fairly grade, and 3) using agreed upon marks to indicate common
problems. Also, I found that I did have a background for reviewing student papers,
specifically reviewing papers for technical conferences. The goals for evaluating student

17
JCSC 28, 3 (January 2013)

discipline specific writing should be similar. Reviews should give concrete feedback on
items the reviewer knows about specifically, but the reviewer does not need to fix every
problem with the paper. Rather we should encourage students to stretch themselves, but
focus on a few specific items for improvement. In this way we are meeting the student
where they are and supporting them on their educational journey.

REFERENCES
[1] R.F. Dugan and V.G. Polanski, "Writing for Computer Science: A Taxonomy of
Writing Tasks and General Advice," JCSC (21, 6) pp 191-203, June 2006.
[2] M.E. Hoffman, T. Dansdill and D.S. Herscovici, "Bridging Writing to Learn to
Writing in the Discipline in Computer Science Education," ACM SIGCSE
Bulletin (38, 1) pp 117-121, March 2006.
[3] D.G. Kay, “Computer Scientists Can Teach Writing: An Upper Division Course
for Computer Science Majors,”Proceedings of the Twenty-Ninth SIGCSE
Technical Symposium on Computer Science Education, pp 117-120,1998.
[4] K. Anewalt, “Experiences Teaching Writing in a Computer Science Course for
the First Time,” JCSC (18,2) pp 346-355, Dec 2002.
[5] K. Anewalt, “A Professional Practice Component in Writing:A Simple Way to
Enhance an Existing Course,” JCSC (18,3) pp 155-165, Feb 2003.

18
CCSC: Eastern Conference

APPENDIX A: Example Assignment for Sorting Experiment


CS340A Algorithms
Writing Project 1 – Sorting Algorithms
Due Date: Thursday, March 3, 2011 Beginning of Class

You will be writing a paper in a format that will reflect a technical paper in a
computer science conference and be slightly more formal that a paper you might write
working for a company called a white paper. A white paper is a supposedly unbiased
paper written by scientists or engineers within a company for the purpose of
explaining a technical decision to management. The paper should explain the critical
information for making the decision in a simple, digested format, yet include enough
background to satisfy those managers with some technical expertise.

The question you will be answering is which of two sorting algorithms is the “best”
for your company to adopt in its software project. I want you to evaluate two sorting
algorithms of your choice. To make the tradeoffs more straightforward, I want you to
consider that you may have data records numbering in the thousands, but not millions,
but that each record may have on the order of 2K of data associated with it. This
means “copying” a record could be very expensive, unless you come up with a way
around that.

Your “white paper” should consist of two main parts, the appendices with working
Java code for the two sorts and the “written” body that will be explaining the sorting
algorithms and any experiments you have run.

Part A: The “white paper” body


Technical papers have a specific style. They have a title and an author list, followed
by something called an abstract. An abstract is a very quick synopsis of the main point
of the paper with the biggest result or conclusion included. Good technical writers do
not “surprise” you with results or methods. Their writing is logical and orderly,
separated into sections with headings that allow a reader to quickly skim the whole
paper and find the part they want to read more closely. I have brought an example to
class and include a link here of an interesting one written at Stanford in the early
stages of Google development. Your white paper should have the following sections
or features:
– Abstract (section) – high level outline of paper with main result
– Background (section) – explains some of the history, basics about sorts
– Methods (section) – approach used in comparison
– Complexity (section) – actual theoretical analysis of algorithm
– Empirical Experiments (section) – describes the actual experiments in
Appendices
– Conclusion (section) – gives a short discussion/synopsis of the findings
– References (section – minimum of 4)
– appropriate graphs/tables/algorithms

19
JCSC 28, 3 (January 2013)

Example reference format:


[2] T. Wiegand, G.J. Sullivan, G. Bjontegaard, and A. Luthra, “Overview of
the h.264/avc video coding standard,” IEEE Transactions on Circuits and
Systems for Video Technology, vol. 13, no. 7, pp. 560–576, July 2003.

Part B: The Appendices


Your paper should have a minimum of two appendices each with the well-written
example of a sort in Java with appropriate in-line comments and a Test class that
demonstrates the basic functionality of the code. In addition, you should have run
some small set of experiments counting the main operation of the code for different
size inputs and including that data in a table and, ideally a graph that supports your
theoretical analysis. Your sort should be written to sort keys in the form of strings
with a maximum length of 20 characters. Be mindful when you are performing the
experiments of the size of the input you choose, and how you generate the data set!
Work up in size gradually so that you do not consume too much computing power
unnecessarily.

You should submit a “rough” draft of the entire paper and Appendices on Thursday.
Note: I have put “rough” in quotation marks to indicate it should really include all
parts and have working code. Please feel free to come and ask me questions regarding
code format, style, or anything else that might be holding you up. Start writing the
code immediately.

Evaluation: 30% of the grade for this project will be the rough draft and 70% will be
the final draft after I have given detailed comments.

Homework 4: Due Tuesday. JAVA code for one working sort algorithm. Include sort
routine, test code, and written algorithm with complexity analysis for both time and
space.

20

Das könnte Ihnen auch gefallen