This course is probably unlike any CS course you've taken before. There are no lectures, no reading assignments, and no exams. Rather, you will work in groups to solve open-ended programming projects (from the domains of machine learning, simulation, optimization, etc.) for which there are no "correct" answers, and then discuss and analyze your solutions with the rest of the class. The goal is to develop problem solving skills using techniques that you have learned during your CS training, and to learn how to effectively analyze and communicate your solutions.