Quick links

Independent Work Seminar Offerings - Fall 2020

COS IW 01: Machine Learning for Social Justice: Data Analysis to Study the Black Lives Matter Movement

Instructor: Barbara Engelhardt

Meeting Time: TBD


In this IW seminar, we will focus on issues of social justice for Black Americans through the lens of data. Students will gather data on issues such as police violence, poverty, incarceration, Covid-19 mortality rates, unemployment, and housing and eviction. These data will be used to ask critical questions about racial disparities, quantify the extent of those disparities, and evaluate the effects of possible interventions such as policy changes. We will use our time to discuss the essentials of data analysis and data cleaning, and presenting results to a broad audience for the purpose of studying challenging issues in social justice.

COS IW 02: Natural Language Processing

Instructor: Christiane Fellbaum

Meeting Time: Fridays, 11:00am-12:20pm


Natural Language Processing, a sub-field of AI, tries to understand and model properties of human language and the ways it is learned, produced and interpreted. Participants in the seminar will choose from a wide range of topics including sentiment and opinion analysis, argument and bias detection, identification of fake news, computational humor, question answering and automated reasoning, in English or another language of their choice. Using datasets constructed for their project from available text corpora, news services, blogs, tweets, etc., they will apply (and possibly improve on) existing pre-processing tools for word segmentation, part-of-speech tagging,morphological analysis andsyntactic parsing.The focus will be on the analysis of explicit or implicit meaning in texts, on the word, sentence or document level. Students may wish to analyze linguistic data dealing with current issues such as the Black Lives Matter movement, the pandemic, or zoom life. Different approaches to semantic analysis, using lexical resources and/or vector space models, will be considered and applied.Projects may explore deep learning.

COS IW 03: Invention and Innovation -- Entrepreneurial Lessons for Computer Scientists in Extraordinary Times

Instructor: Robert Fish

Meeting Time: Wednesdays, 3:00-4:20pm


How does an idea for an invention actually become an innovation in the marketplace? You may be a computer programming wizard, but there is a lot more to it than just fingers on the keyboard. This seminar, in concert with you building an independent product of your choice, introduces some of the elements of thinking and developing an idea into a going concern. Your project will include a software prototype, a presentation, and a paper that explores the feasibility of your idea as a business. To help you frame and complete your project, we will discuss distinctions between invention and innovation, various brainstorming and invention methodologies, the DARPA methodology for idea screening, an introduction to intellectual property including patents, aspects of a simple business plan, project planning and management, and the elements of a “pitch deck.” Typically, we have some interaction with the Keller Center's program for entrepreneurial activities. For the more adventurous, the possibility exists for you to share your idea in a real “virtual” startup pitch event and report on the results.

Students may pair up in these projects, creating a joint idea for an enterprise, with each student concentrating on some aspect of the software with a division of labor of frontend, backend, mobile app, data analysis, marketing, finance, etc. This IW seminar is complementary to COS 448 (Innovating across Technology, Business, and Marketplaces) and would be appropriate both before and after taking COS 448. If you’ve started a project with some entrepreneurial aspects in COS333, you might want to consider developing it further in this IW Seminar. Also, given the extraordinary circumstances in Fall 2020, you might want to think about some entrepreneurial project that addresses issues of remote learning, pandemic responses, or economic and social inequality.

COS IW 04: Help Future Computer Scientists Learn Computer Science (Remotely)

Instructor: Robert Fish

Meeting Time: Tuesdays, 3:00-4:20pm, EDT – Your time may vary


We live in interesting times, with virtual classrooms replacing physical ones. This new paradigm presents interesting new challenges but also opportunities to students and instructors. This seminar focuses on projects that try to enhance the computer science learning environment at Princeton (or perhaps anywhere else!) with an option to focus on remote, virtual, and online learning environments. People need learning environments, especially in remote learning, that enhance group dynamics, maintain motivation, include a degree of self-pacing, as well as engage with individual learning styles.

In this seminar, students will choose some computer science concept from COS 126, 217, 226 or other Princeton Computer Science courses or choose some other aspect of the learning environment that contributes to computer science pedagogy. You might pick some interesting concept that you think you can explain well to other students. Some examples might be 1) the dynamic operation of various gates and circuits in the TOY architecture or 2) understanding the mathematical notation for Finite State Machines. For their projects, students will design and build an online learning experience that is targeted at whatever concept they choose. It can include videos, graphic visualizations, quizzing mechanisms, 3D imagery, or anything else that you can think of that might help students understand a concept. The project should also include an evaluation component by which mastery of the ideas exposed to students may be assessed. A bonus would be utilizing the system to compare learning with it to other, perhaps more conventional approaches, using either qualitative or quantitative methods.

