The goal of the sixth homework assignment is to allow you to practice creating documents and graphs using LaTeX and GNU Plot.

For this assignment, record your source material in the homework06 folder of your assignments Bitbucket repository and push your work by 11:59 PM Friday, March 18, 2016.

Activity: Diversity in Computer Science (15 Points)

For this activity, you are to write a short report (2-3 pages) about Gender and Ethnic Diversity in Computer Science. In particular, you are to analyze the student demographic data of the Computer Science and Engineering Department at the University of Notre Dame as provided by our friend Ramzi Bualuan.

Background

For context and background material, you may wish to first read some of the following articles regarding gender and ethnic diversity in Computer Science and the technology industry in general:

Ethical and Professional Issues

This assignment is inspired by a discussion we had in the CSE 40175: Ethical and Professional Issues class, which is a required course for all Computer Science and Engineering students.

Demographics Data

Ramzi Bualuan has graciously provided us with the student demographic data for all Computer Science and Engineering students from the class of 2013 through 2018. It can be downloaded by doing the following:

$ curl -O https://www3.nd.edu/~pbui/teaching/cse.20189.sp16/static/csv/demographics.csv

$ head demographics.csv
2013,,2014,,2015,,2016,,2017,,2018,
M,C,M,C,F,N,F,N,M,C,M,N
M,C,M,S,M,C,M,C,M,N,M,C
M,C,M,C,M,C,F,C,F,N,M,C
M,C,M,C,M,C,M,N,M,C,M,C
M,C,M,C,M,C,F,C,M,C,M,C
F,C,M,C,M,C,F,N,F,C,M,C
M,C,M,C,M,C,F,C,M,C,M,N
M,C,M,C,M,O,F,C,M,C,M,C
M,O,M,C,F,O,M,C,M,C,M,C

As can be seen above, the demographics.csv file has two columns for each class:

  1. The first column records the gender and contains either M or F which stands for Male or Female respectively.

  2. The second column records the ethnicity and consists of the following mapping:

    Letter Ethnicity
    C Caucasian
    O Oriental
    S Hispanic
    B African American
    N Native American
    T Multiple Selection
    U Undeclared

You are to write shell scripts that processes the demographics.csv file in order for you to create tables and graphs that answer the following questions:

  1. What is the overall trend in gender balance in the Computer Science and Engineering program at the University of Notre Dame?

  2. How has ethnic diversity changed over time in the Computer Science and Engineering program at the University of Notre Dame?

Exactly how you process and present the data is up to you, but you must write shell scripts to do the processing and you must use GNU Plot to produce the graphs.

Report

Once you have processed and examined the data, you are to write a report using LaTeX with the following sections:

  1. Title: This should contain the title of your report, the date, and your name and email address.

  2. Overview: This provides a brief overview (a paragraph or two) of what you did, how you did it, what you discovered, and what your main takeaway was.

  3. Methodology: This briefly describes how you processed the demographics.csv data and how you produced the graphs. In particular, it should discuss any interesting or frustrating problems you faced and how you overcame them. You may include code listings of your shell scripts if you wish (as long as you provide some description to accompany the code).

  4. Analysis: This should provide tables that summarize the demographics.csv data and graphs that provide insight into the two questions above. You should accompany these tables and graphs with some commentary on the meaning of the data and plots.

  5. Discussion: This final section is an opportunity for you to reflect on the issue of creating a welcoming and supportive learning environment at the University of Notre Dame. For instance, you may wish to discuss any of the following questions:

    • Are the issues of gender and ethnic diversity important to you? Should the department work to increase diversity? Should the technology industry try to improve workplace diversity? Why or why not?

    • Does the Computer Science and Engineering department provide a welcoming and supportive learning environment to all students? In what ways can it improve?

    • What challenges have you experienced thus far in the Computer Science and Engineering program? How could the department or university better support you?

Guru Point (1 Point)

For extra credit, you are to use NetFile to Publish a Web Site website. Rather than manually writing HTML, you are to use a static website generator such as:

  1. Jekyll

  2. Pelican

  3. Hugo

  4. Hexo

Alternatively, you can cobble together your own website generator using scripts and something like Python-Markdown. For instance, the course website and the instructor's homepage are created using a Python script called yasb.py.

Once you have decide on the tool you wish to use and create some static HTML files, you will need to upload the files to NetFile using your favorite file transfer tool (ie. sftp, scp, or rsync).

The actual content of the website is up to you, but I recommend that you take this opportunity to perhaps create an online portfolio that you can share with family, friends, and possible employers or schools.

Feedback

If you have any questions, comments, or concerns regarding the course, please provide your feedback at the end of your README.md.

Submission

To submit your assignment, please commit your work to the homework06 folder in your assignments Bitbucket repository by 11:59 PM Friday, March 18, 2016. Your homework06 folder should contain the following files: