I greatly enjoy teaching and strive for interactive classes. I much prefer using games and activities to communicate concepts rather than lecture and often include projects in my courses.
If you would like to know more about my teaching philosophy, feel free to read my teaching statement.
This course will introduce methods for analyzing and understanding the structure and function of networks, including social networks, web graphs, and sensor networks. The course will introduce students to the math and science of network analysis. Through real world examples, including analysis of their own networks, students will develop skills for describing and understanding the structure, patterns, and functionality of networks. Students will read classic and cutting edge articles and books about these topics and discuss their applicability to various network types. The class will culminate with a capstone project in which students will apply the analysis methods they have learned to understanding a particular question about a network they choose.
This course builds practical experience in using Python to analyze and discover insights from social media during times of social unrest or crisis. We demonstrate how temporal, network, sentiment, and geographic analyses on Twitter can aid in understanding and enhance storytelling of controversial events, including protests in Ferguson, MO and Baltimore, MD. These demonstrations will include hands-on exercises on categorizing tweets by location and sentiment (positive or negative language), visualizing the different groups of people taking part in the discussion using NodeXL, and detecting compelling moments in the data. Students will also be introduced to the Jupyter notebook framework to aid in repeatable research and support dissemination of results to others.
This course examines the basic concepts of local and wide-area computer networking including an overview of services provided by networks, network topologies and hardware, packet switching, client/server architectures, network protocols, and network servers and applications. The principles and techniques of information organization and architecture for the Web environment will be covered along with such topics as management, security, authentication, and policy issues associated with distributed systems.
This course will focus on program design and implementation, emphasizing understanding and development of non-trivial applications, object-oriented design, and other approaches.
An introduction to the basic concepts of computer networks. The architecture of data communication systems, the seven-layer model of a network, and the physical, data link, network, transport, and session layers are explored. Protocol algorithms are considered for the implementation of the various network layers.