This topic will teach students how to use Computational Thinking and algorithms for community detection in large graphs (big-data) to solve real world problems.
Computational thinking is about applying powerful ideas in computer science (problem formulation, abstraction, decomposition, pattern recognition, and algorithm design) to tackle real world problems.
We then combine this with modeling of big data using graphs and using community detection algorithms to identify communities in these graphs. Identification of communities in these big-data networks can help to provide give new insights to how the individual nodes interact and the role of certain nodes in the communities (the driver nodes, the hubs and authorities in the graph), can also help to condense large graphs into communities, and can help in visualization of these large graphs which is helpful in many other big-data analytics tasks.
In general, students should already have some good experience with basic data structures: arrays, matrices, stacks, queues, trees, hashing, graphs, etc. And knows complexity analysis of algorithms using the big-O notation.
Specifically, to take this topic, students must have
(a) taken two or more programming and data-structure courses,
(b) actually programmed with graph algorithms, and
(c) good software development skills.