**Project information**

__About the class project:__ A research project where you can investigate and apply state-of-the-art
network analysis tools and algorithms to an application of your preference is a required portion of this course. You should select a specific topic
related to network science and perform a relatively in-depth survey of the topic. This requires finding good literature sources (research
papers, textbooks, presentation slides, etc.), possibly performing some analysis and/or numerical simulations to experiment on interesting network datasets,
and providing a detailed summary of the main ideas. **Your project is an in-depth study
of a specific topic; it is not just a summary of a few research papers.** If you wish to
be more ambitious, you can also do some original open ended research on your selected topic in addition
to the topic survey (possibly leading to a conference publication), but this is not required.

I am quite flexible with the type of study you may choose to carry out. Typically, these could be of any the following types, or as with the homework assignments a mix of both:

- An experimental evaluation of algorithms and models on interesting network data, implementing your own code and/or investigating existing software for network analysis.
- An analytical project that considers a model, an algorithm or a network property and derives a rigorous theoretical result about it.

Conceivably, other ideas could involve scalable/more efficient implementations of algorithms for large-scale network data processing, or you could think of collecting your own data from the web, social media, etc. for the subsequent analysis.

You are strongly encouraged to team up with another student to work on your project (i.e., work in pairs). Still, if you wish so you can work alone.

__What:__ Your first task is to pick a topic you like for the project. I suggest you first speak to you supervisor
(if you have one) about a possible topic that relates to networks. If
you don't have a research supervisor or just want additional feedback, you are welcome to talk to me during office hours and I will be happy to
make suggestions and brainstorm with you, help you refine your initial ideas, or point you towards useful datasets, code, papers, and
other resources. You are encouraged to pick an application area that is related to your current or future research.

A few exciting areas from where you could explore project ideas are:

- Signal processing on graphs, an emerging field with the goal of extending high-dimensional data analysis to networks and other irregular domains. A few good tutorial references to get started can be found here, here, and here.
- Graph anomaly detection. A comprehensive tutorial paper on the state-of-the-art can be found here; see also this related tutorial presentation.
- Network-based analysis of the brain. An interesting tutorial paper on machine learning with brain graphs can be found here; see also this paper for a network-based analysis of epilepsy, or this other paper for a system identification approach to brain topology inference.
- Deep learning for non-Euclidean (e.g., graph-valued data). An accessible tutorial paper on early work in this timely field can be found here. See also this website for comprehensive resources about geometric deep learning.
- Tensor (multi-way array) analysis and decomponsitions for large-scale, dynamic graph mining. Tutorial presentations on tensors can be found here and here.
- Community detection in graphs, a challenging problem that remains an active area of research. A comprehensive tutorial paper can be found here.
- Diffusion and cascading processes over networks, opinion formation and influence maximization. A seminal paper on influence maximization can be found here.
- Leveraging compressed sensing, sparsity and low-rank structures for network analytics. A few related pointers include a tutorial paper on dynamic communication network health monitoring, applications to smart grid load curve cleansing and cyber-attack detection, as well as estimating diffusion network structres and information cascades.

In deciding what to work on, I suggest you explore the datasets, software, and additional resources I have posted under links and resources.

__When:__ There will be three deliverables as indicated in the class schedule.
These are:

- Project proposal due Thursday 03/08, in class.
- Progress report due Thursday 04/05, in class.
- In-class final presentations, 05/TBD, in CSB523.

Moreover, the final report should be submitted via email to gmateosb@ece.rochester.edu.
**The final report submission deadline is 10 pm ET, May TBD, 2018.** Late submissions will not be accepted.

As indicated in the detailed instructions below, the proposal will be a short writeup describing what you plan to do and how you plan to do it. The progress report will be a more extensive writeup, describing the work performed up to then, and the revised plans for the whole project. It mainly serves as a "checkpoint", to detect and prevent dead-ends and other problems early on. The report will be a more detailed description of what you did, what results you obtained, and what you have learned and/or can conclude from your work.

__What's at stake:__ The research project amounts to an 80% of your final class grade.
The grade distribution across the deliverables is as follows: proposal 15%, progress report 15%, final report and
in-class presentation 50%. As indicated in the detailed instructions below, those using LaTeX to prepare
their reports and presentation slides will get 5% extra credit.

Projects will be evaluated based on:

**Technical quality.**Is the project technically sound? Are the modeling assumptions made and the algorithms tried reasonable? Do the conclusions suggest in-depth critical thinking about the chosen topic, possibly conveying novel insights about the problem and/or chosen algorithms?**Significance.**Is this an interesting and timely problem to work on? It this work useful and the underlying research area likely to have impact?**Clarity of presentation.**How effectively are the research findings conveyed orally (during the in-class presentation) and in writing (in the final report)?

__Instructions:__ I encourage you to prepare the project reports and presentation slides using
LaTeX. Not a mandatory requirement but
if you are not familiar with LaTeX this is a great chance to learn, and you will find this skill extremely useful
down the road. As an extra incentive, those using LaTeX will get 5% extra credit. If you choose LaTeX to prepare your documents,
you should adopt the following templates:

- Report template files based on the NIPS conference paper kit. Here is a pdf generated from the template.
- Presentation slides template files that I use to prepare lecture slides. Here is a pdf generated from the template.

The **project proposal** should summarize what you plan to do for your project. The writeup should not exceed
5 pages, and you should try to include:

- A clear description of the problem that you will be addressing;
- Preliminary ideas on how you plan to address it (models/algorithms/techniques);
- Basic literature references you will be consulting;
- If applicable what software tools you will need for your work (or if you plan to write your own code what language you will use);
- Network dataset(s) you will be working with;
- What you expect to produce as a result of your work and how you will judge success of the project; and
- Anything else that you think the I should know to evaluate your plans.

The **progess report** should look like a first (incomplete) draft of your final report, but
naturally shorter and most likely without your major results. The writeup should not exceed 8 pages, and you should
try to include:

- An introduction, literature review of relevant prior work (with corresponding list of references), and clear problem statement in finalized form;
- If you collected your own data to construct a network graph, describe that process;
- For all those applicable, provide mathematical derivations, detailed model descriptions, and algorithms you have used, adapted or developed;
- Summary of preliminary results obtained so far and datasets you have analyzed;
- Anything worth commenting on unforseen complications that arised, and workarounds; and
- Outline of the work-to-do, including any portions you see infeasible and why.

The **final report** should naturally build on your progress report, provinding
a clear and detailed description of what you did, what results you obtained, and what you have
learned and concluded from your work. The writeup should not exceed 12 pages, and you should try to include:

- A motivating introduction, literature review of relevant prior work, and clear problem statement in finalized form;
- If you collected your own data to construct a network graph, describe that process;
- For all those applicable, provide mathematical derivations, detailed model descriptions, and algorithms you have used, adapted or developed;
- Description of your experiments, showcasing the obtained results and a relevant discussion based on your observations;
- Conclusions indicating the accomplished goals and what you learned, as well as possible extensions or future directions; and
- A list of relevant references.

**In-class presentations** are scheduled for May TBD, 2pm-5pm in CSB523.
Each group will be allocated a 15 minute slot, where presentations should be around 14 minutes long
thus allowing for 1 minute of Q&A. Be congnizant that it is difficult to present more than 15 slides in that
amount of time. If you wish, you can use these LaTeX template files
to prepare your slides. Ideally, the
presentation should touch upon all of these:

- Motivation and succinct description of the problem being addressed;
- Place your work in context of existing literature;
- Briefly describe the methods, algorithms, and data utilized;
- Showcase your results; and
- Conclude possibly indicating potential future directions.