The “Most Important Course” for a Computer Science Student: Creative Writing
As a computer science professor, I am often asked: what is the most important course for an undergraduate computer science student?
My first answer always is: creative writing.
I realize that there is no actual, singular, most important course — a topic that I return to at the end of this post. Still, I fundamentally believe that creative writing can be deeply enriching and important for a computer science student to study.
Why creative writing.
There are several reasons why I recommend creative writing to computer science students:
- Creative writing is an excellent vehicle through which one can exercise their creativity and think beyond traditional boundaries. Creativity in computer science is important, both to help anticipate the futures we might want as well as to anticipate the futures that we might not want.
- A creative writing course can help one hone their written communications skills.
- A creative writing course can help one become comfortable with writing under uncertainty — e.g., to become comfortable writing an imperfect first draft while one is still shaping the arc of a story
- A creative writing course can help one become comfortable with and appreciate the value of rewriting after rewriting after rewriting.
- A creative writing course can be a nice complement to the more technical courses that a computer science student often encounters.
I cannot overemphasize the value of strong communication skills. And I cannot overemphasize the value of nurturing one’s creativity, which can help computer scientists envision both the “good” and “bad” futures of technology. (“Good” and “bad” are in quotes because, sometimes, a technology might be “good” for some people and “bad” for others.)
Creative writing in computer science courses.
Get Tadayoshi Kohno (Yoshi Kohno)’s stories in your inbox
Join Medium for free to get updates from this writer.
Given my belief in the value of creative writing, it is perhaps unsurprising that I have incorporated creative writing and writing in general into my computer science courses.
I am certainly not the only scientist to explore the intersection of creative writing and computer science education, and I’m sure there are many other amazing resources on the topic! Nevertheless, for those interested, I wrote a paper in 2011 on Science Fiction Prototyping and Security Education. I also put a sample fiction-focused assignment online. This computer security “threat modeling” assignment also has a large writing and creativity component.
What other courses.
While I said that creative writing was the most important course to take, there are of course many other valuable courses. In the spirit of the book Range: Why Generalists Triumph in a Specialized World, I suggest that any course in which someone learns something new and that diversifies them is a valuable course.
Some example courses / course areas that I would recommend to computer science students beyond the traditional computer science curriculum include:
- Courses that critically explore the relationship between society and technology and, especially, courses that help students explore the relationships between marginalized and vulnerable populations and technologies.
- Courses that give students experience with the formality of mathematical proofs and logical arguments.
- Courses that give students experience with statistical methods for analyzing data.
- Courses in psychology, philosophy, environmental science, …, and basically anything outside of computer science.
As I said at the end of my talk to admitted computer science majors:
I encourage you to enjoy your time as an undergraduate and try to learn as much as you can, not just about computing, but about the world in general. Take history classes. Take literature classes. Take philosophy classes. Take psychology classes. Learn and grow. But also be patient with yourself. You don’t need to learn everything immediately. And be forgiving to yourself. It is okay not to be perfect, not to know everything, and not to know what you want to do next.
Acknowledgements.
I learned so much about the PhD process from my own advisor, Mihir Bellare. After obtaining a faculty position, I continued to develop my own philosophy on advising and the PhD process through the advising my own PhD students. Much of my thoughts on advising and the PhD process have also been shaped through the co-advising of PhD students with UW Security Lab co-director Franziska Roesner. Thank you to all the students and postdocs that I have advised, past and present!










