CS 6824: Hypergraph Algorithms and Applications Spring 2014 T. M. Murali Analysis of networks is ubiquitous in modern science, engineering, and the humanities. An overwhelming majority of these approaches use directed or undirected graphs in which edges connect pairs of nodes. However pair-wise interactions cannot accurately represent the manifold phenomena that involve coordinated activity of assemblages of more than two entities, e.g., a protein complex that acts as a unit or social interactions that occur among the members of a group such as a family or a criminal gang. Hypergraphs are emerging as an attractive alternative to graphs to represent such phenomena. Informally, a hyperedge (an edge in a hypergraph) is simply a connection among two or more nodes. Although hypegraph theory is a well-established area of mathematics, application of these concepts is relatively rare in network science. This course will discuss hypergraph theory, algorithms, and applications to answer the following questions: * How do hypergraphs arise in different domains? Molecular biology is an especially fertile source. * What are appropriate ways to represent hypergraphs mathematically and computationally? * How do we solve basic algorithmic problems on hypergaphs? Examples include shortest paths, random walks, and network flows. * Can we reverse engineer hypergraphs from existing graph databases? * How can we reinterpret datasets in areas such as molecular biology and social network through the lens of hypergraphs? Lectures, student presentations, and research projects will drive the course. A regularly-updated list of papers that we may discuss is available at http://www.citeulike.org/user/tmmurali/tag/2014-spring-cs6824-hypergraphs Pre-requisites: Graduate work in algorithms, machine learning, or data mining will be very useful. Ability to program in a language such as Python, Matlab, or C++ is very important.