CSC290 Communication Skills for Computer Scientists

Fall 2019

Blog Posts
Critical Reviews

Blog Posts

Many programmers and computer scientists write blogs. They write as a way to think through a problem, to practice writing frequently, and as a way to communicate their ideas to a wide audience.

You are expected to maintain a blog throughout this course. This is both so that you write frequently, and to build an online presence and portfolio that could be useful later on. Each blog post counts for 2% of your overall course grade.

You are encouraged to post your blog URL to the discussion board on Quercus, follow other students' blogs, and interact with other students in this course. For blog posts that you are especially proud of, you should consider sharing it more widely to your network and with the internet.


Blog posts are due weekly by 9:00pm on Sundays. Submit your blog post by posting your blog post on your blog, then submitting a text file named "link.txt" containing the URL of your blog post. Both must steps be completed by the deadline.

Topics and Deadlines

1Sep 15, 9:00pm


Introduce yourself to readers, so that the readers can remember you and will know something unique about you. What are your interests? What are your goals? How can other people help you, and what kind of help can you offer to other people? You should discuss one goal you have related to CSC290.

The structure of your blog post is very important. Avoid answering the prompt questions one by one. Instead, think about the message of your blog post and structure your blog post depending on what you want to get across.

Be careful about revealing personal information on the internet. You can opt to write about yourself anonymously. However, having an online presence can help you be known amongst other students and the wider community. Being "known" can be immensely helpful for your career!

2Sep 22, 9:00pm

Your best project

Describe your best project: the project you are most proud of. What did you do? Who did you work with? What was challenging? What made the project worthwhile? What impact did it have on other people? What did you learn? Why are you proud of the project?

Your project doesn't have to be programming related. Also, you don't have to answer all prompt questions. An in-depth answer of a few questions makes a better blog post than enumerating answers.

Be clear and specific. One of the worse things you can do is talk about your project in generalities, or talk only about the circumstances surrounding the project rather than the project itself.

PS: one of the required reading is a blog post titled Writing is Thinking. If you are stuck, or don't know what to write, start there.

3Sep 29, 9:00pm

Describe a Technical Concept

