Artificial intelligence (AI) is the study of intelligent behavior. While other fields such as philosophy, psychology, neuroscience, and linguistics are also concerned with the study of intelligence, the distinguishing feature of AI is that it deals primarily with information processing models. Thus the central scientific question of artificial intelligence is how intelligent behavior can be reduced to information processing. Since even the simplest computer is a completely general information processing device, the test of whether some behavior can be explained by information processing mechanisms is whether a computer can be programmed to produce the same behavior. Just as human intelligence involves gathering sensory input and producing physical action in the world, in addition to purely mental activity, the computer for AI purposes is extended to include sense organs such as cameras and microphones, and output devices such as wheels, robotic arms, and speakers.
The predominant research paradigm in artificial intelligence is to select some behavior that seems to require intelligence on the part of humans, to theorize about how the behavior might be accounted for, and to implement the theory in a computer program to produce the same behavior. If successful, such an experiment lends support to the claim that the selected behavior is reducible to information processing terms, and may suggest the program's architecture as a candidate explanation of the corresponding human process.
The UCLA Computer Science Department has active research in the following major subfields of artificial intelligence:
The computational systems biology (CSB) field can be selected as a major or minor field for the Ph.D. or as a specialization area for the M.S. degree in Computer Science.
Graduate studies and research in the CSB field are focused on computational modeling and analysis of biological systems and biological data.
Core coursework is concerned with the methods and tools development for computational, algorithmic, and dynamic systems network modeling of biological systems at molecular, cellular, organ, whole organism, or population levels — and leveraging them in biosystem and bioinformatics applications. Methodological studies include bioinformatics and systems biology modeling, with focus on genomics, proteomics, metabolomics, and higher levels of biological/physiological organization, as well as multiscale approaches integrating the parts.
Typical research areas with a systems focus include molecular and cellular systems biology, organ systems physiology, medical, pharmacological, pharmacokinetic (PK), pharmacodynamic (PD), toxicokinetic (TK), physiologically based PBPK-PD, PBTK, and pharmacogenomic system studies; neurosystems, imaging and remote sensing systems, robotics, learning and knowledge-based systems, visualization, and virtual clinical environments. Typical research areas with a bioinformatics focus include development of computational methods for analysis of high-throughput molecular data, including genomic sequences, gene expression data, protein-protein interaction, and genetic variation. These computational methods leverage techniques from both statistics and algorithms.
The computer networks field involves the study of computer networks of different types, in different media (wired, wireless), and for different applications. Besides the study of network architectures and protocols, this field also emphasizes distributed algorithms, distributed systems, and the ability to evaluate system performance at various levels of granularity (but principally at the systems level). In order to understand and predict systems behavior, mathematical models are pursued that lead to the evaluation of system throughput, response time, utilization of devices, flow of jobs and messages, bottlenecks, speedup, power, etc. In addition, students are taught to design and implement computer networks using formal design methodologies subject to appropriate cost and objective functions. The tools required to carry out this design include probability theory, queueing theory, distributed systems theory, mathematical programming, control theory, operating systems design, simulation methods, measurement tools, and heuristic design procedures. The outcome of these studies provides the following:
A central problem in the design and evaluation of computer networks deals with the allocation of resources among competing demands (e.g., wireless channel bandwidth allocation to backlogged stations). In fact, resource allocation is a significant element in most of the technical (and nontechnical) problems we face today.
Most of our resource allocation problems arise from the unpredictability of the demand for the use of these resources, as well as from the fact that the resources are geographically distributed (as in computer networks). The computer networks field encounters such resource allocation problems in many forms and in many different computer system configurations. Our goal is to find allocation schemes that permit suitable concurrency in the use of devices (resources) so as to achieve efficiency and equitable allocation. A very popular approach in distributed systems is allocation on demand, as opposed to prescheduled allocation. On-demand allocation is found to be effective, since it takes advantage of statistical averaging effects. It comes in many forms in computer networks and is known by names such as asynchronous time division multiplexing, packet switching, frame relay, random access, and so forth.
Computer science is in large measure concerned with information processing systems, their applications, and the corresponding problems of representation, transformation, and communication. The computer science fields are concerned with different aspects of such systems, and each has its own theoretical component with appropriate models for description and analysis, algorithms for solving the related problems, and mathematical tools. Thus in a certain sense computer science theory involves all of computer science and participates in all disciplines.
The term theoretical computer science has come to be applied nationally and intentionally to a certain body of knowledge emphasizing the interweaving themes of computability and algorithms, interpreted in the broadest sense. Under computability, one includes questions concerning which tasks can and cannot be performed by information systems of different types restricted in various ways, as well as the mathematical analysis of such systems, their computations, and the languages for communication with them. Under algorithms, one includes questions concerning (1) how a task can be performed efficiently under reasonable assumptions on available resources (e.g., time, storage, type of processor), (2) how efficiently a proposed system performs a task in terms of resources used, and (3) the limits on how efficiently a task can be performed. These questions are often addressed by first developing models of the relevant parts of an information processing system (e.g., the processors, their interconnections, their rules of operation, the means by which instructions are conveyed to the system, or the way the data is handled) or of the input/output behavior of the system as a whole. The properties of such models are studied both for their own interest and as tools for understanding the system and improving its performance or applications.
Computer system architecture deals with the design, implementation, and evaluation of computer systems and their building blocks. It deals with general-purpose systems as well as embedded special-purpose systems. The field also encompasses the development of tools to enable system designers to describe, model, fabricate, and test highly complex computer systems from single-chip to computing clouds.
Computer systems are implemented as a combination of hardware and software. Hence, research in the field of computer architecture often involves both hardware and software issues. The requirements of application software and operating systems, together with the capabilities of compilers, play a critical role in determining the features implemented in hardware. At the same time, the computer architect must also take into account the capabilities and limitations of the underlying implementation technology as well as of the design tools.
The goal of research in computer architecture is to develop building blocks, system organizations, design techniques, and design tools that lead to improved performance and reliability as well as reduced power consumption and cost.
Corresponding to the richness and diversity of computer systems architecture research at UCLA, a comprehensive set of courses is offered in the areas of advanced processor architecture, arithmetic processor systems. parallel and distributed architectures, fault-tolerant systems, reconfigurable systems, embedded systems, and computer-aided design of VLSI circuits and systems.
The data science computing field focuses on basic problems of modeling and managing data and knowledge, and their relation with other fundamental areas of computer science, such as operating systems and networking, programming languages, and human-computer interface design.
A data management system embodies a collection of data, devices in which the data are stored, and logic or programs used to manipulate that data. Information management is a generalization of data management in which the data being stored are permitted to be arbitrarily complex data structures, such as rules and trees. In addition, information management goes beyond simple data manipulation and query and includes inference mechanisms, explanation facilities, and support for distributed and web-based access.
The need for rapid, accurate information is pervasive in all aspects of modern life. Modern systems are based on the coordination and integration of multiple levels of data representation, from characteristics of storage devices to conceptual and abstract levels. As human enterprises have become more complex, involving more complicated decisions and trade-offs among decisions, the need for sophisticated information and data management has become essential.
The graphics and vision field focuses on the synthesis and analysis of image and video data by computer. Graphics includes the topics of rendering, modeling, animation, visualization, and interactive techniques, among others, and it is broadly applicable in the entertainment industry (motion pictures and games) and elsewhere. Vision includes image/video representation and registration, feature extraction, three-dimensional reconstruction, object recognition, and image-based modeling, among others, with application to real-time vision/control for robots and autonomous vehicles, medical imaging, visual sensor networks and surveillance, and more. Several of the projects undertaken by our researchers in this field unify graphics and vision through mathematical modeling, wherein graphics is considered a models-to-images synthesis problem and vision the converse images-to-models analysis problem.
The programming languages and systems field is concerned with the study of theory and practice in the development of software systems. Well-engineered systems require appreciation of both principles and architectural trade-offs. Principles provide abstractions and rigor that lead to clean designs, while systems-level understanding is essential for effective design.
Principles here encompass the use of programming systems to achieve specified goals, the identification of useful programming abstractions or paradigms, the development of comprehensive models of software systems, and so forth. The thrust is to identify and clarify concepts that apply in many programming contexts.
Development of software systems requires an understanding of many methodological and architectural issues. The complex systems developed today rely on concepts and lessons that have been extracted from years of research on programming languages, operating systems, database systems, knowledge-based systems, real-time systems, and distributed and parallel systems.