Independent Work Seminar Offerings - Spring 2018
Title: COS IW02 - Using Publicly Available Data to Learn, Explain, Evaluate and Improve - ***SEMINAR IW 02 HAS REACHED CAPACITY, please select from the remaining seminars. ***
Instructor: David Dobkin
Meeting Time: Wednesday, 1:30- 2:50 pm - Max. Enrollment 12 - Room CS301
Abstract: 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.
Title: COS IW03 - Big Data and the Data Science - SEMINAR HAS BEEN CANCELLED
Instructor: Ananda Gunawardena
Meeting Time: Wednesday, 3:00-4:20pm - Max Enrollment 12 - Room CS301
Abstract: The ability to analyze very large datasets, the so called ?Big Data,? is a rapidly expanding field with many applications in variety of domains. In this IW seminar, students will be introduced to data sciences techniques and computational methods (e.g., using R and Python) and are then expected to apply these to their own data sets.
Students will be able to use large data sets from data.gov (http://www.data.gov/) and other sources. We will also make available large anonymized data sets generated from software tools utilized by
the computer science department, including the video usage data from Princeton Salon system (http://salon.cs.princeton.edu). In the education domain, students could use data to address one or more of the primary theories of learning sciences. For their projects students are also welcome to find and analyze data sets from other sources.
Title: COS IW04 - Developing a Technology Startup Venture - ***SEMINAR IW 04 HAS REACHED CAPACITY, please select from the remaining seminars. ***
Instructor: Jaswinder Pal Singh
Meeting Time: Monday, 9:00-10:50am - Max. Enrollment 12 - Room CS301
Abstract: In this seminar, students develop and build a product/service and plan for a software technology startup. The startup may be a for-profit company or a non-profit organization. Students will be expected to develop and refine an idea, perform appropriate market research, develop an product or service, iterate on the product via user feedback or research as appropriate, and develop a startup-appropriate financial plan for the organization. Projects will be expected to develop and demonstrate a prototype or a "minimum viable product," and ideally to test it in market to the extent possible or appropriate. A typical project will also report quantitatively on results of market research as well as quantitatively or qualitatively on customer research and iteration, and will have a quantitative and justified business and financial model. Projects that go deeper in some of these areas will do less in others, but we expect projects to learn about both the product/technology and the business sides.
Students may work in teams or individually, and will be expected to develop their own ideas, though help in ideation will be available. Students or teams concurrently taking COS 448 will be able to discuss with the seminar leader extending their COS 448 project to be appropriate for this seminar as well, and thereby obtain credit for the independent work as well as the class. This is a good opportunity to understand what goes into building a startup, and to actually develop an actual product or service and test it in market. Students enrolled in this seminar but not in COS 448 will (space permitting) also be able to attend the lectures in COS 448 (only if they desire, not required), including guest lectures by leading executives from industry and academia.
Title: COS IW05 - Help Future Computer Science Students Learn Computer Science! ***SEMINAR IW 05 HAS REACHED CAPACITY, please select from the remaining seminars. ***
Instructor: Robert Fish
Meeting time: Tuesday, 3:00-4:20 pm - Max Enrollment 12 - Room CS301
Abstract: 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. 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. However, even with this method, some students struggle to keep up with the pace of these courses. To remedy this, there is some thought that people need training that combines a degree of self-pacing, as well as a variety of modes of learning.
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 this concept. It can include videos, graphic visualizations, quizzing mechanisms, or anything else that you can think of to help learn the concept. The project should also include a testing mechanism by which mastery of the concept may be assessed. A bonus would be utilizing the system to compare learning with it to a conventional approach.
Students may team 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, and a user interface to improve student progress tracking.
Title: COS IW06 - Little Languages
Instructor: Zachary Kincaid
Meeting time: Thursday, 3:00-4:20 pm - Max. Enrollment 12 - Room CS401 (March 15th will be in Deans Conference room in the Friend Center)
Abstract: Programming languages are the medium through which programmers communicate their intentions to machines. In some application domains, it is worthwhile to design specialized programming languages to make this communication more natural and efficient. For example, consider the time and intellectual effort that we save by writing our data validators with regular expressions, our database queries in SQL, and our build processes in makefiles. Beyond these everyday tools, there are domain specific languages that make it easier to construct and reason about statistical models (Church, BUGS, Stan), describe hardware (Verilog, VHDL), implement other languages (lex, yacc), and more.
In this seminar, students will learn about tools and techniques for implementing programming languages, including lexical analysis and parsing, macros, and static analysis. Individually or in small teams, students will design and implement a programing language, language extension, program analysis, or type system that is tailored to some application domain of their choosing. Taking either COS 326 or COS 320 prior to this seminar is recommended but not required.
Title: COS IW07 - Practical Solutions to Intractable Problems
Instructor: Zachary Kincaid
Meeting time: Friday, 1:30-2:50pm - Room CS301 (March 16th will be in Deans Conference room in the Friend Center)
Abstract: Suppose that you encounter an algorithmic problem that you need to solve but which is computationally intractable (say, NP-hard, PSPACE-hard, or even undecidable). What can you do? While it's impossible to design an algorithm that works efficiently all of the time, it?s certainly possible to develop solutions that work well in practice. For example, despite the fact that boolean satisfiability is NP-complete, modern SAT solvers can scale to millions of variables and clauses for the kinds of formulas that arise in typical applications, such as verification, synthesis, and planning.
In this seminar, students will engage in research on how intractable problems are solved in practice. A typical project is to choose a problem of interest and design, implement, and experimentally evaluate a technique for solving that problem. The technique could involve exploiting existing tools (such as SAT solvers, theorem provers, or integer programing solvers) or designing a new algorithm (perhaps based on the principles of heuristic search, relaxation, or approximation).
Title: COS IW08 - Random Apps of Kindness: First Response - ***SEMINAR IW 08 HAS REACHED CAPACITY, please select from the remaining seminars. ***
Instructor: Alan Kaplan
Meeting time: Thursday 9:30- 10:50 am - Max Enrollment - 6 - Room CS401 (March 15th will be in Deans Conference room in the Friend Center)
Abstract: Effective communication and information sharing are vital during any natural disaster. For example: first resp onders need to communicate routes for finding people and delivering supplies; survivors need to be able to quickly share their locations and conditions; families and friends need to be able to rapidly contact and locate missing loved ones; government agencies need to be able to
effectively coordinate logistics; local community members need to identify and share locations of shelters, safe sources of drinking water, etc.
Mobile technology can play a critical role in helping address these, and other, needs. Smartphones, for example, have multiple network interfaces, high-resolution cameras, and various position, motion and environmental sensors. However, smartphone apps are generally not tailored to emergency situations. They assume, for example, the availability of network infrastructure and unlimited battery power. Even in situations where network and/or battery is not an issue, today?s apps are mostly limited in their support for effective communication and information sharing during disasters.
The goal of this IW seminar is to design and develop mobile solutions that can be used to help various stakeholders during emergency events. The goal is not just to "write an app," but rather to create an innovative approach to a problem and demonstrate/evaluate its utility and benefits. Projects in this seminar will utilize Android as the core development platform. Students are highly encouraged to use and/or extend open source platforms. Projects may utilize any combination of Android devices, coupled with cloud-based backends (e.g., AWS), open APIs/data (many), hardware sensors (e.g., Raspberry Pi), augmented reality (e.g., Google Cardboard) and programmable UAVs.
Please contact Dr. Kaplan about possible project ideas.
Title: COS IW09 - You be the Prof! - New Seminar!
Instructor: David Walker
Meeting Time: Wednesday, 3:00-4:20pm - Max. Enrollment 12 - Room CS301
Abstract: Ever want to take over a course and show the prof how it's done? Now's your chance. In this IW seminar, construct a creative assignment designed to teach students a concept in computer science. Teach SAT solving and NP-completeness by asking students to build a Soduku solver. Teach distributed programming by asking students to build bots for Settlers of Catan. Gamify data structures by introducing students to maze generation and solution. In addition to constructing a creative assignment, students must explain their educational mission and develop effective grading infrastructure. To implement the latter, discover the joy (yes, you heard me, joy) of randomized or property-based testing.