Skip to content

Latest commit

 

History

History
97 lines (72 loc) · 9.52 KB

File metadata and controls

97 lines (72 loc) · 9.52 KB

Federal University of Rio Grande do Norte

Technology Center

Department of Computer Engineering and Automation

Algorithms and Data Structure II (DCA3702)

This is the repository for the Algorithms and Data Structures II course, offered by the Department of Computer Engineering and Automation (DCA) of the Technology Center (CT) at the Federal University of Rio Grande do Norte (UFRN).

The DCA aims to train professionals capable of designing and developing computer systems for industrial automation, embedded systems, software systems, distributed systems, computer networks, and information systems. The CT offers undergraduate and graduate courses in Engineering. This course is part of the curriculum of the Computer Engineering program at DCA/UFRN.

References

Tool Link
😃 Networkx networkx.org
⚙️ Gephi gephi.org
🚀 OSMnx github.com/gboeing/osmnx
💾 Dataset snap.stanford.edu/data

Lessons

Week 01

  • Open in PDF Course Outline: Provides an overview of the course structure and topics covered.
    • 🎉 GitHub Education Benefits
      • GitHub Education Pro: Get access to the GitHub Education Pro pack by visiting GitHub Education
    • 📖 Learning Resources
  • Open in PDF Network Fundamentals I: ntroduction to network science, including its scope, real-world applications, mathematical foundations, and core concepts from graph theory.

Week 02

  • Open in PDF Network Fundamentals II: Probability, extended graphs, matrices, degree and representation.

Week 03

  • Open in PDF Small-World Networks: This week introduces fundamental concepts in network science, including small-world phenomena. The lecture explores how these properties influence the structure and dynamics of real-world networks.
    • In this case study, you will construct and analyze a real-world network derived from Wikipedia pages using a snowball sampling approach.
    • Build a graph from Wikipedia pages starting from a seed node
    • Collect data through a snowballing (BFS-like) exploration process
    • Clean the dataset by truncating expansion depth and removing duplicates
    • Explore structural properties of the resulting network (e.g., degree distribution, connectivity)
    • Jupyter Wikipedia Pages Network Notebook
  • Open in PDF Small World: Paths, Distances, Connected Components, Clustering Coefficient, Friends of Friends
    • Jupyter Paths, Walks and Distances
    • Jupyter Connected Components (Giant, WCC, SCC)
    • Jupyter Clustering Coeficient

Week 04

  • Project 01

Week 05

  • Open in PDF Hubs: key centrality metrics and illustrative case studies.
    • Eccentricity, Diameter, Periphery, Radius, and Center
    • Degree, Closeness, Betweenness, and Eigenvector Centrality
    • Centrality distributions and interpretation
  • Jupyter Hands on: practical exploration of centrality measures

Week 06

  • Open in PDF Hubs: key centrality metrics continuation
    • Core decomposition and its relevance
  • Jupyter Hands on: core decomposition
  • Gephi: The Open Graph Viz Platform
    • A brief overview about Gephi Open in Loom
    • Quick start Open in Loom
    • Using layouts Open in Loom
    • Node and network measures Open in Loom
    • Visualize and filtering nodes and communities Open in Loom
    • Renderize, export the network, and highlight a community Open in Loom
    • Deploy the network into an HTML page Open in Loom Open in Loom
    • Another way to publish your network to the web using Retina and Gephisto Open in Loom
  • Graph GeoSpatial Data Science (2GDS)
    • osmnx - OpenStreetMaps Network X
      • First read the Getting Started guide for an introduction to the package and FAQ.
      • Then work through the Examples Gallery for step-by-step tutorials and sample code.
  • Advanced steps (optional)
    • City2Graph - Transform geospatial relations into graphs for Graph Neural Networks and network analysis
    • LLM Knowledge Bases Karpathy's idea about using LLMs to build personal knowledge bases.
    • Graphify - AI coding assistant skill