Coder Social home page Coder Social logo

cambridgeuniversitypress / firstcoursenetworkscience Goto Github PK

View Code? Open in Web Editor NEW
350.0 20.0 178.0 178.92 MB

Tutorials, datasets, and other material associated with textbook "A First Course in Network Science" by Menczer, Fortunato & Davis

Home Page: https://cambridgeuniversitypress.github.io/FirstCourseNetworkScience/

License: Other

Jupyter Notebook 99.78% Python 0.21% SCSS 0.01%
social-network indiana-university network-science textbook datasets python networkx tutorials

firstcoursenetworkscience's Introduction

Untangling Network Science

A First Course in Network Science

Edition: 1

Publication year: 2020

ISBN: 9781108471138

Buy: Amazon | Cambridge University Press

Authors

Level

  • Undergraduate
  • Graduate

Subject Areas

network science, complexity, statistical physics, social networks, computer science, information science, brain science, political science, communication, management, mathematics, health, financial networks, biological networks

Abstract

Networks pervade all aspects of our lives: networks of friends, communication, computers, the Web, and transportation are examples we experience daily, while networks in our brain and cells determine our very survival. The network is a general yet powerful way to represent and study simple and complex relationships. Today, a basic understanding of network processes is required in job sectors from marketing to technology, from management to design, and from biology to the arts and humanities. This textbook is designed to introduce networks to a broad audience of undergraduate students from informatics, business, computer science and engineering, information science, biology, physics, statistics, and social sciences. After surveying networks in many areas, the book talks about the properties of social networks and the key role of hubs. Directed and weighted networks are discussed using the Web and the spread of information and misinformation in social media as case studies. The final chapters cover the more advanced topics of networks models, communities, and dynamics. No technical mathematical or programming background is required, making the book feasible for introductory courses at any level, including network literacy and programming literacy courses. However, the book includes optional technical sections for more advanced students. Programming tutorials, exercises, and datasets allow readers to gain and test their understanding through hands-on activities for building and analyzing networks.

Reviews & Endorsements

This is a book that truly takes in hand students from all backgrounds to discover the power of network science. It guides the readers through the basic concepts needed to enter the field, while providing at the same time the necessary programming rudiments and tools. Rigorous, albeit very accessible, this book is the ideal starting point for any student fascinated by the emerging field of network science.

--Alessandro Vespignani, Sternberg Distinguished Professor of Physics, Health, and Computer Sciences, Northeastern University

We cannot make sense of the world without learning about networks. This comprehensive and yet accessible text is an essential resource for all interested in mastering the basics of network science. Indispensable for undergraduate and graduate education, the book is also a much-needed primer for researchers across the many disciplines where networks are on the rise.

--Olaf Sporns, Distinguished Professor of Psychological and Brain Sciences, Indiana University

Buckle up! This book bounds ahead of the curve in teaching network science. Without formalism, but with remarkable clarity and insight, the authors use experiential learning to animate concepts, captivate students, and deliver skills for analyzing and simulating network data. This book will not only make students smarter, they will feel and act smarter.

--Brian Uzzi, Thomas Professor of Management, Northwestern University

A First Course in Network Science by Menczer, Fortunato, and Davis is an easy-to-follow introduction into network science. An accessible text by some of the best-known practitioners of the field, offering a wonderful place to start one's journey into this fascinating field, and its potential applications.

--Albert-László Barabási, Dodge Distinguished Professor of Network Science, Northeastern University

This is a timely book that comes from authorities in the field of Complex Networks. The book is very well written and represents the state of the art of research in the field. For these reasons, it represents both a reference guide for experts and a great textbook for the students.

--Guido Caldarelli, Professor of Theoretical Physics, Scuola IMT Alti Studi Lucca

The book by Menczer, Fortunato, and Davis, A First Course in Network Science, is an amazing tour de force in bringing network science concepts to the layman. It is an extraordinary book with which to start thinking about networks that nowadays represent the linchpins of our world.

--Alex Arenas, Professor of Computer Science and Mathematics, Universidad Rovira i Virgili

Should be titled the "Joy of Networks," clearly conveys the fun and power of the science of networks, while providing extensive hands-on exercises with network data.

