CSC290 Communication Skills for Computer Scientists

Fall 2019

Blog Posts
Critical Reviews


The midterm take place November 4th during lecture, in the usual lecture hall.


This year's midterm will consist of 30 multiple choice questions (worth 1 point each), and 2 short answer questions (worth 10 points). The midterm for both sections will follow the same format.

The midterm will be separated into two stages:

  • Stage One: Individual (60 min) -- worth 85% This is the type of test that you are used to. The test will comprise mostly of multiple choice questions, with some short answer questions. Each student will hand in one solution sheet and scantron.
  • Stage Two: Group (30 min) -- worth 15% The second part of the midterm test is written in a group of 4 or 5 (your choice). You may choose your own groups. Each group will hand in only one solution sheet and scantron.


The midterm will cover the lecture and tutorial materials from weeks 1-7, including all required reading.

Here are the major topics covered in the midterm.

  • Know the terminology surrounding the SMCR model of communication. Be able to identify aspects of the source/sender, message, channel, receiver, structure, medium, audience.
  • Be able to analyze and improve writing based on the aspects of the SMCR model of communication.
  • Be able to differentiate between conceptual vs empirical arguments.
  • Be able to identify fallacies in conceptual arguments: ad hominem, vested interest, straw man, false dilemma, false analogy.
  • Be able to identify fallacies in empirical arguments: correlation vs causation, sample size, sample choice (biased sample), recency, leading question, survivorship bias, p-hacking.
  • Be able to identify ways that statistics and data visualizations can be misleading.
  • Be able to critically review an article or argument, and organize your arguments into paragraphs.
  • Be able to explain the three-pass method of reading a paper.
  • Know the project management terminology: stakeholders, requirements, deliverable, scope, milestone, risks, work breakdown structure, project proposal, project charter, project plan.
  • Be able to identify project stakeholders.
  • Be able to differentiate functional vs non-functional requirements.
  • Be able to identify a use case diagram and their components (actor, action), and be able to write and evaluate actions.
  • Be able to recognize and read a class diagram.
  • Know the purpose of a wireframe, and what should be included in a wireframe.
  • Be able to use "I" statements, identify the components of an "I" statement, and judge the effectiveness of an "I" statement.
  • Be able to use perception checking, identify the components of a perception check, and judge the effectiveness of a perceptive check.
  • Know the Tuckman's stages of group development, and the characteristics of each stage.
  • Know the characteristics of technical writing.
  • Be able to identify issues with clarity in technical writing.
  • Know the typical structure of the presentation, and what content to include in the introduction, body, and conclusion. Be able to choose an appropriate call-to-action that aligns with the project goal.
  • Be able to identify the characteristics of the problem-solution structure and residual method structure.
  • Know the general attention span of the audience, and how to structure talks to help audience retention.
  • Know the aspects of presentation delivery and strategies discussed in class: body language, eye contact, cadence, volume, what to do if you are nervous.
  • Be able to identify and correct issues in code that would be inconsistent with a readers' expectations, including issues with coding convention, naming, code duplication, and comments.
  • Be able to identify and correct issues with commits: atomic commits, standalone commits, commit messages (using the guideline from class and from the code commit exercise)
  • Be able to explain the code review process, and the reasons behind conducting code reviews
  • Be able to identify aspects of the audience and goal of a piece of technical writing (e.g. what the audience will likely want to do after reading the text).
  • Be able to identify and correct issues in technical and mathematical writing to follow guidelines like separating symbols, avoiding symbols in the beginning of a sentence, avoiding passive voice, making text readable left-to-right, annotating "types", avoiding jargon, defining unfamiliar terminology, and choosing singular vs plural noun in definitions.
  • Be able to discuss ideas introduced in the first chapter of "The Pragmatic Programmer"
  • Be able to identify and correct grammatical issues discussed in lecture, and in the "Grammar Hit List"

Old Midterms

Here are some midterms from last term. The materials covered is different from the previous term, so use these as study aid only.