|
|
Computer Science |
COMPUTER SCIENCE
Chair: William A. Barrett
Associate Chair: Tony Martinez
Graduate Coordinator: Scott Woodfield
3361 TMCB
Provo, UT 84602-6576
(801) 378-3027
THE PROGRAM OF STUDIES
The Department of Computer Science offers two degrees: Computer Science—MS and Computer Science—PhD. On the average, the MS program in computer science has from ninety to one hundred students, and the PhD program has from fifteen to twenty.
The MS degree is designed to prepare students either to be technically capable of leading development teams in industrial software development or to be ready to continue on for a PhD. The PhD degree prepares students to be researchers and teachers either in industry or academia. Areas of particular emphasis are listed below under Resources and Opportunities and as research interests in the list of faculty.
The expected duration of the MS program for full-time students who enter without deficiencies is one and a half years. Depending on the number of deficiencies, some students may require additional semesters. Students may not enter the PhD program with deficiencies. For full-time students in the PhD program, the expected duration is three years for those entering the program with an MS in computer science and from four to four and a half years for those entering without an MS in computer science. These expectations assume that students take a full graduate load and begin and complete the steps in their thesis or dissertation research in a timely manner.
Computer Science—MS
Mission Statement. Students should be exposed to and participate in leading-edge research. Depending on their long-range objectives, students should also do one or more of the following:
Admission and Entry.
Requirements for Degree.
Computer Science—PhD
Mission Statement. Students should be able to:
Admission and Entry.
Requirements for Degree.
FINANCIAL ASSISTANCE
The Computer Science Department recognizes that most students require financial assistance to remain in school. The department has funds to supplement students' financial needs in the following forms: internships, teaching and research assistantships; and tuition awards.
RESOURCES AND OPPORTUNITIES
Artificial Intelligence and Expert System Laboratories. Investigations of artificial intelligence techniques are conducted for the automating of problem-solving processes that are informal, heuristic, and symbolic in nature. Research currently includes implementation issues, knowledge representation, prototypes and their validation, fuzzy logic, measures of belief, certainty theory, Bayesian probability theory, and logical inferencing.
Computer Graphics Laboratories. Graphics research in the department concentrates on photo realistic rendering, animation vector field tools for graphics, the representation of hyperdimensional objects, and the automatic generation of interactive software for graphical presentations.
Computer Vision and Image Understanding Laboratory. Research in computer vision deals with the recognition, representation, and description of patterns and images. Current research and applications include intelligent, interactive tools for image segmentation, document compression, recognition, and understanding automated creation of and interaction with virtual environments of digital libraries, medical imaging, and image query and compression.
Distributed Deductive Database Systems Laboratory. Distributed deductive database systems (DDDBSs) enhance the expressive power of conventional relational database systems by adopting logic programming as a query language that allows recursion while offering many advantages over centralized database systems. Two of these are the enhancement of reliability and availability of databases and the improvement of overall system performance by executing transactions in parallel. Ongoing research projects in DDDBSs include data fragmentation and allocation, query evaluation/optimization strategies, transaction management, and concurrency control.
Interactive Software Systems Laboratory. The tools this laboratory produces can automatically generate user-interface software, thereby reducing the cost of developing user-friendly applications. The laboratory also develops techniques to measure the effectiveness of user-interface software.
Laboratory for Applied Logic. This laboratory supports research into computer dependability. Mathematical analysis of computer software and hardware is not an easy task; every formal analysis done to date has been a virtuoso performance, carried out by experts in logic, specification, and mechanical reasoning. The goal of LAL researchers is to make the formal modeling and analysis of computer systems tractable for working software and hardware design engineers.
Networked Computing Laboratory. High-speed computer networks are having an effect on almost every aspect of our lives. In this laboratory we explore asynchronous transfer mode (ATM) networks, which will be used as the building block for the National Information Infrastructure (NII). Research is currently being performed on virtual LANs (VLANs), parallel virtual machine (PVM) programming and performance analysis, Motion Picture Experts Group (MREG) encoding over ATM networks, and ATM network topologies for parallel processing.
Neural Networks and Machine Learning Laboratory. The goals of the NNML laboratory include the proposal, extension, and demonstration of improved learning models with respect to generalization accuracy, speed of learning, and fault tolerance. We seek models that combine the best aspects of neural network approaches with symbolic artificial intelligence machine learning paradigms.
Object-Oriented Systems Modeling Laboratory. The mission of this laboratory is to develop theoretical foundations, professional engineering methods, and tools for creating object-oriented software and database systems. Researchers in the laboratory study software development activities including analysis, design, specification, implementation, and enhancement in terms of the principles of software engineering and database systems. The objective is to make the development of software and database systems a true engineering discipline.
Operating Systems Laboratories. The computer science department has advanced course work and laboratory facilities to support research in real time process control and in concurrent and distributed processing. Studies are under way on the creation of programming languages and operating systems that will enhance the use of concurrent processes in a distributed environment.
Performance Evaluation Laboratory. The performance evaluation research group develops novel hardware and software techniques to measure the performance of existing computer systems. PEL researchers use the acquired performance data to improve computer architectures, memory hierarchies, I/O systems, operating systems, compilers, and applications.
Text-Understanding Laboratory. The tools this laboratory produces deal with megabytes of natural language text. Producing an Intelligent Speller, an Intelligent Thesaurus, and an Intelligent Indexer requires the use of semantical information in addition to syntactical information. The goal of our laboratory is to deal with the increasing volume of raw text data generated daily via the World Wide Web.
Research in Artificial Intelligence and Software Engineering (RAISE). Research in the RAISE group focuses on the application of knowledge-based techniques to address current limitations in developing, maintaining, extending, and understanding large software systems—limitations that manifest themselves in the current “software crisis.” Included are techniques for constructing, representing, reasoning about, understanding, and adapting both software artifacts and processes. Research areas comprise knowledge-based design, intelligent object repositories, knowledge-based transformation and specification systems, intelligent interfaces, analogical reasoning, component-based software development, software reuse, and domain modeling techniques.
For a more detailed description of the graduate program requirements, use WWW:
http://www.cs.byu.edu/grad-info/cs-grad-hb.html
COURSE DESCRIPTIONS
| Class Schedule | ||||
|
|
|
|
|
|
501R. Special Topics in Computer Science. (1-3)
Prerequisite: instructor's consent.
Special subjects as announced before each semester.
510. Formal Languages and Syntactic Analysis. (3)
Prerequisite: CS 431 or instructor's consent.
Definition of formal grammars and algorithms for syntactic analysis.
512. Analysis of Algorithms. (3)
Prerequisite: CS 312 and CS 252, or instructor's consent.
Survey of important algorithms. Connections to theoretical computer science and analysis of algorithms.
521. Pattern Recognition. (3)
Prerequisite: calculus and senior or graduate standing or instructor's consent. Recommended: linear algebra
Design and use of pattern classifiers for recognition and classification of one- and two-dimensional signals such as voice, images, and handwriting. Emphasis on images.
525. Software Creation. (3)
Prerequisite: CS 428.
Concepts of object-oriented software development and their incorporation into various object-oriented analysis and design techniques.
531. Compiler Theory and Design. (3)
Prerequisite: CS 431.
Theory and design of compilers and interpreters, including syntax- directed compilers and metacompilers.
532. Advanced Programming Languages and Models. (3)
Prerequisite: CS 431.
Definitions and implementation techniques for functional languages, logic languages, and object-oriented languages. Interactive languages and interactive programming environments.
535. (CS-Psych 577) Human- Computer Interaction. (3)
Prerequisite: graduate or senior standing.
Human/machine interfaces for hardware/software integration. Psychological principles of computer interfacing. Human engineering, ergonomics, and software design principles for user-friendly applications.
544. Advanced Operating Systems. (3)
Prerequisite: CS 345.
Advanced operating system concepts and design techniques, including concurrency, distributed systems, networking, synchronization, multitasking, etc.
545. Process Control Systems. (3)
Prerequisite: CS 245 or 345 or equivalent.
Concurrent and distributed real-time operating systems and programming environments for industrial automation.
550. Computer Vision 1. (3)
Prerequisite: calculus and senior or graduate standing or instructor's consent. Recommended: linear algebra.
Machine vision, image segmentation, mathematical morphology, image enhancement and filtering, edge detection, feature extraction, neighborhood operators, region growing, boundary detection, scene segmentation, and matching.
551. Object-Oriented Database Theory. (3)
Prerequisite: CS 452 or instructor's consent.
Application of model and proof theory to OODBs; theoretical foundations of analysis, specification, and design; conceptual model formalization.
552. Object-Oriented Database Systems. (3)
Prerequisite: CS 452 or instructor's consent.
Analysis, specification, design, and implementation of object-oriented
database systems; theory of object-
oriented database models and systems.
554. Distributed Databases. (3)
Prerequisite: CS 236 or equivalent.
Distributed DBMS design, architecture, query processing and optimization, data allocation, transaction management, concurrency control, recovery, integrity and security, deadlock handling.
555. Advanced Computer Graphics. (3)
Prerequisite: CS 455 or instructor's consent.
Advanced computer graphics systems programming and architecture, including ray tracing, radiosity, animator, and physically based modeling.
556. Interactive Software Systems. (3)
Prerequisite: CS 330, 455.
Techniques to implement human/
computer interfaces. Primitive interactive
techniques. Grammar, automata, procedure, object-based dialogue descriptions.
Tools for automatically generating and evaluating user interfaces. Screen
layout; data presentation tools.
560. Computer Networks. (3)
Prerequisite: CS 460, Stat 321.
Computer networking, software architecture, organization, protocols, routing, global networks, local networks, internetworking, standards, and applications.
561. Theoretical Foundations of Computer Science. (3)
Prerequisite: CS 252 or instructor's consent.
Formal languages, automata theory, sequential machines, enumerability, computability, and undecidability.
565. Data Security. (3)
Prerequisite: CS 404. Recommended: CS 453, 560.
Data security problems and solutions. Protection of stored or transported data. Data security principles. Hardware and software systems; mathematical, technical, and legal considerations.
572. Machine Learning. (3)
Prerequisite: Math 119 or equivalent; graduate or senior standing.
Algorithms approaches and philosophy of machine learning with emphasis on symbolic/AI approaches.
575. Expert Systems Design. (3)
Prerequisite: CS 470 or instructor's consent.
Knowledge-based systems, fundamentals of knowledge engineering, rule-based systems, tools for expert system development.
576. Intelligent Tutoring. (3)
Prerequisite: CS 575 or instructor's consent.
Taxonomy of knowledge-based computer-assisted instruction; design and evaluation of intelligent tutoring models.
578. Neural Networks and Connectionist Computing. (3)
Prerequisite: CS 380, Math 119, and senior or graduate standing.
Neurally inspired computer architectures and methods of computation and learning using massively parallel networks.
580. High Performance Computer Architecture. (3)
Prerequisite: CS 380 or equivalent.
Advanced topics in computer architecture, including pipelining, superpipelining, VLIW, superscalar, branch prediction, and speculative execution.
584. Parallel Processing. (3)
Prerequisite: CS 380 or equivalent.
Theoretical and practical study of parallel processing including a discussion of parallel architectures, parallel programming languages, and parallel algorithms.
586. Formal Methods in Computer System Design. (3)
Prerequisite: CS 236, 380, or equivalent.
Use of specification and verification in the design of computer systems. Introduction to mechanical theorem proving environments.
598R. Special Projects. (1-3)
Prerequisite: instructor's consent.
627. Theoretical Foundations of Software Engineering. (3)
Prerequisite: CS 525.
Introduction to theory aspects of computer science that pertain to software engineering (proof of correctness, conceptual models).
650. Computer Vision 2. (3)
Prerequisite: CS 550.
Advanced topics in computer vision: radiometric model; photometric stereo; shape from shading; monocular, binocular models; perspective projective geometry; image matching; depth from stereo; exterior, relative, interior, absolute orientation; optical flow.
678R. Topics in Neural Networks. (3)
Prerequisite: CS 578.
Advanced research topics in areas of non-von Neumann computing, including neural, connectionist, and massively parallel systems. Course tailored toward students' research goals.
699R. Master's Thesis. (Arr.)
Prerequisite: committee chair's consent.
751R. Advanced Topics in Database Systems. (3)
Prerequisite: graduate standing and instructor's consent.
799R. Doctoral Dissertation. (1-9)
Prerequisite: committee chair's consent.
FACULTY
BARRETT, WILLIAM A., Professor. PhD, University of Utah, 1978. Computer Vision; Image Processing; Pattern Recognition.
BURTON, ROBERT P., Professor. PhD, University of Utah, 1973. Hyperdimensional Computer Graphics; Visualization.
CAMPBELL, DOUGLAS M., Professor. PhD, University of North Carolina, 1971. Complexity Theory, Natural Language Understanding.
CHRISTENSEN, LARRY C., Professor. EdD, Brigham Young University, 1981. Expert Systems; Intelligent Computer-Assisted Instruction; Software Engineering.
CLEMENT, MARK J., Assistant Professor. PhD, Oregon State University, 1994. Parallel Processing; High-Performance Networks; Telecommunications.
CORNELL, AUREL, Professor. PhD, Polytechnic Institute of Timisoara (Romania), 1971. Distributed/ Concurrent Programming.
EGBERT, PARRIS K., Assistant Professor. PhD, University of Illinois, 1992. Computer Graphics; Visualization; Virtual Reality.
EMBLEY, DAVID W., Professor. PhD, University of Illinois, 1976. Database Systems; Semantic Modeling; Object-Oriented Software Development.
FLANAGAN, J. KELLY, Assistant Professor. PhD, Brigham Young University, 1993. Computer Architecture; Performance Evaluation; Digital System Design.
HAYS, BILL, Professor. PhD, Northwestern University, 1970. Database Systems; Compiler Development; Programming Languages.
HIGGINS, JOHN C., Professor. PhD, University of California, Davis, 1966. Theoretical Foundations.
IVIE, EVAN L., Professor. PhD, Massachusetts Institute of Technology, 1966. Operating Systems.
MARTINEZ, TONY, Associate Professor. PhD, University of California, Los Angeles, 1986. Neural Networks; Machine Learning.
MORSE, BRYAN S., Assistant Professor. PhD, University of North Carolina, 1994. Computational Vision; Image Processing; Medical Imaging.
NG, DENNIS, Assistant Professor. PhD, Kansas State University, 1991. Database Systems; Logic Programming; Distributed Databases.
NORMAN, THEODORE A., Professor. PhD, Washington State University, 1970. Systems Simulation; 3-D Animation; Operating Systems.
OLSEN, DAN R., Professor. PhD, University of Pennsylvania, 1981. Human-Computer Interfaces; Programming Environments; Computer Graphics.
STOKES, GORDON E., Professor. EdD, Brigham Young University, 1981. Database Management; Human Factors; Intelligent CBI Systems.
WHITEHURST, R. ALAN, Assistant Professor. PhD, University of Illinois, 1995. Reusability; Analogy; Knowledge-Based Software Engineering; Modeling; Simulation.
WINDLEY, PHILLIP J., Associate Professor. PhD, University of California, Davis, 1990. Formal Methods; Hardware Verification; Software Specification.
WOODFIELD, SCOTT N., Professor. PhD, Purdue University, 1980. Software Design; Reusability; Software Engineering.
|
Back |
Catalog Homepage |
BYU Homepage |