Ethics, Fairness, Responsibility, and Privacy in Data Science
Engineering for Ethics, Privacy, and Fairness in Computer Systems
Spring 2021
Description: This course takes a technical approach to understanding ethical issues in the design and implementation of computer systems. Tensions often arise between a computer system's utility and its privacy-invasiveness, between its robustness and its flexibility, and between its ability to leverage existing data and existing data's tendency to encode biases. The course will demonstrate how computer systems can violate individuals' privacy and agency, impact sub-populations in disparate ways, and harm both society and the environment. It will also introduce algorithmic approaches to fairness, privacy, transparency, and explainability in machine learning systems. Through hands-on programming assignments and projects, students will design and implement computer systems that reflect both ethics and privacy by design. They will also wrestle with fundamental questions about who bears responsibility for a system's shortcomings, how to balance different stakeholders' goals, and what societal values computer systems should embed.
Instructors
Course Staff
Office Hours
- Mondays 10:00a-11:00a on Zoom (Valerie)
- Mondays 4:00p-5:00p on Zoom (Blase)
- Tuesdays 4:30p-5:30p on Zoom (Blase)
- Wednesdays 5:00p-6:00p on Zoom (Valerie)
...or by appointment
Course Information
CMSC 259 vs. DATA 259 |
Spring 2020 saw the first offering of a new UChicago class --- "Ethics, Fairness, Responsibility, and Privacy in Data Science" --- offered under the course number CMSC 25900. The course was co-created and co-taught by Raul Castro Fernandez and Blase Ur, and it was open to students in both the Data Science and Computer Science programs at UChicago.
Both in the current quarter (Spring 2021) and moving forward, we are instead offering two distinct, yet related, classes with different target audiences. DATA 25900, taught by Raul Castro Fernandez, focuses on ethical issues in data science. Students pursuing UChicago's Data Science Minor, or who are intending on a career in data science, should take DATA 25900. Programming assignments will be in Python using Jupyter Notebooks, similar to STAT/CMSC 118 and 119. There will also be assigned readings and a final project. CMSC 25900, taught by Blase Ur, instead focuses on ethical issues in the design of computer systems. Students pursuing UChicago's Computer Science Major or Minor, or who are intending on a career as a software engineer, should take CMSC 25900. Programming assignments will be more substantial and will necessitate using a variety of different programming languages. There will also be assigned readings, but no final project.
If you are uncertain whether DATA 25900 or CMSC 25900 is right for you, please write to both Blase and Raul as soon as possible, explaining your background and academic trajectory. We'll be happy to direct you towards the more appropriate course! If you are realizing that you are signed up for the wrong one, again please write to Blase and Raul as soon as possible. Because both classes are currently full, do not drop the class; we will arrange your registration to be transferred to the appropriate section.
Note that students may not take both DATA 25900 and CMSC 25900 for credit, even in different quarters. Further note that CMSC 25900 counts for both the Data Science (DS) and Computer Science (CS) programs. In the CS program, CMSC 25900 counts as a CS elective. In the DS program, CMSC 25900 would fulfill the requirement of taking either CMSC 25900 or DATA 25900. In contrast, DATA 25900 only counts for the Data Science program; it does not count for the CS program. If you happen to be majoring in CS and minoring in DS, note that a single course cannot count for both your major and your minor.
|
Prerequisites |
CMSC 20300 or 20600 or 21800 or 22000 or 22001 or 23000 or 23200 or 23300 or 23320 or 23400 or 23500 or 23900 or 25025 or similar with permission of the instructors. The intent is for you to have taken at least one "systems-focused" CS class following the intro sequence before taking this course. |
Lectures |
There will be 18 lectures during the course. Note that 9 of these lectures will be joint between CMSC 259 and DATA 259 (half given by Blase, half given by Raul), while the other 9 lectures will be specific to CMSC 259 and will be given by Blase. Lectures will be held 2:40pm - 4:00pm on Tuesdays and Thursdays on Zoom (see our Canvas site for the link). Lectures will be synchronous and rely heavily on engaged participation and discussion among students to explore issues of ethics, fairness, privacy, and responsibility. To protect the privacy of students voicing their opinions and to encourage robust discussion, we will not record lectures. Please let Blase and Raul know as soon as possible if this lack of recordings would prohibit your ability to participate in the class (e.g., due to your current time zone), and we will try to make special arrangements. |
Textbook |
We will not be using a textbook, but rather reading papers published in recent computer science conferences and news articles.
|
Coursework |
The coursework for CMSC 259 consists of nine assignments and nine accompanying reading responses. There are no exams.
Assignments typically will have two sections. The first section, synthesis, generally involves substantial programming tasks that synthesize ethical lessons from the prior week's lectures in the context of implementing real systems. Synthesis tasks will be graded both on the quality of the implementation and the integration of the ethical issues presented in the course. The second section, exploration, generally involves somewhat underspecified tasks that will illuminate how easy it is to inadvertently implement computer systems in ways that are problematic. Exploration tasks will be graded primarily on completeness, and they specifically will not be graded on their adherence to ethical principles. In fact, the goal of exploration tasks is for ethical issues to arise organically in your own code. Across these two styles of tasks, you will write code in a variety of languages, including Python, JavaScript, MySQL, and HTML. We expect that students will be proficient programmers in general, though they won't necessarily have experience with all of these languages. Note that not every assignment will have both types of tasks.
In addition, there will be weekly reading responses, which will ask you to respond in prose to readings germane to the topics we will be covering that week.
|
Communication |
We will use Zoom (see Canvas for the link) for all lectures. We will also use the same Zoom link for all office hours. Note that there is a different Zoom link (also linked on Canvas) for the lectures we will be sharing with DATA 259.
We will update the course schedule regularly throughout the course. All assignments will be distributed on Canvas. Based on positive experiences with this approach last quarter, assignments will be collected in two different places to facilitate communication. All assignments will require you to write both computer code and prose. You will upload all code you write for an assignment to Canvas. If you have multiple files, you may upload them individually or as an archive (zip, tar, etc.). You will upload your prose write-up to Gradescope. Note that part of the process of submitting work on Gradescope is that you'll need to identify where in your upload the answers to each question are, so please allow time for doing so as you submit. We will use Gradescope to grade the assignments, so you'll receive feedback (both about your prose write-up and your code) on Gradescope. We will sync the numerical grade back to Canvas, though the feedback/rubric will only be available on Gradescope. If you believe there was a grading error for an assignment, please use the "regrade request" functionality on Gradescope, which will help us track these requests.
We'll use Campuswire for general discussions, questions about the course material, and questions about assignments. Please try to keep all course-related communication to Campuswire rather than email to facilitate coordination among the course staff. If you need to reach out to the instructors (e.g., pertaining to an illness or other events that might be impacting your performance in class), please make a post on Campuswire visible only to the instructors. Please be sure to use the "Extensions request" tag on Campuswire for any requests for extensions (see "Late Policy" below for further details). In addition, please use the "P/F request" tag on Campuswire to request to take the class pass/fail (see "P/F Grading" below for further details). Obviously, post both types of requests as private, visible only to the course staff.
|
Late Policy |
We will accept assignments up to 24 hours late with a 15 point grade penalty. Assignments more than 24 hours late will not be accepted without a previously approved extension.
Of course, in exceptional circumstances related to personal emergencies, serious illness, wellness concerns, family emergencies, and similar, please make the course staff aware of your situation and we will do our best to find a mutually agreeable solution, such as an extension. We do not consider job interviews, midterm weeks in other classes, or non-emergency travel to be exceptional circumstances.
|
Grading
Your course grade will be calculated as follows:
|
Total |
Assignments (9) |
76.5% (8.5% each) |
Reading Responses (9) |
13.5% (1.5% each) |
Participation in Lectures/Discussions |
10% |
P/F Grade Policies
As outlined in UChicago's
policy, this course may be taken pass/fail (P/F). Students who wish to take the course pass/fail, instead of for a letter grade, must make a Campuswire post with that request by the end of Week 9. A grade of P will be given to students who would have earned a C- or better in the course if it were taken for a letter grade. Due to the exceptional circumstances of the pandemic, there are special
pass/fail policies in place regarding when a class that is taken pass/fail may count toward the computer science major.
Academic Integrity Policies
The University of Chicago has formal policies related to academic honesty and plagiarism, as described by the
university broadly and
the college specifically. We abide by these standards in this course. Depending on the severity of the offense, you risk being dismissed altogether from the course. All cases will be referred to the Dean of Students office, which may impose further penalties, including suspension and expulsion. If you have any question about whether some activity would constitute cheating, please ask. In addition, we expect all students to treat everyone else in the course with respect, following the norms of proper behavior by members of the University of Chicago community.
Student interactions are an important and useful means to master course material. We encourage you to discuss the material in this class with other students and to form study groups. It is totally acceptable to discuss assignments in general terms, such as discussing and sketching out the general approach to an assignment on a whiteboard (or the virtual equivalent thereof). However, it is not acceptable to show someone else your code, nor to look at someone else's code, even over screensharing. Similarly, it is not acceptable to turn in someone else's writing or code (or fragments thereof) as your own. When the time comes to write down your answer, you should write it down yourself from your own understanding.
Moreover, you must cite any material discussions you had with another student in the course or any written sources you relied on in non-trivial ways when working on an assignment.
That is, at the top of each assigment submission, you must include a list of all other students with whom you discussed the assignment and all resources (e.g., URLs of webpages) that directly influenced your general solution. For example, "I discussed this assignment with Jane Smith and John Doe. I consulted https://www.helpfuldomain.com/helpfulpage.html to learn about the JavaScript event loop." You do not need to cite discussions with the instructors or TAs, nor do you need to cite anything from our course Campuswire page. You also do not need to cite the course slides or any other readings/materials we provide to you. If one student "helps" another by giving them a copy of their assignment, only to have that other student copy it and turn it in, both students are culpable.
Furthermore, if you are
reusing short code snippets fairly verbatim (e.g., from a tutorial) for a small section of your assignment, that is fine, but you
must indicate the source (e.g., URL) as a comment in your code at the place where you are reusing code. Failure to attribute code reuse as a comment in your code where a code snippet from a tutorial, StackOverflow, or similar is being reused is a violation of our academic integrity policy. You should not be reusing code snippets for a substantial fraction of your assignment.
As a rule of thumb, if more than 5 lines of code are taken mostly verbatim from a given source, you are probably violating the academic integrity policy and should check with the course staff (in a private Campuswire post) about this code reuse well before the assignment deadline.
In general, for any specific questions you have about why your specific approach to a problem isn't working (and definitely for any post that includes your own code), you should default to posting privately to the course staff on Campuswire. If you have more general clarification questions or comments about assignments that don't include code snippets, please post publicly on Campuswire.
If you have any questions about what is or is not proper academic conduct, please ask an instructor. Please note that we are personally willing to pursue cheating cases and have done so in the past. Finally, note that this description of academic honesty is derived in part from policies written by Stuart Kurtz and John Reppy.
Policies About Remote Interactions and Recordings
We expect your interactions via Zoom to be consistent with an in-person class experience. Respect the people you're working with. Enter the Zoom meetings muted if possible (pay careful attention to this if you are calling from a phone), and unmute to speak. Feel free to either interrupt the instructor or raise your hand using the "raise hand" button if you'd like to ask a question or comment on what was said. If you would rather not unmute yourself to ask a question, please feel free to use Zoom's messaging feature to either send the question to the full class ("everyone") or just to Blase.
No one is required to have their video on, and you may choose not to do so for any reason, ranging from logistical difficulties to preference.
Note that in the settings page on the Zoom website, you can change the name automatically assigned to your Zoom profile. You don't have to go with whatever was assigned if you prefer a different name. If you have preferred pronouns, you can include them after your last name; you'll see an example of the instructors doing this. If you set a name that can't be easily matched to the name on record with the University, please let us know so that we don't inadvertently disconnect you from the lecture.
We will not record lectures, and we ask that no students record the lectures. However, we don't have control over what others attending the class will do (e.g., making a recording). If you have FERPA concerns, please mask yourself accordingly (e.g., by turning off video and using an alias).
As the University temporarily transitions to a remote teaching and learning environment, instructors and students have asked for guidance on the recording of course sessions. Instructors have the discretion to record course sessions, except when recording is required to meet the needs of students granted an accommodation by the Office of Student Disability Services. Recordings and transcripts will be made available to students in the relevant course, the instructor, and other necessary University officials. Recordings in which students are personally identifiable will be managed in accordance with the Family Educational Rights and Privacy Act (FERPA).
This time-limited policy has been implemented to effectively deliver a remote education while safeguarding privacy and protecting rights in courses and instructional materials. Below is an acknowledgment for students designed to govern the use of any recordings and provide instructors and students with guidance on the use of instructional materials.
By attending course sessions, students acknowledge that:
A. They will not: (i) record, share, or disseminate University of Chicago course sessions, videos, transcripts, audio, or chats; (ii) retain such materials after the end of the course; or (iii) use such materials for any purpose other than in connection with participation in the course.
B. They will not share links to University of Chicago course sessions with any persons not authorized to be in the course session. Sharing course materials with persons authorized to be in the relevant course is permitted. Syllabi, handouts, slides, and other documents may be
shared at the discretion of the instructor.
C. Course recordings, content, and materials may be covered by copyrights held by the University, the instructor, or third parties. Any unauthorized use of such recordings or course materials may violate such copyrights.
D. Any violation of this policy will be referred to the Area Dean of Students.
Wellness
If a personal emergency comes up that might impact your work in the class, please let Blase know in a Campuswire post visible only to the instructors so that the course staff can make appropriate arrangements. University environments can sometimes be very overwhelming, and all of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful. If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. The University of Chicago's
counseling services are here to support you. Consider also reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:
• Student Counseling Urgent Care: (773)702-9800 or in person.
• National Suicide Prevention Lifeline: 1-800-273-8255