Technical Writing & Presentations

A Computer Science Elective, Fall 2018

Class Logistics

Why This Class

Technical writing is a skill that is rarely taught in the course of a CS PhD student's academic career. Often students are expected to already know how to write concisely, logically and with purpose, only to discover technical writing is nothing like the papers or essays they wrote in college. Some mistake command of the English language as the ability to write. In reality, language is only tangentially relevant, and plenty of native speakers have trouble formulating clear, logical arguments in a technical setting.

free Template by free Template by

As an advisor, I have been teaching my students how to write for over a decade, usually in one-on-one settings, at a desk over a printed draft. As a professor, I've been frustrated by the level of writing in papers submitted to my class projects over the years. After this many years, I'm finally trying to do something about it that (hopefully) scales better than one-on-one meetings.

Similarly, giving effective presentations is a critical skill that is generally taught in an ad hoc manner in CS PhD programs. I (and most CS faculty) have seen countless job talks derail an otherwise slam-dunk academic job interview, or poorly organized conference talks scare audience members right out of the room.

This class will hopefully address some of these issues. It is adopted from a similar class designed and taught by Janet Kayfetz, an applied linguist currently teaching at Columbia. I hope to help students improve their skills using techniques pioneered by her technical writing classes, combined with my past experiences reading, editing and evaluating technical writing.

What this class is NOT: This is not an English class. The focus here is on clear writing and presentation, not grammar or vocabulary. We assume students have a sufficient command of the English language for technical writing, e.g. intermediate English skills.

Finally, please enroll only if you are fully committed to improving your writing skills. The course will not function well if students disappear near the end of the quarter when other deadlines pop up.


Tu/Th 2:00-3:00PM, Crerar 346 (note change in location!)

Professor: Ben Y. Zhao
Weekly short writing assignments (1-2 pages, 10pt)
1 final writing sample (6 pages, 10pt)
1 final oral presentation (5-8 mins)

Enrollment is by instructor consent only, and capped at around 20, with priority for PhD students in Computer Science. If you want to enroll, please email me for explicit authorization before enrolling. You can go ahead and enroll if your name is on the following list:

  • Jas Brooks
  • Yuxin Chen
  • Jenna Cryan
  • Weija He
  • Huan Ke
  • Chi Li
  • Guangpu Li
  • Huaicheng Li
  • Huiying Li
  • Ankita Pasad
  • Jean Salac
  • Dixin Tang
  • Shu Wang
  • Zhujun Xiao
  • Yuanshun Yao
  • Anqi Zhang
  • Lefan Zhang
  • Valerie Zhao

email Ben

More Details

As a group, we will learn to improve our writing skills through a number of complementary techniques. We will discuss rhetoric patterns and principles of writing as a group; we will practice free-flow journal writing; and we will practice technical editing as a group and through peer-editing sessions.

free Template by free Template by
Materials Covered

Our primary goal is to learn how to write well. If necessary, we may expand time spent covering the writing portion of the course, and compress time allotted for presentations.

Our goal is to cover a number of writing formats. In addition to reading/editing papers, we will also cover abstracts, reviews, research statements, and proposals.

Much of our class time will be spent in group editing, where we analyze paper samples to practice skills of reading and editing. We will make use of published papers as well as manuscripts in progress.

Peer editing will be a critical part of the class, where students paired up for the quarter read each other's writing and give critical feedback through an interactive process.

Technical writers tend to make the mistake of combining editing and writing in a single pass, trying to find the perfect verbiage or expression on the first try. This often leads to slow progress and frustration by the writer.

We will use a fixed period of in-class time to practice free-flow journal writing, as a way to form a habit of decoupling writing from editing. Students can use quantifiable measures of throughput to mark their progress through the quarter.

Unlike most CS classes, CS30100 is not teaching a fixed set of knowledge or theory. Instead, this class focuses on self-improvement by each student. Grading will be primarily determined by a combination of level of class participation, and measurable relative progress using each student's initial writing samples as a baseline.

There are no required textbooks, but Ben strongly suggests reading through a few key books as references (note that used books or Kindle versions are much cheaper on Amazon):

Style: Lessons in Clarity and Grace, Joseph Williams and Joseph Bizup, 12th edition (earlier also ok), Pearson, 2016.
Writing for Computer Science, Justin Zobel, 3rd edition (earlier also ok), Springer, 2014.
The Elements of Style, William Strunk and E.B. White, 4th edition (earlier also ok), Pearson, 1999.


We will use piazza for communication, discussion and announcements.

Signup for Piazza