Course Syllabus
INFO I368 (3 CR) Introduction to network science
Description | Prerequisites | Objectives | Expectations | Grading | Meetings | Instructors | Books | Software and Tools | AI policy | Academic integrity | Other policies | Remarks
Description
Friends, computers, Instagram, 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.
Prerequisites
INFO-I 210 or CSCI-C 200 or CSCI-C 211 or CSCI-A 201 or COGS-Q 260. The courses will also be open to undergraduates in other programs with instructor permission (eg, CS, Cognitive Science, Statistics, Psychology, Biology, Sociology, Communications, Engineering, Business, and Physics). Programming experience (in Python) and exposure to probability theory, statistics, calculus, and discrete math are highly recommended.
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 activities, participation, and exams.
Students will:
- 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 network 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.
Format and expectations
This course is in person, using the flipped-classroom model:
- You are expected to read the assigned chapters of the textbook and watch the assigned lecture videos before class.
- During class time, we will discuss the lecture and reading material assigned for the week, and review anything that needs clarification. Your participation in this discussion will constitute the bulk of your participation grade, and you must be present in class to earn credit.
- We will also use class time to answer questions about homework; hold coding tutorials; and work on assignments.
The course is divided into Weeks, as listed in the Modules tool. Each week includes:
- material for you to read, watch, and explore asynchronously
- graded assignments and other activities
Health and Safety
IU follows recommended public health guidance. In recognition of all IU community members owe to each other, we expect every member of the IU community will adhere to all current policies and practices. Procedures outlined in the Student Code of Conduct apply for further action in case of deviations from health and safety policies. (More below.)
Attendance
Attendance promotes learning (and good grades) and is therefore required. If you are sick, you should not attend class. During absences due to illness, you can still earn participation credit by posting comments or questions about the current week's readings on the online discussion forum (see instructions there).
Read this syllabus carefully for more details on the course requirements.
Grading
| Component | Weight | Notes |
|---|---|---|
| Participation | 20% | Attendance and daily in-class discussion and quizzes based on assigned lecture and reading material; use of online discussions also counts! |
| Homework | 10% | Weekly assignments, MC + code |
| Midterm exam | 30% | MC questions, problems, and coding exercises |
| Final exam | 40% | MC questions, problems, and coding exercises; cumulative |
| Extra credit | 5% | Exercises and fun activities |
Class meetings
Tu-Th at 2:20P-3:35P in Luddy Hall, IF 1104.
Course schedule: see Weekly Modules
Instructors and office hours
- Fil Menczer is the instructor. Office Hours: after class (Tu-Th 3:35-4:30p) or by appointment in room LU 2028 (Luddy AI building, not Luddy Hall). You can schedule an appointment by approaching Fil after class or emailing Tara Holbrook.
- Zoher Kachwala is the AI. He's a PhD student in computer science, doing research on knowledge graphs and AI. Office hours: Fri 2-4pm in room LU 2058 (Luddy AI building, not Luddy Hall).
Please use the online discussion forum for all class-related questions and communications. Email instructors directly only for personal matters.
Books
The textbook is A First Course in Network Science by Menczer, Fortunato & Davis (Cambridge University Press, 2020, ISBN 9781108471138). It is available as an IU eText (Unizin Engage link in Canvas course navigation). You may want to download the eText for offline access, using your browser or the Unizin Read app on your mobile device. Please refer to The Student Guide to IU eTexts for questions and troubleshooting. If you enjoy the book, we would really appreciate a review on Amazon!
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.
Software and tools
We will be using Python and the NetworkX module. You can follow one or both of two approaches:
- There are several free services to run Jupyter notebooks in the cloud. We recommend Google Colab, which has been tested with our assignments and should have all necessary modules installed. In alternative you are welcome to explore other services like Binder, Kaggle Kernels, Azure Notebooks, Datalore, or Noteable. 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.
- 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
piporconda). 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 concepts 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.
AI policy
tl;dr: If you get AI help for your assignments, you will probably get a poor grade in this course.
Since students are still learning the basics of coding in this course, AI assistance is generally counterproductive. AI agents like ChatGPT, Copilot, Gemini, Llama, and Claude are likely to provide answers that, even if correct, do not help a student learn. AI agents have strong coding skills but poor teaching skills.
Therefore we strongly urge students to avoid seeking help from AI for coding tasks that they don't already know how to solve. AI might be useful to look up documentation or recall some previously-seen pattern. For everything else, it's better to learn by doing: try, learn from errors, debug, try again, and repeat.
If stuck, consult with an instructor rather than an AI. We will help you understand how to solve the problem rather than give you a ready-made solution that you are unlikely to understand. If instead you use AI to complete assignments, you are likely to learn little from the exercise and later do poorly in the exams that carry most of the weight toward your final grade (where AI is not allowed).
We urge students to disable all AI features in their programming environment. For example, in Google Colab, go to Settings -> AI Assistance and check the box to "Hide generative AI features."
Academic integrity
The principles of academic honesty and professional ethics will be vigorously enforced in this course, following the Student Code of 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, quiz, or other assignment you turn in for grading and credit must be your individual work. Even if you work with a study group (which is encouraged), what you turn in must be exclusively your own. If you turn in work done together with, or with the assistance of, anyone or anything (including AI) other than the instructors, this is an instance of cheating. Examples of cheating:
- Googling the text of a homework assignment problem/exercise
- Copying and pasting code from AI chatbots, Stack Overflow, GeekForGeeks, or anywhere on the Web
- Looking at solutions written by another student
- Submitting code that you are unable to explain in detail
- Doing "research" on the web and not acknowledging your sources
Students may be asked to explain their code. The inability to explain any code submitted for grading will likely result in an academic misconduct report to the Dean of Students.
The beginning of this article presents an experiment that explains the motivation for this policy: "Working hard and struggling is actually an important way of learning. When you’re given an answer, you’re not struggling and you’re not learning."
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 Student Code of 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.
Other class policies
- Students are responsible, and will be quizzed in class, for assigned readings and lectures before class sessions.
- Start working on homework early, so you can get help in class (don't procrastinate until the last minute! We cannot provide help during the weekend :)
- Late assignments cannot be accepted or graded.
- Attendance is required except for illness. It is your responsibility to find out about any announcements or assignments you may have missed during class sessions.
- The main communication medium outside of class is the online discussion forum. Students are expected to post their questions, answer other students' questions, post links to relevant news, 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 ask in class or during office hours. Alternatively, if you can narrow down the bug to a small snippet (say 2-3 lines) of code, you can post a question on the online discussion forum. But one should never post an entire script or extended code, nor provide coding solutions for assignments (see academic integrity).
- Students are responsible for making backups of all of their work! This includes any assignments 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.
- Grades will not be given out via email. Note that some grade components, like participation, will not appear on Canvas until the final grades are calculated. Feel free to ask the instructor about your participation grade after class or during office hours, at any time during the semester.
- The instructor may take into account class trends in the assignment of final grades, but only to increase grades.
Final remarks
As your instructor, one of my responsibilities is to help create a safe learning environment for all students:
- Help is available from the Office of Student Life regarding care referrals, mental health services offered by CAPS, Accessible Educational Services, and other support services. Note that Accessible Educational Services (AES) require a formal request to AES; please submit the request, and once you get a letter from AES, see the instructor after class or during office hours to formalize the agreement.
- 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, you can make an appointment with the IU Sexual Assault Crisis Services at 812-855-5711, or contact a Confidential Victim Advocate at 812-856-2469 or cva@indiana.edu. It is also important that you know that Title IX 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 who 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 (biasincident@indiana.edu or incident@indiana.edu), phone (812-855-8188), or the IU mobile App. Reports can be made anonymously.
- Students missing class for a religious observance can find the officially approved accommodation form by going to the Vice Provost for Faculty and Academic Affairs webpage for religious accommodations. The form must be submitted at least 2 weeks prior to the anticipated absence.
- We need to work together to keep each other healthy. Everyone who participates in this course is expected to follow the University policies on vaccinations and face masks. Masks are available at the entrance of university buildings. You must refrain from attending class if you have a temperature above 100.4 or other symptoms of illness, have tested positive for COVID-19, or have been instructed to quarantine. Absences due to illness will not affect grades; participation credit can be earned via online discussions.
We welcome feedback on class organization, material, lectures, assignments, and exams. You can provide us with constructive criticism during office hours or via the online discussion forum. Please share your comments and suggestions so that we can improve the course.