Independent Work Seminars

Independent work seminars are a way to provide students working on similar projects to get assistance and feedback from their peers. All students who plan to do independent work for the first time should sign up for an independent work seminar. 

The independent work seminars bring together groups of students working on related problems. The content of the independent work seminars includes not only independent work on a project, but also guidance about how to choose projects, evaluate progress, design experiments, collaborate with others, make presentations, and other project management skills.

While every student is responsible for writing a paper and making presentations individually, within these seminars it is possible for groups of 2-3 students to work on different parts of the same large-scale project. For example, a few students might work together on a system for collaborative grading of assignments in large online courses, with one student developing the user interface, another designing the algorithms for assigning problems to graders, and a third implementing a system for integrating grader responses in the back-end server. 

How to sign up for an Independent Work Seminar in Fall 2024:

  • BSE juniors: enroll in COS 397 in TigerHub and direct-enroll in the seminar section of your choice.
  • BSE seniors: enroll in COS 497 in TigerHub and direct-enroll in the seminar section of your choice.

Please note: The COS 397 & COS 497 IW seminars share seats.  If you are a senior and the seminar section for COS 497 section is closed, but the COS 397 section is open, enroll in the course code with the open section, then email Mikki Hornstein, mhornstein (@princeton.edu) for help switching to the right course code and section.  Same goes for juniors. Seminar students do not need to complete anything in the IW portal at this time. 

Spring 2025 Independent Work Seminars

COS IW 01: Digital Humanities

Instructor: Brian Kernighan 
Meeting Time: Thursdays, 3:00 - 4:30pm 
Location: Friend Center TBD 
Abstract: 
"Digital humanities" covers a wide variety of ways in which scholars in the humanities – literature, languages, history, music, art, religion, and many other disciplines -- collect, curate, analyze and present information about their fields, using digital representations and technology.

Digital humanities data is intrinsically messy, and there is always a considerable effort devoted to cleaning it up even before study can begin. There is also much effort devoted to figuring out how to present it effectively and make it accessible to others.

This seminar is aimed at building tools and developing techniques that will help humanities scholars work more effectively with their data. This might include machine learning, natural language processing, data visualization, data cleaning, and user interface design for making the processes available to scholars just starting out in technology.

A typical project might begin with a humanities dataset or a focus on a CS technique. In the former case, the goal would be to explore the data to learn and present new and interesting things about it. In the latter case, the goal would be to create or improve tools, languages, and interfaces that help scholars in the humanities.

No particular background is required beyond COS 217 and 226 and an interest in learning new things and applying that knowledge usefully.

COS IW 02: Digital Humanities

Instructor: Brian Kernighan 
Meeting time: Fridays, 11am-12pm 
Location: Friend Center TBD 
Abstract: 
"Digital humanities" covers a wide variety of ways in which scholars in the humanities – literature, languages, history, music, art, religion, and many other disciplines -- collect, curate, analyze and present information about their fields, using digital representations and technology.

Digital humanities data is intrinsically messy, and there is always a considerable effort devoted to cleaning it up even before study can begin. There is also much effort devoted to figuring out how to present it effectively and make it accessible to others.

This seminar is aimed at building tools and developing techniques that will help humanities scholars work more effectively with their data. This might include machine learning, natural language processing, data visualization, data cleaning, and user interface design for making the processes available to scholars just starting out in technology.

A typical project might begin with a humanities dataset or a focus on a CS technique. In the former case, the goal would be to explore the data to learn and present new and interesting things about it. In the latter case, the goal would be to create or improve tools, languages, and interfaces that help scholars in the humanities.

No particular background is required beyond COS 217 and 226 and an interest in learning new things and applying that knowledge usefully.

COS IW 03: Auto-generation of Programs, Specifications, and Tests

Instructor: Aarti Gupta

Meeting Time: Tuesdays, 3:00 - 4:30pm

Location: CS TBD

Abstract:

