Title image Spring 2017

Writing in CS 251

Writing is a key part of computer science. The following provides some guidance for different aspects of writing as well as some examples that will help you to identify both good and bad characteristics of different asepcts of the writing you will do in this course.


A brief summary is a required part of every CS project report. The summary is a chance for you to provide to the reader a concise description of the content of your report. This should include a description of the task or problem, your solution, and your results. In technical writing, the summary, or abstract, is one of the most critical pieces of a paper, as it is the filter a reader will use to determine the relevance of your work to their own. The abstract is the hook by which you draw the reader into looking at your work more closely.

The following are some examples of prior CS 251 summaries for project 2. As you read them, consider the following questions:

Example 1:
In this project, the goal was to create matrices to store data and manipulate it. We wanted to be able to take in comma separated values and use that as data to manipulate, and potentially later visualize.

Example 2:
For this project, I created programs that can read and analyze data from a csv data file. In a csv data file the first row contains the column headers , the second row contains the type of data (string, numeric, etc.), and the rest of the rows contain the data.

Example 3:
This project was far more data driven then the previous one, and it entailed reading in a data file, then running analysis on that data. Therefore it was crucial that all the accessors and mutators worked perfectly, which required quite a lot of unit testing. In the coming paragraph I will go over my API and my extensions.

Example 4:
This weeks lab was to further expand upon the Data class we wrote during lab. The first file, data.py, contained a read method, which read in data from a specified csv file. It then stores the headers and types into lists and raw_data into a list of lists. Then, it created a header2raw dictionary that has keys which are the names of the headers, and the values which are the numbers of the columns in the data. Afterwards, I had the read method create a list of headers for the numeric data. From this I could make a numpy matrix of the numeric data, which was found by using the list of headers and iterated through each row of the full dataset. Most of the methods turned out to be accessor methods, which will allow me to manipulate the data in the future.