Some possible projects will be suggested early in the seminar, but students are also free to use their imagination and pick their own topic. Weekly meetings will include some initial brainstorming exercises, then we will concentrate on putting together project proposals, doing a review of relevant past work, and then finally, weekly project management presentations that will help students keep their projects on track.

Students may pair up on these projects, creating a joint idea for a learning environment, with each student concentrating on some aspect of the software with a division of labor of frontend, backend, literature review, assessment, data analysis, etc. The learning and use of open source tools, including tools such as Open EdX, Django, the D3 visualization library, and the Unity game engine etc. is encouraged in order that students may create the most effective online learning environments.

Some examples of past projects include an automated COS 226 quizzing system, visualizations of stack and heap data structures, user interfaces to improve student progress tracking, automating lab TA assignments, a curriculum picking tool, a simplified source code control tutorial, introducing elementary machine learning algorithms, and gamification of COS 126 assignments.

COS IW 05: Near-Term Quantum Computing -- Programming and Architectures

Instructor: Margaret Martonosi

Meeting Time: Fridays, 3:00-4:20pm


This IW seminar will engage students in projects related to Quantum Computing.  We will make use of publicly available QC resources to write and run QC programs, such as IBM’s Qiskit.  The seminar will not require prerequisites beyond COS 217 and COS 226, but students should be ready to read challenging technical papers and learn the intricacies of this exciting and fast-changing area.

COS IW 06: Algorithms and Uncertainty

Instructor: Sahil Singla

Meeting Time: Thursdays, 11:00am-12:20pm


Numerous computer science applications can be modeled as discrete/continuous problems where we want to optimize a given objective function while satisfying some constraints. Although there are many known algorithms for such problems, often they rely on exact knowledge of the problem inputs. For many applications, however, we only have estimates on these inputs. How can we design algorithms that sequentially make irrevocable decisions without knowing the entire input? Notice we will need adaptive algorithms that change their behavior depending on the realization of the input. The goal of this course is to learn/develop algorithms with provable performance guarantees for such optimization under uncertainty problems.

Required background is COS 226. Familiarity with COS340 / COS324 / COS445 is a plus, but not required.

COS IW 07: Using Publicly Aailable Data to Learn, Explain, Evaluate, and Improve

Instructor: David Dobkin

Meeting Time: Tuesdays, 1:30-2:50pm


The so-called big data revolution has led to the creation of data sets of various sizes that provide information about real world situations. Datasets of significant size are available in a variety of domains. These domains range from information about the operations of cities (including, for example, housing data, transportation data and police data in New York city among other urban centers) to health data (including epidemiological data on the spread of diseases and genomic data from thousands of individuals) to sports data (including information about virtually every pitch thrown in a baseball game since 1987). Given this wide availability of data, a challenge for the data scientist is to find effective ways to use the data to extend our knowledge of the situations represented by the data. This task involves exploring datasets, cleaning data, asking good questions, and presenting results in the most compelling fashion. The typical project will begin either with a question or with a dataset. In the former case, the goal will be to find datasets that help to answer the question and to explore. In the latter case, the goal will be to explore the data set to learn new and interesting things.

PLEASE NOTE: The following seminars are available only to AB juniors enrolled in the associated co-requisite course.

COS IW 08: Fairness of Visual Recognition (Co-requisite: COS 429; AB juniors, only)

Instructor: Olga Russakovsky

Meeting Time: Fridays, 11:00am-12:20pm

Co-Requisites: Enrollment in COS 429, Fall 2020. A.B. junior status.

Note: This seminar is a special IW opportunity for A.B. juniors enrolled in COS 429, Fall 2020, only.

General Information:
COS IW 08 is an independent work seminar limited in enrollment to A.B.'s in their junior year taking COS 429. It will be paired with a subsequent IW seminar in Spring  2020 that will encompass a similar scope. This format is designed to allow students to learn some of the fundamentals of an area, and then apply their knowledge to create an Junior IW project with more depth and it is hoped, a more interesting result. The expectation is that students will sign up for both this IW seminar and the subsequent Spring 2021 IW seminar. Students enrolled in this seminar are required to submit a signed Memo of Understanding

