Beruflich Dokumente
Kultur Dokumente
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.
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.
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.
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
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.
19
JCSC 28, 3 (January 2013)
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