Graphs are a flexible data structure that facilitate fusion of disparate data sets. Applications of graphs have shown steady growth with the development of Internet, cyber, and social networks, presenting large graphs for which analysis remains a challenging problem. This course introduces algorithms and techniques to address large scale graph analytics. It will blend graph analytics theory, hands on development of graph analytics algorithms, as well as processing approaches that support the analytics. We will start by introducing graphs, their properties, and example applications, including necessary background on probability and linear algebra. Statistical properties of random and scale free graphs will be introduced. Graph analytic methods, including centrality measures, graph partitioning, HITS algorithms, connected components, cliques, trusses, and graph clustering, will be followed by dynamic graph processes such as diffusion, contagion, opinion formation and collaboration. Students will use standard graph interfaces as well as linear algebra-based methods to analyze graphs. Distributed graph storage, query, and processing approaches that support graph analytics will be discussed. Students will identify and apply suitable algorithms and analysis techniques to a variety of graph analytics problems, as well as gain experience setting up and solving these problems. There will be hands-on programming assignments.
Course instructor: 

View Course Homepage(s) for this course.