This is new two-semester IW seminar will build on the material taught in “COS 429: Computer Vision” to offer an in-depth look at topics related to the Fairness of Visual Recognition. The seminar will provide some structure and support for students choosing to do their junior IW work on this topic, but will ultimately be guided by the students’ interests. In the fall students will read and report on the literature, and develop a proposal for the spring semester.  Sample readings will examine topics of machine learning fairness, biases in computer vision datasets, algorithms for mitigating bias in computer vision models, and disparate impacts of computer vision on different groups. Students are encouraged but not required to do their open-ended final project in COS 429 on a related topic. In the spring students will focus on executing their proposed research agenda, leveraging and building upon their technical expertise from COS 429. Students are welcome to engage with the deeper societal issues, supplementing their projects with further readings such as “Race After Technology” by Ruha Benjamin, or “Algorithms of Oppression” by Safiya Umoja Noble. Alternatively, they are equally welcome to instead focus on core algorithmic topics (such as learning from long-tailed distribution, interpretability of visual recognition systems, or multi-task learning with constraints) which are more indirectly related to the underlying societal concerns.

Sample readings:

- “Fairness and Machine Learning: Limitations and Opportunities” by  Solon Barocas, Moritz Hardt, Arvind Narayanan https://fairmlbook.org/
- “50 Years of Test (Un)fairness: Lessons for Machine Learning” by Ben Hutchinson and Margaret Mitchell http://www.m-mitchell.com/papers/History_of_Fairness-arxiv.pdf
- Gender Shades: Intersectional Accuracy Disparities in Commercial Gender Classification” by Joy Buolamwini and Timnit Gebru http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf
- “REVISE: A Tool for Measuring and Mitigating Bias in Image Datasets”  by Angelina Wang, Arvind Narayanan and Olga Russakovsky https://arxiv.org/pdf/2004.07999.pdf
- “Does object recognition work for everyone?” byTerrance DeVries, Ishan Misra, Changhan Wang and Laurens van der Maaten  https://arxiv.org/pdf/1906.02659.pdf
- “Towards Fairness in Visual Recognition: Effective Strategies for Bias Mitigation” by Zeyu Wang, Klint Qinami, Ioannis Christos Karakozis*, Kyle Genova, Prem Nair*, Kenji Hata, Olga Russakovsky (* = Princeton COS’19 and COS’18 students who contributed to this research in their senior theses) https://arxiv.org/pdf/1911.11834.pdf

COS IW 09: Functional Programming and Programming Language Design (Co-Requisite: COS 326; AB juniors, only)

Instructor: David Walker

Meeting Time: Wednesdays, TBD

Co-Requisites: Enrollment in COS 326, Fall 2020. A.B. junior status.

Note: This seminar is a special IW opportunity for A.B. juniors enrolled in COS 326, Fall 2020, only.

General Information:
COS IW 09 is an independent work seminar limited in enrollment to A.B.'s in their junior year taking COS 326. It will be paired with a subsequent IW seminar in Spring 2020 that will encompass a similar scope. This format is designed to allow students to learn some of the fundamentals of an area, and then apply their knowledge to create an Junior IW project with more depth and it is hoped, a more interesting result. The expectation is that students will sign up for both this IW seminar and the subsequent Spring 2021 IW seminar. Students enrolled in this seminar are required to submit a signed Memo of Understanding

This seminar is designed to be 2 semesters in length and is joint with COS 326, Functional Programming.  In the fall, students take what they learn in COS 326 and deepen their knowledge by learning more about building programming language infrastructure in OCaml.  In particular, students will learn how to use a variety of additional tools:  MLlex, Menhir and OCaml's format library for parsing and printing; QuickCheck for randomized testing; and Z3 for SMT-based verification.  Students will also formulate a plan for implementing their own new programming language, language extension, proof system, language analysis or other use of functional programming in the spring.

Many students may choose to build their own domain-specific programming language or to recreate, modify or extend an existing one in the spring semester.  Domain-specific languages (DSLs) allow programmers accomplish sophisticated repeated tasks using simple, compact notation.  DSLs have been developed to query data bases (SQL) or XML (XQuery), to configure routers (CISCO IOS), to solve machine learning problems (TensorFlow, PyTorch), to transform text documents (awk), to search the web (Google search bar), to generate documents (Latex), to generate parsers (Lex, YACC), to control your phone (IFTTT, Apple Shortcuts), to create music (Chuck), to write down optimization problems (AMPL), to specify logical formula (SMTlib), to draw plots, graphs (gnuplot) or diagrams (pic), to specify chemical structure (SMILES), to generate network topologies (Condor), to study epidemiological phenomena, like COVID-19, to synthesize programs (Sketch) and many more.  Some students interested in a more theoretical independent work experience can work on defining a semantics or type system or proof system for their language.  Other students can focus on optimizing or compiling their DSL.  Still other students may choose to try implementing algorithms that synthesize DSL programs from input-output examples.

Follow us: Facebook Twitter Linkedin