CSCI special topics courses

Spring 2022

CSCI 2980 - Introduction to Undergraduate Research in Computer Science

M 6:00 PM ‑ 8:00 PM
Instructors: Shana Watters and Maria Gini

This seminar will prepare students to engage in undergraduate research in computer science by introducing and exploring the cycle involved in academic research. Students will learn how to access, read and evaluate credible literature, develop a research problem and hypothesis, select an appropriate methodology, and how to write a short research proposal. Students will engage with departmental research faculty through research talks and will explore and apply for research programs that are available (e.g. URGO, McNair, DREU.) Students will know what research entails, how it is performed, and why it can enhance an undergraduate experience.

Registration prerequisites: None

CSCI 2980 - Exploring Algorithms and Data Structures

T 6:00 PM ‑ 8:00 PM
Instructor: Shana Watters

This course is designed as a complement to CSCI 1933 for students who elect to devote additional time to get a broader exposure to algorithms, data structures, concepts and practice of computer science. Students will work in small groups to sharpen their problem solving and computational skills with a special focus on developing efficient and effective algorithms using fundamental data structures.

Registration prerequisites: Co-registration in CSCI 1933 OR CSCI 1933H

CSCI 5980 - Emerging Storage Devices/Systems

TTh 2:30 PM ‑ 3:45 PM
Instructor: David Du

The Internet today has grown to an enormously large scale. Devices large and small are connected globally from anywhere on the earth. With the rapid advancement of technology, we now also have cheap and small devices with high computing power and large storage capacity. These devices are designed to improve our daily life by monitoring our environment, collecting critical data, and executing special instructions. These devices have gradually become a dominant part of our Internet. Many imaging, audio and video data are converted from analog to digital and digital data are generated at an alarming rate. As a result, an unprecedented amount of data is available and generated daily. We can certainly say that we are in a big data era. In this course, we will examine the challenges and research trends in storage systems for supporting this new big data era. Several other major developments like cloud computing, mobile computing, new memory/storage technologies, AI and machine learning are certainly also creating big impact in this new era.

In this course, we will first introduce the new emerging memory/storage technologies. We will then examine the data storage requirements for big data applications. Finally, we will discuss the new memory/storage hierarchies that can potentially address the following challenges:

  • How to store and access the desired information from this sea of data?
  • How to manage these data?
  • How to process these data (in-memory and big graph processing)?
  • How to preserve data for a very long time (100 years)?
  • What are the emerging memory/storage technologies like SSD (Solid State Drives), Non-Volatile memory, SMR (Shingle Magnetic Recording Drives), Kinetic Drives, active storage devices, and OSD (Object Storage Devices)?
  • What are the emerging memory/storage hierarchies?
  • What are the storage systems for mobile computing, cloud computing and big data applications (Hadoop, MapReduce, SPARK, OpenStack, RamCloud, VM, Docker Container, etc.)?
  • What is the emerging SDS (Software Defined Storage)?
  • What are the future file systems?

The students in this class are required to read a set of papers. The class will focus on discussing the problems, the challenges and possible solutions defined in these papers. The goal is to develop thinking and solution techniques for solving big data problems via new and emerging storage systems.

Registration prerequisites: Permission numbers are required for course registration. Contact the course faculty instructor in order to obtain a permission number.

CSCI 5980/8980 - Spatial Enabled Artificial Intelligence

MW 4:00 PM ‑ 5:15 PM
Instructor: Yao-Yi Chiang
Course website

The location of things in space and how they change over time is the key to understanding complex environmental phenomena and human-environmental interactions. A significant amount of data now contains location and time information, either explicitly, e.g., traffic sensors, air quality sensors, satellite imagery, or implicitly, e.g., images and text documents. However, due to the heterogeneity and high complexity of these data, existing approaches in artificial intelligence for handling spatial data encourage the use of a single data type or treat the spatial and temporal dimensions as yet another independent variable. This course aims to explore the foundation and the state-of-the-art on 1) spatial data representations and 2) machine learning & data mining technologies that can exploit the unique spatial data properties (e.g., autocorrelations) to solve real-world problems.

This is a seminar course consisting of lectures and paper presentations. Specifically, this course has two main themes. The first explores current ways to store and manage spatial data, including topics in spatial databases and knowledge graphs & ontology. The second them look into how machine learning & data mining technologies solve real-world problems utilizing the unique spatial data properties, including topics in computer vision (e.g., object detection from overhead imagery), natural language processing (e.g., toponym detection from documents), location time-series data prediction & forecasting (e.g., air quality prediction and traffic forecasting). The course will include several programming assignments and a final project.

