lisa singh


I teach introductory courses, advanced programming, database, data mining, and data science courses.  Below are descriptions of the courses I regularly teach.  Some 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 and implementing a database application using Postgres. You will also be introduced to HBase and Hive.


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 Anaytics (COSC-587) is a graduate course covering data science concepts (data collection, cleaning, filtering, pre-processing, modeling, knowledge extraction, actionable recommendations). The data science process and its connections to statistical techniques. Algorithms. Data exploration and elements of visualization. Ethical issues and ways to implement them. Examples applications include fraud detection, social networks, and spam filters, among others.




Graduate Data Analytics


Introduction to Data Science



Introduction to Databases


332 St. Mary's Building