Wouldn’t it be great if you could somehow say what a program should do, sketch a program outline, but the rest would get automatically generated? Or, given a piece of code, some tool could give you a brief specification that summarizes what the code does? Or, it could automatically generate testing code that you could run to check that the program works correctly? Indeed, automated synthesis of programs, specifications, and test inputs is an active area of research in programming languages (PL). Specifications include loop invariants, method contracts (preconditions, postconditions), and assertions for checking runtime bugs. With the recent explosive growth of machine learning (ML) and generative AI, there is also great interest in combining PL-based techniques with ML-based techniques, for automated generation of code, program specifications, and test inputs in a variety of application domains.

Students in the seminar will choose from a range of applications or choose one of their own interest. For example, they can choose to work with small C/python programs, or hardware designs written in Verilog, or distributed system protocols (written in a domain specific language). They will use available PL-based synthesis tools (such as Sketch, Rosette, Prose) and/or ML-based tools (such as ChatGPT or other LLMs), design a suite of benchmarks for evaluation, and experiment with different synthesis strategies to generate a variety of target programs, specifications, or test inputs for software testing. Those interested in backend techniques can also design and implement new synthesis strategies that combine PL-based and ML-based techniques. Students may work on a team project, but with prior permission of the instructor, and where each student has a distinct semester-size component of the project.

There are no prerequisites for this seminar beyond COS 217 and COS 226. Students will be expected to attend all seminar meetings. The first two seminar meetings will provide some background, introduction to program synthesis tools, and pointers to recent papers that combine PL-based and ML-based techniques for automated synthesis. The remaining meetings will be used for discussions on project proposals, techniques, and updates; with students reporting their progress each week and doing a class presentation at the end.

COS IW 04: Help Future Computer Science Students Learn Computer Science

Instructor: Robert Fish

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

Location: CS 302

Abstract:

We live in interesting times, with virtual classrooms (sometimes) replacing or supplementing physical ones. In addition, with the rapid introduction of new technologies, life-long learning is quickly becoming the new normal.  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 anywhere else!) with a focus on remote, virtual, online, and assisted learning environments. People need learning environments, especially in remote learning, that enhance group dynamics, maintain motivation, include a degree of self-pacing, and engage with individual learning styles.


In this seminar, students will choose some computer science concept from COS 126, 217, 226, 316 or any other Princeton Computer Science course or choose some other aspect of the learning environment that contributes to learning computer science. You might pick some interesting concept that you think you can explain well to other students or some concept with which you struggled and want to help others understand.   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, games, 3D imagery, deep learning assistants, or anything else that you can think of that might help students understand a concept. The project must 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 tools, such as Django, the D3 visualization library, Sketch, the Unity game engine etc. are 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, Cache Eviction Algorithms, Linear Feedback Shift Registers, 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 various class assignments.

COS IW 05: Technology Policy

Instructor: Mihir Kshirsagar

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

Location: Sherrerd 306

Abstract:

In this IW seminar students get to work on crafting concrete policy responses to challenges posed by emerging computer and network technologies. There is a renewed sense of urgency to understand the implications of how these technologies are transforming public life and to craft practical solutions that address the difficult tradeoffs we need to make. Students in past seminars have worked on a variety of different projects, including those related to machine learning, social media, video game design, communication policy, competition, privacy, and cryptocurrencies, among other issues.


The first half of the seminar will focus on introducing students to policy challenges in different domains to help them explore potential topics for their final project. The second half of the seminar is devoted to workshopping the final projects and helping students develop workable proposals


The final project will be student-driven, with the opportunity to create a real-world policy work product. Policymakers need thoughtful, technically sophisticated voices to help them develop evidence-based policies. This seminar helps students prepare to play that vital role. All students are expected to attend all weekly meetings and work collaboratively on shared projects. There are no prerequisites for taking this seminar.

COS IW 06: Interactive AR Experiences

Instructor: Parastoo Abtahi

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

Location: CS 402

Abstract:

There have been exciting advancements in augmented reality (AR) applications, but most use cases are still limited to 2D virtual windows placed within the 3D physical space. In this IW seminar, you’ll explore new possibilities by creating AR applications that respond to user input, physical space, and surrounding objects—applications that truly augment reality. You’ll take a user-centered approach to design, implement, and evaluate your application, engaging in need-finding, rapid low-fidelity prototyping, mobile AR development using Unity, and usability studies. We’ll meet weekly to discuss progress updates, with a live demo and final paper due at the end of the term.