Registration prerequisites: Permission numbers are required for course registration. Contact the course faculty instructor in order to obtain a permission number.

CSCI 5980/8980 - Structural Proof Theory

MW 9:45 AM ‑ 11:00 AM
Gopalan Nadathur

In 1935, Gerhard Gentzen introduced the natural deduction and sequent calculi as means for formalizing logical deduction and for investigating its structure. These calculi have turned out to have many applications in Computer Science: they have been useful in understanding computation based on the connections between proofs and programs; they have provided a foundation for using proof search as a means for computing; and they have constituted a unifying framework for mechanizing and automating theorem proving. The structure constituted by these calculi has also lead to a deeper analysis of logical notions, resulting, for example, in linear logic that encompasses classical and intuitionistic logic. In another direction, the calculi provide a means for studying the organization of deduction, an idea embodied in the notion of focusing. This course will expose the calculi and study some of their properties and applications.

Registration prerequisites: Permission numbers are required for course registration. Contact the course faculty instructor in order to obtain a permission number.

CSCI 8980 - Foundations of Blockchain Systems

TTh 4:00 PM ‑ 5:15 PM
Instructor: Anand Tripathi

Bitcoin’s blockchain technology has emerged as an important approach for decentralized management of digital asset ownership in many application domains beyond cryptocurrencies. Blockchain systems are peer-to-peer distributed systems without any centralized controlling authority. The goal of this course is to learn the foundational and advanced topics from the principles of distributed computing in the context of their application in building blockchain system architectures. Specific focus of this seminar course will be on peer-to-peer computing models, gossip protocols, State Machine model for replication management, consensus protocols under different failure models, Byzantine agreement protocols, Bitcoin’s Proof-of-Work model for consensus, and fault-tolerance and scalability techniques in large-scale distributed systems. This course will conduct a study of these topics in the context of blockchain systems.

Registration prerequisites: CSCI 5105 (Distributed Systems)

CSCI 8980 - Human-Centered Machine Learning

TTh 11:15 AM ‑ 12:30 PM
Instructor: Stevie Chancellor

Machine learning has stirred tremendous excitement in research and popular science, as it is being applied to problems of all shapes and sizes. This involves learning and predicting things that humans do naturally (see, hear, understand language), signals we give off unconsciously as well as decisions and ideas we have (make decisions, evaluate options, think creatively). These are captured under the broad banner of human-centered machine learning (HCML), an emergent research and practical area combining human concerns with machine learning and studying the impacts of systems in the world. These concerns include ideas of fairness, accountability, interactivity, and social impact of ML, among others.

In this class, we will study what human-centered machine learning is, how this idea is built and applied in technical systems, and critiques of machine learning from other domains that question if ML can be human-centered. These perspectives include topics like fairness and explainability; personalization and human engagement; applied ML to human problems; and social impacts of machine learning.

Registration prerequisites: CSCI 5521 (Introduction to Machine Learning), or any other courses that cover fundamental machine learning algorithms. Entry into this class is by instructor permission only. Please fill out the course application form if you are interested in enrolling in this seminar. Decisions for permission numbers will be made by the end of November.

CSCI 8980 - Introduction to Natural Language Processing

TTh 4:00 PM ‑ 5:15 PM
Instructor: Dongyeop Kang

Natural Language Processing (NLP) is an interdisciplinary field that are based on theories in linguistics and cognitive/social science, builds computational models for applications such as machine translation and dialogue systems, and allows them to interact with real users, bringing various social issues like bias, ethics, controllability, and interpretability. This course will cover a broad range of topics related to NLP, from theories to computational models to data annotation and evaluation, leading to in-depth discussions with students. Students will read papers on those topics, create linguistically annotated data, and implement algorithms on applications they are interested in. Note that Professor Kang will teach "NLP with Deep Learning" in Fall 2022 for those who are interested in computational aspects of NLP.

Registration prerequisites: CSCI 5521 (Introduction to Machine Learning), or any other courses that cover fundamental machine learning algorithms. Entry into this class is by instructor permission only. Please fill out the permission number request form if you are interested in enrolling in this seminar. Submitting a permission number request form DOES NOT guarantee that you will receive a permission number for enrollment. All requests will be monitored by Professor Dongyeop Kang.