How do search engines work, and how can they be manipulated? How does Google Maps find routes to your destination? How likely is it that a new disease will become an epidemic, and what can be done to prevent this? How do viral videos spread? Can we identify a viral video before it goes viral? Can this be applied to disinformation campaigns on Facebook? Conversely, what’s the most efficient way to spread your favorite political ad through a social network like Facebook?
All these questions, at their core, involve networks. A network is a group of interconnected people or things. For example, a map can be understood as a collection of locations connected by roads. People spread diseases through interactions with each other. Viral videos travel from account to account as people share them with their friends and followers. In this course, we will introduce techniques used by mathematicians and computer scientists to model and analyze networks. This class will be taught with an emphasis on interesting applications.
Most high school level math courses present mathematics in a rigid, unintuitive manner. Students are taught formulas, techniques, and algorithms that have been designed and refined over centuries, but then they are given at best a few contrived examples of problems that allow them to use these tools. In this course, students will be introduced to interesting problems in a variety of different fields. Through guided projects, students will learn various tools of network theory. Students will be encouraged to experiment and ask questions of their own.
The first week of the course will be spent learning the fundamentals of network theory. Students will first learn about graphs; graphs are the mathematical construct used to study networks. Students will finish the week with some basic tutorials on Python programming and an introduction to probability and statistics. In the second week, students will study properties of real-world networks, and try to design random graphs that mimic these properties. They will also study graph search algorithms, which are essential knowledge for anyone interested in computer science. The final week will be spent studying an advanced topic chosen by the class. This could include an introduction to graphical models, percolation, dynamical systems on graphs, community detection or some other topic.
This course will focus on the exploration of network models. Students will be introduced to a variety of interesting questions and will be encouraged to collaborate, experiment and ask their own questions as they learn the tools needed to analyze networks. Most of the course will be spent on in-class assignments, small projects, and class discussions. Some homework may be assigned. Students will be encouraged to collaborate on all assignments.
This course will be particularly helpful for students planning to study computer science or mathematics, but will also be of relevance to students who go on to study a variety of other STEM fields. By the end of the course, students will have experienced modeling real-world problems, understand how mathematicians analyze networks and other hard questions and have explored some unsolved problems in mathematics.
Computer science students will obtain an introduction to graph search algorithms: a fundamental topic which any programming job will require its applicants to know well.
Prerequisites: Students are required to know Algebra I. Familiarity with Python is recommended, but not required. All programming skills necessary for the class will be covered in the first week. However, students who are familiar with Python will find it easier to interact with the material and build intuition. All students should bring a laptop computer to class.
Brown’s Pre-College Program in the liberal arts and sciences, offering over 200 non-credit courses, one- to four-weeks long, taught on Brown’s campus. For students completing grades 9-12 by June 2020.Visit Program Page Information Sessions Learn How to Apply