This course will teach the students how to think critically about the design, development, and applications of computer science in human life. It will introduce the students to several critical theories from the social and political sciences and teach them how to analyze a computing system using those theories. The students will also learn how such critical thinking can then be used to design and develop innovative, fairer, and more ethical computing systems. The students will have weekly reading assignments and in-class design/discussion sessions. They will be asked to submit one midterm paper in the middle of the semester. The students will also submit a project at the end of the course. The final grade will be based on the reading responses, in-class participation in the discussions, midterm paper, and final project.