- phase completed
- phase in-progress
In the College of Science & Engineering, the 45 faculty in Computer Science & Engineering help develop students’ programming language ability as well as their ability to translate client needs into programming. The Computer Science major enrolls approximately 800 undergraduates, many of whom go on to become programmers, designers, and innovators in computer research and development.
Writing in Computer Science & Engineering
The Computer Science and Engineering faculty generated the following description in response to the question, “What characterizes academic and professional communication in this discipline?”
Precise: Computer-related written works are often instructions for people who are building, modifying, or supporting computer systems. Computers have no tolerance for imprecision, and small errors or ambiguities can have large consequences. Therefore, communicating details precisely is important.
Complete: A common problem is giving instructions that are correct but incomplete. Some details are easy to obtain, understand, and explain, but others are more difficult. While there is a temptation to only write about those things that are easy to write about, others rely on this information to do their jobs. Therefore it is important that authors write about what the reader needs, not merely what the writer wants to write.
Understandable by the Target Audience: Much writing is done by technical people for technical people, but some is done by technical people for non-technical people (e.g., managers and end- users). Even when writing for a technical audience, the audience's technical skills might be in a different area. For example, database administrators frequently work with application programmers. Because they typically know far more about databases than the programmers and far less about programming, they must ask more questions than they might ask another database administrator, be more precise, give more background, and be aware of terms that might have different meanings to different communities.
Searchable and Quickly Understood: Most documents in this field are used like dictionaries – the reader has a specific question, wants to quickly skip to the right page, find the answer, and close the book. Programmers want to quickly determine what the requirements are for the specific function they're working on, network administrators want to know which servers are behind a specific load balancer they're considering upgrading, project managers want to know which tasks are behind schedule, and managers want to know what, exactly, a proposed project is going to cost. Bullet points, diagrams, and tables are often preferable to text, and highly structured documents are preferable to less searchable ones.
Writing Abilities Expected of Computer Science & Engineering Majors
After reviewing ideas submitted by undergraduate majors, graduate student TAs, and faculty colleagues, the Computer Science and Engineering faculty generated the following list in response to this question, “With which writing abilities should students in this unit’s major(s) graduate?”
Minimum Requirements for Writing in the Major:
- Describe software or system processes accurately, clearly, and illustratively, using appropriate structures.
- Provide low-level code explanations such as comments accurately, concisely, and informatively.
- Describe algorithms accurately and concisely, with appropriate structure and appropriate balance between high-level characteristics and low-level details.
- Write for specific audiences with appropriate tone, level of explanation, and accessibility.
- Use appropriate structures (e.g., lists, visuals), cite them appropriately, and integrate diagrams, etc. into the text.
- Justify choices of design, algorithms, etc. persuasively, clearly explaining the reasons for the choice, as well as any important alternatives, tradeoffs, etc.
- Compare and contrast alternative solutions clearly, accurately, and insightfully, with an appropriate level of detail and appropriate structure, diagrams, etc.
- Present high-level (theoretical or technical) analysis clearly, accurately, and insightfully, providing a high-level summary that focuses on the most important aspects of the problem or system.
- Present low-level analysis or proofs rigorously, precisely, and accurately, with appropriate structure, flow of ideas, and careful attention to details.
- Present content accurately and concisely with an appropriate balance between high-level and low- level ideas, and with appropriate structures.
- Authentically reflect individuality (when appropriate) through writing that shows the writer’s unique background, perspective, etc.
Menu of Grading Criteria Used in Computer Science & Engineering Courses
The Computer Science and Engineering faculty have generated a set of grading criteria.
- Solves the right problem: addresses the key problem(s) in the assignment description.
- States key information clearly: problem statements, key ideas or issues, important findings or recommendations, etc.
- Addresses the target audience with an appropriate tone and level of explanation.
- Presents any needed background or explanation clearly and informatively.
- Persuasively justifies any choice of algorithm, design, problem approach, problem solution, etc.
- Describes algorithms, data structures, software, system components, etc., accurately.
- Describes algorithms, data structures, software, system components, etc., informatively and concisely.
- Uses terminology and notation correctly.
- Explains high-level ideas with low-level details.
- Presents low-level ideas clearly and accurately.
- Uses appropriate structures (e.g., lists, diagrams, equations, code samples, etc.).
- Tables, diagrams, references, etc. are clear and informative.
- Tables, diagrams, references, etc. are smoothly integrated into the text.
- Has a good organization and “logical flow.”
- Uses correct grammar, spelling, and mechanics.
Highlights from the Writing Plan
After a series of lively discussions in which faculty members wrestled with questions like "Where and how is writing currently defined in our curriculum?" and "At what point in their education should computer science students be able to explain software development activities to non-technical audiences?", the faculty created first-edition and second-edition Writing Plans focused largely on augmenting TA training, better supporting the department’s writing intensive courses, piloting a Writing Fellows program in one of the courses, and constructing brief and timely instructional aids for faculty and TA use in a variety of courses. These aids include several five-minute workshops, a model of brief and targeted instruction on relevant writing concerns.
In Summer 2017, Computer Science successfully submitted its third-edition Writing Plan, which includes plans for the more intentional use of writing criteria in earlier courses, updated resources for the department's writing intensive courses, development of additional training for TAs, and the continued use of undergraduate writing mentors.