Integrated Writing in Computer Science

In developing the integrated-writing requirement in computer science, the faculty identified five guiding principles.  First, we wanted the requirement to focus on the form of writing most useful for computing professionals with four-year degrees.  Second, we wanted the integrated-writing requirement to support the department’s undergraduate learning goals.  Third, to comply with the university’s requirements for integrated writing, we had to ensure that all majors would complete the requirement in the same manner.  Fourth, we wanted the learning and practice of integrated writing to span multiple courses and years.  Fifth, we wanted to reinforce and expand a student’s exposure to writing over multiple courses.

The integrated-writing requirement primarily supports three of the department’s [high-level learning goals; (new window)].  Students should understand “how theoretical underpinnings of the discipline influence practice.”  They should deploy “appropriate theory, practices, and tools for the specification, design, implementation, and maintenance as well as the evaluation of computer-based systems.”  Finally, students should communicate “scientific understanding in oral and written forms.”  In the following paragraphs, we connect the elements of the integrated-writing requirement to these learning goals.

In computer science, the three most important forms of writing are technical writing, academic writing, and professional writing.  While all of these forms are important for computing professionals, technical writing is the form that all majors must learn and practice, as technical writing is the form of writing that computing professionals with a four-year degree will use most.  Note that there are opportunities for students to learn and practice the other two forms of writing.  For example, all majors have the option of writing a senior thesis, which gives them instruction on academic writing.

To implement the integrated writing requirement, the faculty identified five required classes that are common to all students pursuing the Bachelor of Science (BS) and Bachelor of Arts (AB) degrees and that are most appropriate for technical writing assignments:

  • Computer Science II (COSC-052)
  • Mathematical Methods for Computer Science (COSC-030)
  • Advanced Programming (COSC-150)
  • Data Structures (COSC-160)
  • Introduction to Algorithms (COSC-240)

These courses span three of the four years that students pursue their degree.  Students normally take Computer Science I and Mathematical Methods for Computer Science in the spring semester of their first year.  They take Advanced Programming and Data Structures in their sophomore year.  They take Introduction to Algorithms in their third or fourth year.

Additionally, we can group these five courses into two categories: courses in which students learn to write formal algorithms and proofs and courses in which students learn to write software requirements, designs, and documentation.  Mathematical Methods for Computer Science and Introduction to Algorithms form the first category, with Computer Science II and Advanced Programming forming the second.  Data Structures falls into both categories.

Our implementation supports three important learning goals.  Students learn two main forms of technical writing.  They learn how to write formal proofs and formal algorithms.  They also learn how to write documentation for software as well as designs for software systems.  Learning about these forms of technical writing is most appropriate for students pursuing a four-year degree in computer science, most of whom will join companies in technical roles as software developers, product managers, and software engineers.