--David Lazer, University Distinguished Professor of Political Science and Computer and Information Science, Northeastern University

If you are looking for a sophisticated yet introductory book on network analysis from a network science perspective, look no further. This is an excellent introduction that is also eminently practical, integrating exactly the right set of tools. I highly recommend it.

--Stephen Borgatti, Shellgren Chair of Management of Strategy, University of Kentucky

Table of Contents

A Note about Python, Tutorials, and Jupyter Notebooks

Our tutorials use Python 3 and NetworkX (2.4 or later). They are in the form of Jupyter Notebooks. To load, view, and run these tutorials, you can follow one or both of two approaches:

  1. There are several free services to run Jupyter notebooks in the cloud at the time of this writing, including:

    Each cloud-based notebook service has pros and cons and we cannot test them all extensively, so your mileage may vary. You may have to try more than one solution, read documentation, and/or seek support from the providers to install packages.

  2. If you wish to run Python locally on your laptop, and don't have Jupyter/IPython installed on your machine, we recommend installing the Anaconda Python distribution with Python 3. This option requires that you are comfortable with managing software packages (i.e., using pip or conda). Local Python installations can present issues, especially on Windows machines. Packages are system dependent. In all cases, we are unable to provide support.

Additional Resources

Note: To access the resources on the CUP textbook website for instructors, one has to request an instructor account by registering and verifying their faculty status.

firstcoursenetworkscience's People

Contributors

clayadavis avatar filmenczer avatar mahmoudhamdy00 avatar michcres avatar pitmonticone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firstcoursenetworkscience's Issues

Chapter 1: Python code, convention on variables names

Not an error, but just notice that reported Python code does not always follow common naming conventions on variables: Python's variable are expected to start with small case characters, and names are exptected to be not too general.
Using one capital letter to name a variable is generally considered too naive, as reported in many tutorials, such as: https://medium.com/@dasagrivamanu/python-naming-conventions-the-10-points-you-should-know-149a9aa9f8c7

There is a reason behind such a convention: expert programmers want to avoid ambiguity with classes; in fact, capitalized names are usually given to classes.

For example,
G = nx.Graph()
could be changed to something like:
graph1 = nx.Graph()

(also note that the name of the class 'Graph' is capitalized).

I am aware that such ambiguity has been introduced in the networkx official tutorial in the first place, but students with some knownledge on Python may find reported examples odd-looking.

Average shortest path formulas

In Eq. 2.2, 2.3, and 2.5 the sum over the pairs of nodes is supposed to include each pair (i,j) once or both (i,j) and (j,i) depending on whether the network is directed or undirected. This is mentioned in the text but it may be unclear and confusing. We could rewrite the formulas so that the notation $\sum_{i,j}$ always means the same thing.

Thanks to @giaruffo for flagging this issue!

Louvain description

In Section 6.3.2 Modularity Optimization, shaded box illustrating the Louvain algorithm, end of item 2: "...with weight equal to the number of internal links." -> "...with weight equal to twice the number of internal links."

Post solutions to exercises

Wait for feedback from editor as to whether to only post solutions to selected problems (on Github), or to all exercises (only accessible to instructors), or a combination of both

Chapter 0, Fig. 0.2, page 9: Colors represent film genres or languages/countries

If nodes represent actors, as said in the caption and in the inline text, it does not make any sense to color nodes according the film genre, am I right? an actor may play different roles in different movies of differerent genres. Moreover colors match suspiciously too well with clusters: it looks like that colors have been assigned after the membership to a given modularity class. Just a guess.

Question about Tutorial 7

Is it possible to change the network (eg, rewire edges) in state_transition()? One would need to do that to implement the model in section 7.3.3 of the book...

page 99 and Fig. 4.1: co-citation

I could be wrong, but co-citing papers (connected with dashed blue links to the cited paper) should be both on the left of the target paper, if links points always backward in time.

Proofreading

We need to proofread all tutorials, as we have found several typos.

  • Appendix
  • Ch 1
  • Ch 2
  • Ch 3
  • Ch 4
  • Ch 5
  • Ch 6
  • Ch 7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.