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.
|