Required courses: COS 217 and COS 226.

Recommended courses: COS 333 or COS 436.

Useful skills: programming in C# and 3D modeling.

COS IW 07 & 08: Computer Vision for Social Good

Instructor: Olga Russakovsky

Meeting time IW 07: Tuesdays, 3pm-4:20pm

Meeting time IW 08: Fridays, 11am-12:20

Location: CS TBD

Abstract: 

Computer vision is a subfield of AI focused on designing systems capable of reasoning about visual inputs such as images or videos. Computer vision technology is already wide-spread: it's in sorting our mail and out photographs, improving the safety of our cars, powering space exploration, and much more. In the next ten years computer vision research will be driven by an even wide range of novel applications: for example, one can imagine increasing the safety and effectiveness of law enforcement through analysis of police body-worn camera footage, improving healthcare delivery through camera-equipped hospitals, or developing and integrating novel educational insights through large-scale visual studies of classrooms. In this seminar, students will explore computer vision technology and its applications. Students who have taken courses such as COS 429, COS 324, or similar are welcome to do a more technical IW focusing on improving existing computer vision systems and making them more suitable for social good applications. Students who have no prior experience with computer vision are welcome to do a more exploratory analysis of existing systems (for example, analyzing the racial, gender, or age bias present in current face recognition systems), study the ethics and policy implications, examine privacy-aware computer vision, or propose another related topic that fits their expertise.

COS IW 09: Machine Learning and Algorithms for Medicine

Instructor: Mona Singh

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

Location: TBD

Abstract:

Do you want to learn how to use the awesome power of computer science to learn more about  or help treat cancer or other diseases?  The large amounts of data collected about patients with diseases such as cancer—from their genome sequences to medical images—opens up new opportunities for computer scientists to contribute to medicine, including developing individualized treatments for patients (i.e., precision health). At the same time, biases in existing biomedical datasets raises questions about how best to advance computational medicine while striving towards equitable health outcomes. In this seminar, students will work on projects where algorithms and/or machine learning techniques can be applied to biomedical and related datasets.

This course has no prerequisites beyond COS126 and COS226, though having taken either COS324 or COS445 would be helpful.  No prior biological or medical background will be assumed, and the necessary biomedical background will be presented in the seminar.  Students may work on projects individually or in pairs. Class meetings will primarily be used for presentations and discussions of ongoing projects.

COS IW 10: Molecular Machine Learning 

Instructor: Ellen Zhong

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

Location: TBD

Abstract:

Recent breakthroughs in machine learning algorithms have transformed the study of proteins and other biomolecules. Deep learning algorithms designed for molecular data are advancing key scientific questions relating to molecular properties, 3D shape, interactions, and molecular design. This seminar will explore computational applications to the study of molecular systems with a focus on proteins and structural biology. We will take a holistic approach when considering problems in this domain. Students are encouraged to develop projects pursuing either classical algorithms or the latest deep learning approaches. Recommend background include COS 324 and an introductory biology class (or a willingness to learn).

COS IW 11: Reimagining Robotics Through Art

Instructor: Radhika Nagpal

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

Location: TBD

Abstract:

In her book Race After Technology, author Ruha Benjamin reminds us how the historical origins of robotics have centered our current visions around colonial and patriarchal themes: military and policing, industrial labor, and housework. Indeed the word robot itself is derived from the Czech word for slave. But the future of robotics could be envisioned differently, e.g. joyous, uplifting, and challenging the past. In this IW seminar, we will collectively explore a vision of robotics that enhances life through art. Students will be encouraged to imagine, design, and build hardware prototypes of robotic works of art, in small teams with support from teaching staff. Special emphasis will be put on art that centers and celebrates non-western culture, art forms, history, artists, and lived experiences (e.g. Black, LatinX, Asian, etc).  In addition, we will read and discuss chapters from two books, Race After Technology and Design Justice, to think about how robotics can play a role in engineering equity. The seminar will not require prerequisites beyond COS 217 and COS 226. Students with experience in art, hardware, equity, and diverse cultures are strongly encouraged to apply.

Questions? Please email Mikki Hornstein at mhornstein (@princeton.edu).