Spring 2013 Special Topics Course Descriptions

NOTE: for descriptions of standard graduate computer science courses, see Graduate Course Descriptions.

G22.3033-001 Financial Computing

This course is intended to introduce the students to the basic concepts of Computational Finance and explore various relations between Computer Science and Finance. In particular, the course will introduce both theoretical and practical aspects of finance with an emphasis on the relation between real-life applications and these concepts. We will cover various issues like high-frequency market simulators, framework for performing statistical simulations, we will discuss and model various financial instruments. Strong emphasis will be put on efficiency and proper design. As such, Object Oriented concepts will be discussed and put to use in real life applications.

Prerequisites: Fundamental Algorithms, Programming Languages, background in calculus and linear algebra.

See the course homepage for more information.

G22.3033-002 Big Data: Large Scale Machine Learning

See the course homepage for more information.

G22.3033-003 *Cancelled*

G22.3033-004 Social Networks

Social Networks is a specific example of many forms of networks that have become ubiquitous in our modern society. The World Wide Web enables information flows among vast number of humans; facebook, orkut, friendster, diaspora, etc. connect small groups of friends; amazon, ebay, etc. provide opportunities for trading, etc. These networks determine our information, influence our opinions, and shape our political attitudes. They also link us, often through important but weak ties, to other humans. Their origin is biological: going back to quorum-sensing, swarming, flocking, social grooming, gossip, etc. Yet, as we have connected our social networks to traditional human institutions (markets, justice systems, education, etc.) through new technologies, the underlying biology has become obscured, but not dormant. Economic markets also look much more like networks than anonymous marketplaces. Firms interact with the suppliers and customers in a Web-like supply chains. Systemic risk in financial markets often results from the counterparty risks created within this financial network. This course will introduce the tools for the study of networks. It will show how certain common principles permeate the functioning of these diverse networks: e.g., issues related to robustness, fragility, and interlinkages etc.

G22.3033-005 Production Quality Software

In this course, students learn to develop production quality software. Lectures present real-world development practices that maximize software correctness and minimize development time. A special emphasis is placed on increasing proficiency in a particular programming language by doing weekly development projects and participating in code reviews. Assignments become more sophisticated as the semester progresses, eventually incorporating unit tests, build scripts, design patterns, and other techniques. The course culminates with an assignment that requires students to contribute to an open-source project of their choice.

G22.3033-006 Special Topics in Machine Learning: Probabilistic Graphical Models

This course introduces students to probabilistic models and inference, two fundamental concepts in machine learning and artificial intelligence. We focus on a class of statistical models called graphical models that describe multivariate probability distributions. Two well-known examples are Bayesian networks and Markov random fields. The first half of the course will cover exact and approximate probabilistic inference, including advanced topics such as variational methods and linear programming relaxations. The second half of the course will be on learning graphical models from data and on the task of structured prediction. Prerequisites: Statistical Natural Language Processing, Introduction to Machine Learning, Machine Learning and Pattern Recognition , Foundations of Machine Learning. In addition, students should have a solid understanding of basic concepts from probability (e.g., Bayes' rule, multivariate distributions, conditional independence) and algorithms (e.g., dynamic programming, graphs, shortest paths, complexity)

G22.3033-007 Social Multiplayer Games

See the course homepage for more information.

G22.3033-008 Realtime and Big Data Analytics

This course will introduce technologies at the foundation of the Big Data movement that have facilitated scalable management of vast quantities of data collected through realtime and near realtime sensing. We will also explore the tools enabling the acquisition of near realtime data in the social domain, the fusion of those data when in flight and at rest, and their meaningful representation in graphical visualizations. Students are required to complete weekly reading and/or programming assignments and demonstrate mastery of course topics by developing and demonstrating a software project of their choosing. Class time will be set aside for project proposal and final demo.

Prerequisites:  CSCI-GA 2250 or equivalent Operating Systems course; programming experience in C/C++ or Java for assignments and final project; CSCI-GA 2262, CSCI-GA 2620, or undergraduate course in networks. A familiarity with databases will be useful.

G22.3033-008 Rigorous Software Development

Software is increasingly pervading our lives and is now routinely deployed in safety and security critical systems. While this technological progress benefits society greatly, it also creates a new threat: software errors with severe consequences including health hazards, financial repercussions, and security vulnerabilities. How can one ensure that software works reliably?  Program Verification is the area of computer science that studies mathematical methods to answer this question. In the last decade, Program Verification has brought forth sophisticated tools that assist software engineers in building reliable software. In this course, we will explore these tools. We will learn how they are used to enable rigorous software development, and we will study the algorithms that work under their hoods. The course will be accompanied by programming projects making use of these tools.