Contents

Course Overview

Course Code COMP9312
Course Title
Data Analytics for Graphs
Convenor Dong Wen (dong.wen@unsw.edu.au)
Admin Yiheng Hu (yiheng.hu@unsw.edu.au)
Units of Credit 6
Course Website http://cse.unsw.edu.au/~cs9312/23T2/
Handbook Entry http://www.handbook.unsw.edu.au/postgraduate/courses/current/COMP9312.html
Lecture Time Mon 16:00 - 18:00 (Weeks:1-2,4-5,7-10), Tue 16:00 - 18:00 (Weeks:1-5,7-10)

Course Description

Graph is ubiquitous and is widely used to capture relationship between different entities in real-world application. However, compared with traditional sequential data (e.g. text and audio), the unstructured property and the sparsity make processing big graphs very challenging. The course will introduce a series of data structure and algorithms for graph processing in terms of database (i.e., big data) and deep learning. Fundamental methods and the state-of-the-art research works will be integrated. The course will serve as a launching pad for those interested in graph analytics, big data processing and graph neural networks.

Data structure and algorithms are building blocks of many complex systems and software. Certain fundamental graph algorithms such as Dijkstra's algorithm and depth-first search have been covered by many text books and compulsory courses. They may be discussed in terms of pseudocode and time complexity. This course will start from studying how to efficiently implement the fundamental algorithms in big graphs. Then, the course explores more challenging and more complex algorithms step-by-step. When dealing with big graphs, we may consider various scenarios such as external memory solutions, distributed solutions, multi-core solutions, etc.

The course also puts some attention to graph neural networks, which is a hotspot in the area of AI and deep learning. The course will not study theoretical details about machine learning and deep learning but just introduce several representative graph neural networks. The students will play with basic graph learning tasks and understand learning-based techniques for graph problems such as link prediction and node classification.

Assumed Knowledge

The course assumes that you have a solid knowledge of the following topics:

  • data structure & algorithms (sort algorithms, binary trees, hash tables, etc.)
  • programming languages ( Python )
  • databases (data storage, query execution plans)

If you do not have the prerequisite knowledge, you should not enrol in the course. For instance, in the project, you need to write Python code to solve a real graph problem.

Teaching Strategies & Rationale

  • Lectures: deliver the basic concepts and explain with detailed examples
  • Tutorials: reinforce concepts and provide additional examples
  • Consultation: weekly consultation to provide personalized advice to students on their progress in the course.
  • Assignments/Project: allow students to solve significant problems

The learning focus in this course is primarily lectures (theoretical knowledge) and projects (practical knowledge). The course will have an emphasis on problem-solving for real applications. We want to equip the students with the resources and skills to to seek further knowledge and update themselves with the latest trends in the subject matter after the course is finished.

Course Aims

The course aims to reinforce students' understanding of important graph algorithms and data structure, as well as building their capabilities in designing algorithms for big data processing. In particular, the course will improve students' ability to analyze the time complexity, identify the potential optimisations, and work on real problems. At the end of this course, you should be in a position where you could write efficient codes to solve a complex graph problem. Some of you might even be at the stage where you could do research in the area of big graph processing and graph-based interdisciplinary problems.

Learning Outcomes

After completing this course, students will be able to:

  • Create appropriate data structure to store and represent graphs
  • Understand fundamental graph traversal techniques
  • Analyze cohesive subgraph models and their representative computation algorithms
  • Understand basic machine learning methods
  • Apply and evaluate techniques for graph embedding, graph neural networks

This course contributes to the development of the following graduate capabilities:

Graduate Capability Acquired in
Scholar ship. Being rigorous in their analysis, critique and reflection. Lectures
Scholarship. Applying their knowledge and skills to solve novel problems. Assignment design and development
Scholarship. Effective and efficient communication. Doing assignments and tutorials
professionalism. Ethical, self-directed practice and independence. Forum and individual consultation
Entrepreneurial leadership. Initiating innovation and change. Forum and assignments

Assessment

Item Due Marks
Assignment 1 (fundamental graph algorithms, paper writing) Week 4 15%
Project 1 (big graph processing, Python)
Week 8 25%
Assignment 2 (graph neural networks, Python) Week 10 10%
Final Exam (coding + paper writing) Exam period 50%

Later Submission Penalties: 5% of the max assessment mark per day. No submission is allowed after five days (120 hours). The following formula describes precisely how the final mark will be computed.

All assessment papers (assignment, project, and final) will be provided via Webcms with notification emails. Students submit solutions on Moodle. For each assignment and project, marking will be against specific criteria in a marking guide. Results and formal feedback on your assessment task will be provided within two weeks of the relevant submission date through Moodle.

ass1       = mark for assignment 1   (out of 15) 
ass2       = mark for assignment 2   (out of 10) 
project    = mark for project        (out of 25)
exam       = mark for final exam     (out of 50) 
final_mark = ass1 + ass2 + project + exam
grade      = HD|DN|CR|PS   if final_mark >= 50
           = FL            if mark < 50

Course Schedule

Week Lectures Tutes Assignments Notes
1 Course Intro & Graph Storage NA - -
2 Graph Storage
- - -
3 Graph Traversal
- Ass1 released -
4 Graph Traversal
- Ass1 due
-
5 Reachability and Path Queries
- Project released -
6
NA - -
7 Subgraph Queries
- - -
8 Distributed Graph Processing & Machine Learning Basics
- Project due
-
9 Node Embedding & Graph Neural Networks
- Ass2 released -
10 Graph Neural Networks & Graph Databases - Ass2 due -

Other Resources for Students

Texts and recommended readings:

There's no need to buy any of them, but if you plan to be seriously involved with data processing in the future, you may need to read some of them again and again.

Course Evaluation and Development

This course is evaluated each session using the myExperience system. Students were reasonably satisfied with the course. Main student feedbacks in the 22T2 survey are as follows.

  • Add introduction of basic deep learning knowledge and focus on high-level overview for GNN.
  • More programming, example and exercise questions are expected.
  • Adjust the order of topics according to the schedule of projects and assignments.

We have modified the lecture contents to add more details for the fundamental data structure and algorithms. We have reduced some unnecessary mathematical proofs in graph neural networks. We have adjusted order of certain topics (e.g. graph database).

Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.

In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behavior in person as well as behavior on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behavior that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.

Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. In particular, you are also responsible that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if using. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.

If you haven't done so yet, please take the time to read the full text of

The pages below describe the policies and procedures in more detail:

You should also read the following page which describes your rights and responsibilities in the CSE context:

Use of Generative Tools

While AI tools (e.g., Github Copilot and ChatGPT) undoubtedly provide convenience and efficiency, you need a good understanding of your code in projects and assignments. The oversimplification of concepts can result in a shallow understanding of the knowledge and hinder the development of higher-order thinking skills.

You are not permitted to submit code generated by automatic tools such as Github Copilot, ChatGPT, Google Bard in assignments, the project and the final exam.

Resource created Tuesday 16 May 2023, 04:32:46 PM, last modified Tuesday 20 June 2023, 11:48:48 AM.


Back to top

COMP9312 23T2 (Data Analytics for Graphs) is powered by WebCMS3
CRICOS Provider No. 00098G