Research Areas

Algorithms, Logic, and Complexity

The goal of pragmatic computer science is to develop systems that fully exploit the capabilities of current computer technology. The goal of theoretical computer science is to understand the underlying principles of information processing, principles that are invariant with respect to technological change. Some of the areas we are investigating are described below.

An algorithm with exponential asymptotic running time is of limited practical value regardless of future advances in hardware technology. Members of the faculty are searching for efficient, practical algorithms to solve problems in coding, scheduling, logic, computational geometry, information retrieval, and programming-language optimization. We are also studying the approximation properties of NP optimization problems and developing methods for establishing both positive and negative approximation results for such problems.

Computer Hardware: Architecture, VLSI (Chip Design), FPGAs, and Design Automation

Computer hardware research at UCSC has several related areas: computer architecture, VLSI (chip design), FPGA design, and design automation. UCSC researchers in these areas publish in conferences such as ASPLOS, DAC, ICCAD, ISCA, and MICRO. Computer hardware research has gained interest for hardware acceleration and custom architectures for machine learning, signal processing, and other compute-intensive algorithms. Computer architecture research spans the gamut from edge devices like phones to data-center scale computing and includes topics such as high-performance computing (HPC) and low-power design. VLSI (Chip Design) creates new circuits and design styles using emerging technologies to improve power, performance, and reliability of future computer systems. FPGA design investigates methods for fast prototyping, verification and hardware acceleration. Design Automation investigates Electronic Computer-Aided Design (CAD) to improve designer productivity and optimize large-scale design problems.

Computer Security and Privacy

Current research interests at UCSC include secure file systems, language-based security,  information flow control, authorization logic, systems and network security, decentralized systems, IoT security, and differential privacy.

Cyber-Physical Systems

Faculty in Cyber-Physical Systems work at the intersection of the cyber and physical worlds. Their research span a wide range of areas in CS, CE, and EE including algorithms, networks and their protocols, control, and physical hardware (sensing, actuation, and computation) to enable automated systems to perform a variety of tasks. This includes research in Internet of Things, pervasive computing, applied control applications, navigation, sensor fusion, security, UAVs, UGVs, ASVs, satellite systems, flexible and deformable robots, soft robotics, hybrid control, medical devices and applications, and embedded systems.

Distributed Systems

The field of distributed systems studies the design, implementation, and behavior of systems that involve independent components that communicate by passing messages to one another over a network. In addition to the usual challenges of concurrency, distributed systems may involve unbounded latency between components and independent failure of components, making distributed systems difficult to reason about and debug.  Distributed systems research at UCSC spans a range of subjects, from the theoretical to the applied.

Database Systems

The database research at UCSC is working on the areas of data provenance, annotations, archiving, data integration, scientific databases, database query languages, combinatorial optimization of database problems, and succinct data structures for applications on networks, distributed storage, and bioinformatics.

Machine Learning and Artificial Intelligence

Machine learning (ML) and Artificial intelligence (AI) address the challenging task of developing systems whose behavior may be learned by machines and termed intelligent. AI techniques have been applied to problem domains including natural language processing, robotics, expert systems, automatic programming, combinatorial problem solving, perceptual problems, computer vision, image processing, and geo-spatial visualization. Despite the diverse nature of these domains, they all benefit from AI methodologies developed for knowledge representation, efficient search, deduction, and learning.

Natural Language Processing

The field of Natural Language Processing (NLP) develops computational models of the language that humans speak and write in all its forms, such as news, social media and conversation.  Because human language is everywhere, there are a large range of theories, techniques and applications. Research in NLP incorporates aspects of machine learning, data science, and linguistic knowledge because of the large volume and types of NLP data and wide range of human languages, and the associated challenges with being able to understand and generate language across these many different settings. NLP applications include search, information retrieval, knowledge extraction from text, causal models, biomedical informatics, conversational modeling, customer care, dialogue systems, sentiment analysis, recommender systems, speech recognition, narrative understanding, machine translation, and the summarization and generation of text.  

Networks

Computer network research at UCSC covers a variety of topics, including design, implementation, analysis, evaluation, testing, and deployment of protocols at different layers of the network stack, network security, software defined networking, network measurement and management, wireless and sensor networks, pervasive computing, network function virtualization, cloud and data center networks, Internet of Things, and network economics.    

Pervasive Computing and Human-Computer Interaction

The pervasive computing and human-computer interaction research at UCSC focuses on improving the experience of using computing resource in human life and providing convenience of computing to people with special needs. We study the technologies of computer vision, wireless sensing, RFID systems, and cross-technology data fusion.

Programming Languages

Research in this area is concerned with the semantics, design, implementation, and analysis of programming languages. This research includes investigations of core topics, such as type systems, compilers, and program analysis, and also deals with applications in software engineering and security. It combines theory (often based on methods from logic) and experimental work (often overlapping with software engineering).

Robotics

Faculty in Robotics work on flexible and deformable robots, soft robotics, hybrid control, medical devices and applications, and embedded systems.

Social Computing

Computers make inferences from the noisy data produced by the people.  How can we ensure that people collaborate productively, and that reliable information is produced as the result of the collaboration?  How can we model and predict the dynamics of crowds exposed to flows of information they can reshare and comment on? This research area encompasses reputation systems, crowdsourcing, social computing, game theory, social choice and behavioral incentives, and the study of the dynamics arising from modern means of information transmission and resharing.

Storage Systems

Improving the performance, reliability, security, and usability of storage systems is a major research area in the Computer Science and Engineering Department. Our research in storage fits broadly into several categories: investigating the use of next-generation storage devices such as non-volatile memory;  improving the performance of existing storage systems; improving the reliability and security of storage systems; and design and implementation of scalable storage systems for data centers and high-performance computing. This research is applied to both active data and archival storage, and is applied to levels of the storage stack ranging from the hardware level through the operating system level to applications.

Visual Computing: Computer Vision, Visualization and Graphics

The science of analyzing and processing visual information (images, videos, 3D data streams) is important if compute systems are to interact with or understand the real world. Producing visual data is important if humans are to interact with or understand what is being computed. The vast majority of the bits analyzed, processed, or streamed in any modern computing system originated in a camera or are destined for human eyeballs. Self driving cars need to see and understand the world. Augmented reality requires tracking the current position of the goggles or mobile phone. The results of analyzing a mountain of data need to be visualized in a way humans understand. Research at UCSC spans from fundamental technologies to applications. Example applications include using a phone camera to assist blind users, analyzing webcam footage to detect ocean rip currents, or helping organize internet photo collections. Example fundamental technologies include text detection in images, improving the quality of time-of-flight 3D data, and building new kinds of 3D sensors.