COMP2521: Assignment 2 Social Network Analysis
A notice on the class web page will be posted after each major revision. Please check the class notice board and this assignment page frequently. The specification may change.
Change log: • [08/04 16:50] Removed some incorrect comments and preprocessor instructions from the provided . c files. • [13/04 14:40] Added testing files and a part-3 example. • [13/04 16:20] Fixed some issues with the testing files and added header guards to . h files. • [14/04 16:40] Fixed a mistake with the expected files for Part 3. • [16/04 12:30] Added a note for Part 3.
• to implement graph based data analysis functions to mine a given social network • to give you further practice with C and data structures
Admin Marks Individual Assignment
This assignment is an individual assignment.
In this assignment, your task is to implement graph-based data analysis functions to mine a given social network. You should start by reading the Wikipedia entries on these topics:
• Floyd-Warshall algorithm • Edge betweenness and community structure
The main focus of this assignment is to calculate measures that could identify “influencers”, “followers”, etc., and also discover possible “communities” in a given social network.
Dos and Don’ts!
Please note that:
• For this assignment you can use source code that is available as part of the course material (lectures, exercises, tutes and labs). However, you must properly acknowledge it in your solution. • All the required code for each part must be in the respective *.c file. You may not create additional C files. • You may implement additional helper functions. • Helper functions should be declared as static. • After implementing the functions in FloydWarshall. h and Cent ralityMeasures . h, you may use these functions in other tasks. • You must not modify any .h files. • None of your submitted files should contain a “main” function. • If you have not implemented any part, you must still submit an empty file with the corresponding file name.
We have provided an implementation of a directed graph ADT that you should use. However, you must not modify Graph. h or Graph. c. Further, you should only interact with a graph via the functions and data structures in Graph . h.
• you may assume that all edge weights will be greater than zero. • you may assume that graphs will not contain parallel edges or self-loops.