lisa singh


I teach introductory courses, advanced programming, database, data mining, and data science courses.  Below are descriptions of the courses I have taught over the last decade and may teach again.   Many of these courses are taught by other professors as well.


Linked: Exp Social & Life Science (COSC-044) This interdisciplinary course focuses on the emerging science of complex networks and their applications. The material will include the mathematics and computer science of networks, their applications to biology, sociology, business, transportation and other fields, and their use in the research of real complex man-made and natural systems. Students taking the course will learn what networks are, characteristics that are used to define different types of networks, and methods for analyzing networks. They will have the opportunity to apply their knowledge to the analysis of real world networks using an interactive storytelling environment that integrates python programming code execution with text, math, and visual analytics into a single web-based document.


Advanced Programming (COSC-150) exposes students to advanced programming and basic software engineering concepts important for upper-division courses. Topics include, event-driven programming, graphical user interfaces (GUIs), human computer interaction, 2/3D Graphics, exception handling, threads, sockets, networking, unit testing, mobile device programming, and the MapReduce programming model. Prerequisite: COSC-052 or permission.


Introduction to Databases (COSC-280) covers the theoretical design principles of modern database systems, the data structures and algorithms used in their implementation, and the techniques and tools used in designing databases. It is a comprehensive introduction to relational database modeling, relational design principles based on functional dependencies and normal forms, query languages including SQL, and database optimization techniques (indexing, views, and integrity constraints). The course also includes an introduction to non-relational distributed databases used in a cloud computing environment, e.g. HBase, BigTable, etc. If you have an interest in databases, you will enjoy this course. There will be a project that involves designing, implementing, and optimizing a database application using Postgres.


Introduction to Data Science (COSC-287) teaches students how to synthesize disparate, unstructured data to better understand/characterize the world around us, and in some cases, to draw meaningful inferences. Topics covered include: an overview of the history of data science, discussion of successful data science cases, an introduction to big data analytics, the analytics lifecycle, data preparation, data cleaning, basic analytic methods including basic clustering and inference models, and visual analytics.


Advanced Database Systems (COSC-580) is a graduate course on database systems. It is assumed that you are already familiar with basic topics related to database systems from an undergraduate course. The central aspect of this course is to consider key research themes and advanced topics in database systems, including data warehousing, transaction management, distributed DBMS, graph databases, probabilistic databases, formal query models, indexing and benchmarking. The class also includes a final project based on the topics covered.


Knowledge Discovery and Data Mining (COSC-585) is a graduate course focusing on techniques that can be used for data mining tasks such as classification, association rule mining, clustering, and anomaly detection. Specialized topics will also be covered, including privacy preserving data mining, graph/social mining, and visual analytics. This course also places such data mining within the larger picture of knowledge discovery in databases so we can consider issues associated with data transformation, data cleansing and data reduction. Students will learn basic knowledge discovery and data mining techniques, develop data mining software, and analyze data using existing data mining tools.


Data Analytics (COSC-587) is a graduate course that teaches students how to synthesize disparate, possibly unstructured data to better understand and characterize the world around us, and in some cases, to draw meaningful inferences. The course design will be centered on different data analytics and data science cases. Topics covered include: the history of data science, successes and failures in data analytics, the data analytics life cycle, data/web scraping and APIs, formulating data science problems, data wrangling, data characterization (correlations, identifying clusters and associations), data inference, basic network analysis, and visual analytics. Students will be work on a semester long data science project that starts with question formulation and data collection and goes through all the stages of the life cycle, culminating in data storytelling. This course will use Python.



Not teaching



Introduction to Databases


Email: first_name.last_name at


332 St. Mary's Building