Independent Work Seminar Offerings - Fall 2018
Here is the link to the sign-up form.
Title: COS IW 02 - Natural Language Processing
Instructor: Dr. Christiane Fellbaum
Meeting time: Friday 11:00 am - 12:20 pm
Abstract: 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 by speakers. Participants in the seminar will choose from a wide range of topics including (but not limited to) sentiment and opinion analysis, the automatic detection of irony, sarcasm and arguments, question answering and automated reasoning. Projects can focus on English or another language of the students’ choice. Using datasets constructed for specific projects from text corpora, news services, blogs, tweets, product reviews etc., you will apply (and possibly improve on) existing pre‐processing tools for word segmentation, stemming, part-of‐speech tagging and syntactic parsing. These “pipeline” steps rely on fundamental algorithms such as n-gram language modeling, naive Bayes classifiers and Hidden Markov Models. The focus will be on the analysis of explicit or implicit meaning in texts, as expressed on the word, sentence or document level. Symbolic and statistical approaches to semantic analysis, represented by the use of lexical resources such as WordNet and vector space models, respectively, will be explored. Projects may involve a supervised learning approach with data collected via Amazon Mechanical Turk.
Title: - COS IW 03 Invention and Innovation: Entrepreneurial Lessons for Computer Scientists
Instructor: Dr. Robert Fish
Meeting Time: Wednesday 3:00 pm - 4:20 pm
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 your developing an independent project 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, and a presentation, paper, and poster 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, and the elements of an “pitch deck.” For the more adventurous, the possibility exists for you to share your idea in a real 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, 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. Also, if you’ve started a project with some entrepreneurial aspects in COS333, you might want to consider developing it further in this IW Seminar.
Title: - COS IW 04 Help Future Computer Science Students Learn Computer Science!
Instructor: Dr. Robert Fish
Meeting Time: Tuesday 3:00 pm - 4:20 pm
How would you like to have an IW project that could have lasting value for Princeton CS students? This seminar focuses on projects that try to enhance the computer science learning environment at Princeton (or perhaps anywhere else!). Recent years have seen a tremendous upsurge in both the interest and deployment of online learning platforms. Here at Princeton, some classes use a hybrid approach with online learning being supplemented and enhanced through classroom-based precepts and face-to-face one on one sessions. Extending this concept, there is some thought that people need learning environments that also include a degree of self-pacing, as well as engaging a variety of learning styles in the educational process.
In this seminar, students will choose some computer science concept from COS 126, 217, 226 or other Princeton Computer Science courses. You might pick some interesting concept which 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) visualizing function calls and the run-time stack frame for different functions (return types, parameters, optimizations on/off). 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 which might help students understand the concept. The project should also include an evaluation component by which mastery of the ideas exposed to them may be assessed. A bonus would be utilizing the system to compare learning with it to a conventional approach.
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, assessment, data analysis, etc. The learning and use of open source tools, including tools such as Open EdX, Django, and the D3 visualization library, 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, a simplified source code control tutorial, introducing elementary machine learning algorithms, and gamification of COS 126 assignments.
Title: - COS IW 05 Random Apps of Kindness:
Instructor: Alan Kaplan
Meeting Time: Mondays 3:00pm - 4:20pm - Max Enrollment 6
Title: - COS IW 06 Deep Learning for Audio Synthesis
Instructor: Adam Finkelstein
Meeting Time: Tuesdays 1:30pm - 2:50pm
Deep Learning is the fastest growing area of Machine Learning. This core technique has enabled the latest breakthroughs in computer vision, speech recognition, robotics, natural language processing, and artificial intelligence. It applies neural networks with many layers to large datasets in order to teach computers how to solve perceptual problems, such as detecting recognizable concepts in data, translating or understanding natural languages, interpreting information from input data, and more. Learned models have also been applied for synthesis, for example generating abstract art. In 2016 a Google DeepMind team stunned the acoustic research community with the introduction of WaveNet, a deep learning model that can generate raw audio waveforms containing plausible human speech and even music. Following this work, this seminar will explore applications of deep learning to audio synthesis. Students in the seminar will focus on developing practical deep learning algorithms for modeling and synthesizing audio waveforms. There are no prerequisites: a solid background in machine learning, or deep learning, or signal processing, or audio, or music are welcome (even preferred) but not required.
Title: - COS IW 07 Mobile Computing Design for Assistive TechnologyDeep Learning for Audio Synthesis
Instructor: Kyle Jamieson
Meeting Time: Wednesdays 11:00am - 12:20pm
Mobile and augmented reality devices and other new technologies are providing new opportunities to help persons with disabilities perform the activities of daily living. Participants in this seminar will choose an assistive modality and develop a solution that will have real impact on a person’s life. Possible hardware platforms may include mobile devices, augmented reality devices such as the Microsoft HoloLens, 360-degree cameras, and wearable cameras. Possible modalities might include assisted vision systems for persons with a hearing disability, cognitive impairment, or vision impairment; or assisted hearing systems for persons with vision impairments.
Title: - COS IW 08 Distributed Radio Sensing Across the Princeton Campus
Instructor: Kyle Jamieson
Meeting Time: Thursdays 11:00am - 12:20pm
Software-defined radio lets you build your own <a href="/%3Cspan%20class%3D"Object" id="OBJ_PREFIX_DWT3038_com_zimbra_url" role="link">http://www.rtl-sdr.com/adsb-aircraft-radar-with-rtl-sdr/">aircraft radar</a>, conduct <a href="/%3Cspan%20class%3D"Object" id="OBJ_PREFIX_DWT3039_com_zimbra_url" role="link">http://www.rtl-sdr.com/rtl-sdr-for-budget-radio-astronomy">radio astronomy experiments</a> on a shoestring, or even <a href="/%3Cspan%20class%3D"Object" id="OBJ_PREFIX_DWT3040_com_zimbra_url" role="link">http://www.rtl-sdr.com/rtl-sdr-tutorial-receiving-and-decoding-data-from-the-outernet/">receive news and weather updates from geostationary satellites</a>, from anywhere on the planet. But most of these radios are consigned to the laboratory, costing many thousands of dollars or more, and often impractical to transport. Recently, however, cheap and lightweight USB-based software-defined radios have become available for about $20 apiece, opening up the possibility of making the above sensing scenarios, and more, (a) crowd-sourceable and accessible to hackers and tinkerers, (b) distributed among many spatial vantage points, and (c) extremely portable and easy to deploy anywhere. This seminar is aimed at developing novel SDR sensing capabilities and/or extending existing sensing techniques to a distributed setting, where many SDRs cooperate to sense the same phenomenon, and aggregate their readings at a backend server, giving a more complete or higher-resolution picture of the world. You will use the RTL-SDR (http://rtl-sdr.com) platform---for which there is a rich open-source code ecosystem---and work in small groups to design and develop software for the above applications or a new application of their choosing. Deployment will be across the Princeton campus: in your dorm room, the Computer Science building, or elsewhere. Data cleaning, processing, and finally, visualization will then allow you to showcase the results of your sensing.
Title: - COS IW 09 Programs Generating Pragrams
Instructor: Aarti Gupta
Meeting Time: Thursdays 11:00am - 12:20pm
Do you wish sometimes that programs would just write themselves? 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? While this is difficult to do for Java and C programs (and COS 126/217/226 programming assignments!), it is quite possible in domain-specific languages for a variety of applications. Indeed, automated synthesis of programs is an active area of research in programming languages and formal verification. Available tools aim at automatically generating programs by filling in holes in a partially-complete program sketch or by using input-output examples, optionally using grammar rules that define the underlying search space of candidate programs.
Participants in the seminar will choose from a range of program synthesis domains and applications, or choose one of their own interest. Examples include automatic parallelization of array-handling programs, obfuscation/de-obfuscation of high-security code, automatic repair of security bugs through bit-twiddling, etc. They will use available synthesis tools (such as Rosette, Sketch), design their own libraries of program sketches, specify the correctness requirements, and experiment with different synthesis strategies to generate a variety of target programs. Those interested in backend techniques can also design and implement new synthesis strategies using SMT (Satisfiability Modulo Theory) solvers that perform the search and verification in these tools.