INFO I368 (3 CR) Introduction to network science
Friends, computers, the Web, and our brain are examples of networks that pervade our lives. Network science helps us understand complex patterns of connection, interaction, and relationships in many complex systems. Students learn essential concepts and core ideas of network literacy, and basic tools to handle social and information networks.
I201, I210, and I211 for Informatics students. The course is also open to undergraduates in Computer Science, Cognitive Science, Statistics, Psychology, Biology, Sociology, Media, Engineering, Business, and Physics. Students from these other programs should seek instructor permission. Programming experience (in Python) and exposure to probability theory, statistics, calculus, and discrete math are highly recommended.
Lecture (tentative schedule)
TR at 2:30P-3:45P in Luddy Hall 1104
- Filippo Menczer (Office Hours: by appointment in Informatics East 314; schedule in class or with Tara Holbrook)
- AI: Nathan Ratkiewicz (Office Hours: W 2-3p and Th 4-5p in Info East 400)
Please use Canvas for all class-related questions and communications. Email instructors directly only for personal matters.
Software and Tools
- There are several free services to run Jupyter notebooks in the cloud, including:
- 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. We do not recommend other distributions. This option requires that you are comfortable with managing software packages (i.e., using
Be warned: 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. Local Python installations can present issues, especially on Windows machines. Packages are system dependent. In all cases, we are unable to provide support.
In addition, we will use NetLogo to demonstrate some of the network models and concept presented in class. Download and install it for free on your laptop.
Finally, consider Gephi for network analysis and visualization. It has a steep learning curve but produces beautiful layouts.
The textbook is A First Course in Network Science by Menczer, Fortunato and Davis (Cambridge University Press, 2019, ISBN 9781108471138). Since it is not yet available in print, we will provide chapters via Canvas throughout the course.
During the first few weeks of class, students are strongly encouraged to read either Linked by A-L Barabasi (paperback 2003, ISBN 0452284392), or Six Degrees by D Watts (paperback 2004, ISBN 0393325423), or both.
If you want to review your Python:
- A Byte of Python is a concise guide for those of you for whom Python is your first programming language.
- If you're more experienced in a different language than Python, we recommend Writing Idiomatic Python. By learning and using Python's idioms, one is able to write cleaner code, spend less time on the code and more time on your problem, and earn higher scores on graded assignments.
Course description and learning objectives
Networks pervade all aspects of our lives: networks of friends, communication, computers, the Web, and transportation are examples we experience, while our brain cells and the proteins in our body form networks that determine our survival and intelligence. The network is a general yet powerful way to represent and study relationships. In this course, students are introduced to the study of networks and how they help us understand the complex patterns of connections that shape our lives. Through examples from popular social and information networks, students learn about key aspects of networks and basic tools to analyze and visualize them. Students will be evaluated on the basis of hands-on assignments and exams.
- Learn essential concepts and core ideas of network literacy
- Acquire skills to load, manipulate, export, and visualize networks using tools and programming languages such as Python/NetworkX, NetLogo, and Gephi
- Recognize and describe a network's structural components and properties (nodes, links, degree, connectivity, sparsity, paths, etc.)
- Analyze social networks and inspect their small-world properties
- Measure various centrality measures and their distributions, and apply them to detect important nodes and characterize their roles in the network
- Understand the friendship paradox, according to which your friends have more friends than you do, on average
- Quantify network homophily and clustering and explain how they arise in different systems
- Describe dynamic processes on networks, such as the spread of diseases and rumors
- Demonstrate the networks algorithms used by search engines to crawl and rank Web pages
- Appreciate the broad relevance of network science to many domains and applications, including biology, business, AI, search, recommendation, and social media
Additional topics may be covered based on student needs and interests.
|Participation||20%||Attendance promotes learning and is therefore mandatory; spot-check quizzes based on assigned readings and review of class notes|
|Homework||40%||Weekly assignments, MC + code|
|Midterm exam||20%||MC questions, problems, and coding exercises|
|Final exam||20%||MC questions, problems, and coding exercises; cumulative|
- Readings will be distributed via Canvas. Students are responsible and will be quizzed for assigned readings PRIOR to class discussions.
- Start working on homework early, so you can ask questions in class and at office hours (don't procrastinate until the last minute! We cannot provide help during the weekend :)
- Late assignments cannot be accepted or graded.
- If your cell phone rings during class, you owe $1 to the charity fund. Proceeds will be donated to a charity at the end of the semester.
- Use of laptops in class is allowed only during programming tutorials and exercises. Use of laptops, tablets, or other mobile devices in class is otherwise provided, given increasing evidence that it is distracting. You are strongly encouraged to take notes on paper. If you seek an exemption from this policy, you will be asked to provide a request from the Office of Disability Services. Otherwise, if you use laptops, tablets, or other mobile devices during class, you owe $1 to the charity fund. Repeat offenders will be asked to leave the class and will miss attendance credit.
- The main communication medium outside of class is Canvas Discussions. Students are expected to post their questions, answer other students' questions, post pointers to relevant technology news (do NOT copy and paste entire news articles! Links are ok), and check Canvas daily for announcements. Email to instructors is to be used only for confidential matters.
- Instructors cannot debug code via email. If you need help debugging, the best option is to go to office hours. If you cannot go to office hours and can narrow down the bug to a small snippet (say 2-3 lines) of code, you can post a question on Canvas Discussions. But one should never post an entire script or extended code (see academic integrity).
- Students are responsible for making backups of all of their work! This includes any assignment and other materials you produce.
- Students are responsible for the safe and ethical use of class accounts on shared servers, according to university policy and copyright law, and for the sole purpose of carrying out class assignments. Accounts will be monitored and any abuse will be reflected in the grades.
- Students are required to attend class. If you miss class, it is your responsibility to find out about any announcements or assignments you may have missed.
- A couple absences will not affect the attendance gade. Beyond that, extenuating circumstances will only include serious emergencies or illnesses. Traveling to job interviews or attending the Job Fair are not excuses for missing class.
- Grades will be given out via Canvas, not email.
- The instructor may take into account class trends in the assignment of final grades, but only to increase grades.
The principles of academic honesty and professional ethics will be vigorously enforced in this course, following the IU Code of Student Rights, Responsibilities, and Conduct.
This includes the usual standards on acknowledgment of help, contributions and joint work, even when you are encouraged to build on libraries and other software written by other people. Any code or other assignment you turn in for grading and credit must be your individual work. If we have group projects with different rules, they will be clearly announced. Even if you work with a study group (which is encouraged), the work you turn in must be exclusively your own. If you turn in work done together with, or with the assistance of, anyone else other than the instructors, this is an instance of cheating.
Several commercial services have approached students regarding selling class notes/study guides to their classmates. Please be advised that selling a faculty member's notes/study guides individually or on behalf of one of these services using IU email or Canvas violates both IU information technology and IU intellectual property policy. Selling notes/study guides to fellow students in this course is not permitted. Violations of this policy will be considered violations of the Code of Student Rights, Responsibilities, and Conduct and will be reported to the Dean of Students as a violation of course rules (academic misconduct).
Cases of academic misconduct (including cheating, fabrication, plagiarism, interference, or facilitating academic dishonesty) will be reported to the Dean of Students. The typical consequence will be an automatic F grade in the course.
Your submission of work to be graded in this class implies acknowledgement of this policy. If you need clarification or have any questions, please see the instructor during office hours.
Students in this class are invited to use Boost, a free smartphone app developed at IU that provides notifications and reminders about schoolwork in Canvas. It is designed to help students keep track of assignment deadlines, important announcements, and course events all in one easy-to-use app. More information here.
As your instructor, one of my responsibilities is to help create a safe learning environment for all students:
- We would like to hear from anyone who has a disability or other issues that may require some accommodations to be made. The offices of Disability Services for Students and CAPS are available for assistance to students. Please see the instructor after class or during office hours.
- Title IX and IU's Sexual Misconduct Policy prohibit sexual misconduct in any form, including sexual harassment, sexual assault, stalking, and dating and domestic violence. If you have experienced sexual misconduct, or know someone who has, the University can help. If you are seeking help and would like to speak to someone confidentially, please visit stopsexualviolence.iu.edu/help for contact information. It is also important that you know that federal regulations and University policy require me to share any information brought to my attention about potential sexual misconduct with the campus Deputy Title IX Coordinator or IU's Title IX Coordinator. In that event, those individuals will work to ensure that appropriate measures are taken and resources are made available. Protecting student privacy is of utmost concern, and information will only be shared with those that need to know to ensure the University can respond and assist. I encourage you to visit stopsexualviolence.iu.edu to learn more.
- Bias-based incidents (events or comments that target an individual or group based on race, ethnicity, religious affiliation, gender, gender identity, sexual orientation, or disability) are not appropriate in our classroom or on campus. They can be reported by email (email@example.com or firstname.lastname@example.org), phone (812-855-8188), or the IU mobile App. Reports can be made anonymously if desired.
We welcome feedback on the class organization, material, lectures, assignments and exams. You can provide us with constructive criticism via the discussion forum. Please share your comments and suggestions so that we can improve the class.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.