This week's blog post will be a technical blog post. There are a four topics that you can choose from. Please do not write a blog post on any other topic. The possible topics are:

  • Binary search tree
  • Hash table
  • Linked list
  • Bloom filter (This is a probabilistic data structure that you probably haven't seen before, but is quite widely used in industry)

If you'd like, you can include code snippets to clearly express specific ideas. If you choose to use code, use a monospace font like Courirer New or Monaco (why is that?). However, do not take screenshots of code and post it as an image: an image is difficult/impossible for people with visual impairments to read with their screen readers. Making content accessible is an important part of communication, especially for computer scientists.

Remember to keep the audience in mind. In this case, your readers are computer science students and enthusiasts.

Here are some examples of technical blog posts that computer scientists wrote:

5Oct 20, 9:00pm

A book "review"

Since this week is reading week, this blog post will be a little more open-ended than the others. Quite a few students mentioned in the pre-course survey that reading is one of their hobbies, so this blog post is an opportunity to explore books about the "softer" side of computer science. If you prefer to keep it simple, you can write your blog post on Chapter 1 of "The Pragmatic Programmer", which is required course reading and is available on Quercus.

Choose one of the books below, or another non-political book about programming, computer science, software development, software design, or project management.

  • The Pragmatic Programmer: From Journeyman to Master
  • Coders at Work: Reflections on the Craft of Programming
  • Founders at Work: Stories of Startups' Early Days
  • The Mythical Man-Month
  • Don't Make Me Think
  • The Design of Everyday Things
  • The Inmates Are Running the Asylum
  • The Visual Display of Quantitative Information
  • The Zen of CSS Design: Visual Enlightenment for the Web
  • Godel, Escher, Bach: An Eternal Golden Braid (this is a great book, but will take you more than one week, and is not for the faint-hearted)

Read at least 1-2 chapters of the book. Write a blog post about why you chose the book, what you read, and what your reactions were. What was interesting about the book? What ideas did you think were profound? Do you agree with the author?

Do not assume that your readers have already read the book you chose. Instead, start with a summary describing what you read, so that the rest of your blog post makes sense.

The structure of your blog post is very important. Avoid answering the prompt questions one by one. Instead, think about the message of your blog post and structure your blog post depending on what you want to get across.

Most importantly, have fun!

10Nov 24, 9:00pm

Cold Email (not a blog post)

This week's "blog post" isn't a blog post at all. Instead, you will put what we learned about emails to good use, and write a cold email to someone who could help you professionally. You should not publish this email on your blog.

First, think about how someone with more experience could help you right now. Is there a company you are looking to join? Are you looking for a summer internship? Identify ways that other people can help you.

Next, look on the internet (for example on LinkedIn) for someone who could help you achieve what you are looking for. This could be someone who currently works at a company, a startup founder that might give you an internship, or a graduate student working with a professor whom you would like to do research with.

Avoid famous people. Instead, choose people who are likely to respond to you, including people whom you have connections to.

Finally, write an email to this person. You could ask them for advice over coffee, for possible job openings, or anything else appropriate for your current situation.

You are not required to actually send this email. However, you will be doing the hard work of drafting it, so why not? Students have received responses from recipients in the past, and had successfully scheduled coffee meetings to discuss internships.

For this week only, submit a PDF file on MarkUs containing both (1) information about the recipient of your email and why you chose him or her, (2) the email subject and body.

Grading will be out of 5. With:

  • 1 point for including the description of the person, and why you chose them.
  • 1 point for completing the email.
  • 1 point for including good content (and the right amount of content) in the email.
  • 1 point for structure, including following the guidelines we described in class.
  • 1 point for grammar/mechanics.
to get to the point, use paragraphs effectively, and have an effective call-to-action.a subject that is appropriate. Finally, be polite and professional.
11Dec 1, 9:00pm

Mini "Critical Review"

For this blog post, we'll be critical analyzing this survey result released by StackOverflow:

Developers Who Use Spaces Make More Money Than Those Who Use Tabs

Write a blog post that briefly summarizes the article and its methodology, and a short review of the methodology. The formatting and the writing should be similar to the critical review, but with a few key differences:

  • Your blog post will be shorter. Keep your summary brief, and focus on 1 or 2 critiques or insights.
  • You do not need to cite any additional sources. The citation can be in any reasonable format that links the reader to the article that you are reviewing.
  • Your writing should be more conversational and less formal, but still professional (e.g. the author of the original study should not feel personally attacked or offended by your critique).

PS: If you don't understand the statistical terms mentioned in the article (regression, p-value, etc), that's okay. You can focus on different aspects of the methodology.

Blogging Platform

You can use Blogger, WordPress, or medium as a blogging platform. You are not expected to have to pay for your blog hosting.

Keep in mind that blogs are public (readable by your peers and the entire web). You do are not obliged to provide your identity, and you should avoid revealing personal or private information in the blog. Your blog URL will be shared with the CSC290 course so that you can engage with each other and see what other classmates are thinking about the course topics.

If you wish to keep a blog that is only available to me and your classmates in this course, please speak to me.


The audience for your blog are other Computer Science students, and other people interested in Computer Science, including your TAs and instructor.

Blog post should be informal, but professional. This means that blog posts need not use highly formal language, but you are expected to use proper spelling, grammar, mechanics and avoid use of slang and colloquial writing (eg. lol, emoticons, etc). Do not swear in your blog posts.

You are not graded on the length of the blog posts. They should usually be 300-600 words long. Blog posts must adequately respond to the given topic/question of the week in order to be deemed complete.

Blog posts must be fully completed in the week that they are due. You are not expected to, nor should you, edit or re-write your blog posts at a later date to change or to improve them.

Penalty for Late Work

As stated in the course syllabus, will receive six grace tokens. Grace tokens are tracked automatically using MarkUs. When you submit a late blog post, you do not need to explicitly say you are using a grace token; just submit your work within the grace token periods.

No other late work will be accepted.

Blog posts submitted electronically will be timestamped based on the MarkUs server time, not the student's local/PC time.


Each blog post will be graded on the following

1 markCompletion Does the blog post addresses the week’s topic sufficiently? TA found the blog post to be roughly on topic, and is more than a couple of sentences long.
1 markContent Is there precise/insightful information in the blog post (rather than only vague generalizations)? TA found the blog post to be unique: only the author could have written the blog post, and not anyone else,the content is specific rather than vague or general.
1 markMemorability Is there at least one piece of information that a reader could recall after finishing the blog post? TA can remember at least one interesting thing from the blog post after reading.
1 markStructure Is the blog post titled effectively? Does it use paragraphs effectively, and use topic sentences so that the blog post can be skimmed? TA understands the rough ideas presented in the blog post by looking at the title and reading the first sentences of each paragraph.
1 markMechanics Does the blog post contain distracting grammatical, sentence, or styling issues? TA was not distracted from the content more than once.

How to submit

First, log into MarkUs. You should see something like this:

Click on "blog 1".

Click the "Submissions" tab.

Find your "link.txt" file. This file should contain only the link to your blog post, and nothing else. Please make sure that your URL is to your blog post, not your blog's home page.

Click "Save".