COMPUTER SCIENCE and ELECTRICAL ENGINEERING Contact: Dr. Yung Jui (Ray) Chen, Graduate Director Room 201, Engineering/Computer Science Bldg. UMBC Baltimore, Maryland 21228 USA tele. (410) 455-3500 -------------------------------------------------------- Department of Computer Science and Electrical Engineering College of Engineering Morris, Joel M., Interim Chair Chen, Yung Jui (Ray), Graduate Director Peng, Yun, Assistant Graduate Director Professors Carter, Gary M. Chen, Yung Jui (Ray) Finin, Timothy W. Lomonaco, Jr., Samuel J. Menyuk, Curtis R. Sidhu, Deepinder P. Yesha, Yaacov Yesha, Yelena Associate Professors Chang, Chein-I Morris, Joel M. Motteler, Howard E. Nicholas, Charles K. Sherman, Alan T. Stephens, A. Brooke Assistant Professors Adali, Tulay Chang, Richard Chen, Jyh-Chia Choa, Fow-Sen Ebert, David Mayfield, James Miller, Ethan Peng, Yun Turner, Russell Yan, Li Visiting Professors Veronis, Andrew DEGREES OFFERED: M.S. (thesis and non-thesis), Ph.D. PROGRAM DESCRIPTIONS The Department of Computer Science and Electrical Engineering (CSEE) offers separate degree programs in Computer Science (CMSC) and in Electrical Engineering (EE). Each of these degree programs shares a similar structure and set of requirements, and leads to the M.S. (with or without a thesis) or Ph.D. degree. Admission to each program is separate. In summer 1995, the former Department of Computer Science (which had been in the School of Arts and Sciences) merged with the Department of EE (which had been in the College of Engineering). Although the newly formed Department of CSEE and the existing EE degree program are in the College of Engineering, the CMSC degree program currently remains in the School of Arts and Sciences. This section describes the CMSC and EE graduate degree programs in terms of their research areas, core courses, degree requirements (course requirements, comprehensive examinations, preliminary examinations, and other requirements), and timelines for completing the degree requirements. The Department has a brochure that further describes the Department, its graduate programs, and the research interests of the faculty. A copy can be obtained from the graduate secretary. See also http://www.csee.umbc.edu/ Students entering in fall 96 will follow the new requirements of the merged CSEE Department; students who entered prior to fall 96 may choose between the new and old requirements. 1. Research areas Ongoing research in the Department provides a source of project, thesis, and dissertation topics for students. The following list illustrates some of the current research areas: adaptive equalization biomedical imaging and signal processing coding theory computer engineering cryptology and network security distributed databases electronic commerce graphics and animation image and data compression information storage and retrieval intelligent agents joint time-frequency/time-scale analysis networks and systems neural networks non-linear optics object-oriented programming optical communications and networks parallel and distributed computing photonic switches quantum cryptography and quantum computation quantum electronics scientific computation semiconductor optoelectronics signal and image processing solitons on optical fiber symbolic computation theory of computation. ultra short pulse lasers The Department encourages interdisciplinary research and invites students to take advantage of resources in related Departments, including mathematics and statistics, physics, visual arts, geography, education, information systems management, and other Departments within the College of Engineering or at the UMAB Medical School. In addition, opportunities exist for joint research projects with local research laboratories, companies, and government agencies, including for example, NASA Goddard Space Flight Center, National Institute of Standards and Technology, National Institutes of Health, Library of Congress, Naval Research Laboratories, and the National Security Agency. 2. Instructional areas and core courses Each of the degree programs is organized around the major fields of specialization. Associated with each of these fields are a number of core courses offered annually (many more courses are also offered). The following list identifies the current field organization, together with the core courses and associated faculty. Computer Science Algorithms, Theory, and Scientific Computation CMSC-641 Algorithms CMSC-651 Automata Theory and Formal Languages CMSC-655 Numerical Computations Associated faculty: Richard Chang, Lomonaco, Motteler, Sherman, Stephens, Yaacov Yesha. Computer Systems and Networks CMSC-611 Architecture CMSC-621 Operating Systems CMSC-681 Networks Associated faculty: Miller, Motteler, Sidhu, Veronis. Databases, Information, and Knowledge Management CMSC-661 Databases CMSC-665 Network Information Retrieval CMSC-671 Artificial Intelligence Associated faculty: Finin, Mayfield, Miller, Nicholas, Peng, Yelena Yesha. Graphics, Animation, and Visualization CMSC-635 Graphics CMSC-637 Virtual Reality Associated faculty: Ebert, Turner. Electrical Engineering Communications and Signal Processing EE-610 Digital Signal Processing EE-620 Probability and Random Processes EE-621 Detection and Estimation Theory EE-622 Information Theory Associated faculty: Adali, Chein-I Chang, Morris. Photonics and Microelectronics EE-630 Solid State Electronics EE-631 Semiconductor Devices EE-680 Electromagnetic Theory EE-683 Lasers Associated faculty: Carter, Jyh-Chia Chen, Choa, Menyuk, Yung Jui (Ray) Chen, Yan. 3. Degree requirements (beginning fall 96) The degree requirements are under revisions. The latest requirements are described in a document available from the Department. Program Description - Computer Science The Department offers a graduate program leading to the M.S. and Ph.D. degrees in computer science. This program provides advanced instruction, training, and research opportunities to prepare students for careers and marketable skills in business, industry, universities, and government agencies. The program reflects state-of-the-art knowledge in major theoretical and applied aspects of computation and its applications. Areas of research specialization are listed at the beginning of this section. Requirements for the Master of Science Degree in Computer Science To earn the M.S. degree, each student must: 1. Earn a total of at least 33 credits from the list of approved courses, including a core breadth requirement. 2. Complete a research project--either a M.S. thesis or the two-credit CMSC 693 Research and Writing Project Requirement. In CMSC 693, each student must carry out a research project on a topic approved by the advisor, write a technical report, and defend the contents of this work in an oral examination. 3. Pass written comprehensive examinations (non-thesis students only). 4. Complete a one-credit Communications Skills Requirement by participating in the seminar course CMSC 692. 5. Earn a grade of B or higher in every required core course and maintain a cumulative GPA of 3.0 or better. Transfer Credits No more than six credits may be transferred from another university. Time Limit for Completing the M.S. Degree Students must complete all M.S. degree requirements within five consecutive years. However, a full-time student taking 12 credits each semester can earn the degree within three semesters. (This does not include time spent taking 300- and 400-level prerequisite courses, which may be required by the Graduate Committee.) Requirements for the Doctor of Philosophy Degree in Computer Science The Ph.D. degree program provides qualified students with an opportunity to conduct original scholarly research in a selected area of computer science. This program is highly selective. Students will complete several graduate-level courses from the Ph.D. core for the comprehensive examinations, complete a program of advanced study, and propose, carry out, and defend a significant research project. To earn the Ph.D. degree, the student must complete each of the following steps: 1. Complete the Ph.D. core courses. 2. Pass the written comprehensive examinations. 3. Select a dissertation advisor and submit a program of advanced study. 4. Pass the preliminary examination, including a written dissertation proposal and an oral examination. By passing the preliminary examination, the student advances to candidacy. 5. Conduct research and write a dissertation; 6. Defend the dissertation in an oral examination. Core Course Requirements In preparation for the Ph.D. comprehensive examinations, each student must complete the necessary Ph.D. core courses, including breadth courses and courses in their area of specialization. Each student must earn a grade of B or better in each of these courses. Comprehensive Examination Each student must take the written comprehensive examination immediately upon completion of the course requirements--typically after two semesters. The examination covers the breadth and specialization core courses selected by the student. At the discretion of the graduate faculty, the student may retake the examination once. Students must pass this examination by the end of their fourth semester. Program of Advanced Study Within one semester after passing the comprehensive examination, each student must select a member of the graduate faculty who consents to serve as the dissertation advisor and chair of the program of study committee. The student and the advisor will select four additional committee members. One member must be from another Department in a related area. At least three members of the committee must be regular members of the University of Maryland graduate faculty. Students will submit a study outline of literature appropriate to the area of interest, including a suitable set of advanced courses. When approved, this outline defines the scope of the Ph.D. preliminary examination. Preliminary Examination The preliminary examination has three parts: the pre-prelim, the written dissertation proposal, and the preliminary oral examination. The pre-prelim is a written exam that demonstrates command of the literature in the chosen speciality. The student's advisor sets the reading list of this exam. In the dissertation proposal, the student must identify a suitable research problem, explain why the problem is significant and nontrivial, critically review relevant prior work, and propose a realistic plan for solving the problem. In the oral exam, the student will present the dissertation proposal to the program of study committee, which will examine the student's preparation to conduct the research. On passing the examination, the student is admitted to candidacy for the Ph.D. Students must be admitted to candidacy within five years of admission to the doctoral program. Residency Requirements A minimum of three years of full-time graduate study, or its equivalent, is required. At least one year of study or its equivalent must be completed at UMBC. Dissertation Research Students will conduct original research under the guidance of the dissertation advisor. This research must be completed and defended within four years of admission to candidacy. Students must be admitted to candidacy at least two full sequential semesters before the date on which the doctoral degree will be conferred. Program Description - Electrical Engineering The Department offers a graduate program leading to the M.S. and Ph.D. degrees. The diversity of course offerings and research interests within the Department, and our interactions with the medical and dental schools at UMAB, with the mathematics, and physics Departments at UMBC, and with the electrical engineering Department at UMCP, encompass a broad spectrum of interdisciplinary or strictly electrical engineering instruction and research topics. Areas of specialization within the Department are listed at the beginning of this section. These areas include: 1) communications (random processes, detection and estimation theory, information theory, coding, communication theory, communication networks, data compression, and applications of adaptive signal processing in communications); 2) signal processing (digital signal processing, adaptive signal processing, array processing, image processing, computer vision, speech processing, neural networks, pattern recognition, spectral analysis, and biomedical signal processing and imaging). 3) photonics (electromagnetic theory, quantum electronics, lasers, photonics, non-linear optics, optical communication technology, and ultrashort laser pulses); 4) microelectronics (solid-state electronics, semiconductor devices and processing technology, semiconductor optoelectronics, compound semiconductor electronics, and integrated circuits); and Requirements for the M.S. degree in Electrical Engineering Each student must earn a minimum of 30 credit hours, which must be completed within five years of admission. The student's GPA must be "B" (3.00) or better. Each student must complete either a thesis or a scholarly paper. In addition, the non-thesis option student is required to pass the written M.S. comprehensive exam in the major area, which tests the student's knowledge in core courses in the area. All students must complete two semesters of the 0-credit graduate seminar ENEE 608. The thesis option in the student's major requires a minimum of eight graduate-level courses (24 credit hours), and six credit hours of thesis (ENEE 799). The thesis must be defended with an oral exam, and accepted with the approval of the student's M.S. thesis oral examination committee. The non-thesis option in the student's major area (as indicated below) requires a minimum of nine graduate level courses (27 credit hours), and three credit hours of graduate project (ENEE 698) resulting in an approved scholarly paper. Requirements for the Ph.D. degree in Electrical Engineering Each student must earn a minimum of 14 required courses (42 credit hours), excluding graduate seminar participation, graduate research credits prior to Ph.D. candidacy, and doctoral dissertation research credits. The Ph.D. student must spend the equivalent of at least three years of full-time residency, with at least one year on the UMBC campus. The doctoral dissertation must be an original and substantive contribution to knowledge in the student's major field. It must demonstrate the student's ability to carry out a program of research and to report the results in accordance with standards observed in the recognized scientific journals related to that field. The Ph.D. student must: 1) pass the written comprehensive exam within two years of entrance to the program (three years for part-time students); 2) defend a doctoral dissertation proposal and be admitted to Ph.D. candidacy within five years of entrance to the program; and 3) complete all Ph.D. requirements within five years of admission to Ph.D. candidacy. PROGRAM ADMISSION Applicants must apply separately to the graduate program in computer science or to the graduate program in electrical engineering. Admission to the M.S. and Ph.D degree programs are separate. Computer Science: When seeking admission to the graduate program in computer science, applicants must satisfy all entrance requirements of the Graduate School at UMBC. These include the submission of transcripts, letters of recommendation, statement of purpose, the results of the Graduate Record Examination (GRE Aptitude), and for foreign students, scores for the TOEFL. Students transferring from another graduate program must in addition include a letter from the Graduate Director of their program. Application deadlines are specified by the Graduate School, but the application review process will begin by January 15 for admission in the fall semester, and by July 15, for admission in the following spring semester, and will continue until the deadlines. Favorable consideration will be given to applications received early in each review cycle. It is the policy of the Department to admit students solely on the basis of their academic and research performance. In addition to the requirements of the Graduate School, an applicant to the graduate program in computer science is expected to have a strong background in computer science and mathematics courses. This includes calculus I and II, linear algebra, and at least one more advanced course in mathematics. In addition, applicants are expected to have had the equivalents of the following computer science courses at UMBC: CMSC 203 Discrete Structures; CMSC 211 Assembly Language Programming; CMSC 311 Introduction to Computer Organization; CMSC 331 Principles of Programming Languages; CMSC 341 Data Structures; CMSC 411 Computer Architecture; CMSC 421 Principles of Operating Systems; CMSC 441 Algorithm Design and Analysis; and CMSC 451 Automata Theory and Formal Languages Students may apply for admission to either the M.S. or the Ph.D. program. However, admission to the Ph.D. program is highly selective and only the student with an exceptional background will be accepted. Students who plan to pursue the Ph.D. degree, but who do not already have an M.S. in computer science, are advised to apply for admission to the M.S. program. New students will be assigned an academic advisor, who can provide advice on choice of courses, degree requirements, and other important matters during the first year. By the end of the first year, students should find a faculty member who will agree to serve as the research advisor, and who will help to meet research and writing skills requirements under CMSC 693. Electrical Engineering: The admission requirements and procedures correspond to the requirements set forth by the Graduate School at UMBC. Minimum requirements for admission to the graduate program in electrical engineering are a B.S. degree from an ABET accredited undergraduate program in electrical engineering, with a GPA of "B+" or higher; individuals whose records indicate strong potential for successful pursuit of the M.S. or Ph.D. degree objectives, and who have similar undergraduate preparation with strong academic records in computer science, mathematics, physics, or other areas of engineering or science are encouraged to apply (B.S. degrees in engineering technology are not considered equivalent to the B.S. degree in engineering or B.A. degree in the sciences). Students whose degrees are not in electrical engineering will generally be required to take courses to make up deficiencies in their backgrounds. Graduate Record Exam (GRE) scores are required for admission. Applicants are competitively judged by the Department's admissions committee, and those who appear suitably qualified to successfully complete the requirements of the intended degree program are selected for admission subject to available resources. Applications are not processed until all documents are received. FACILITIES AND SPECIAL RESOURCES Computer Science: The department's computing facilities include Sun and Silicon Graphics workstations, SGI Crimson and SPARC servers, and high performance graphics workstations (SGI Indigo2, Onyx Reality Engine2). The University Computing Services has over 400 workstations for general student use and several high-end machines, including a Silicon Graphics Challenge XL 20-processor system. The university's Imaging Research Center also provides high-end graphics support, including production quality input/output devices and production software (Wavefront, Softimage and Alias). Electrical Engineering: Faculty and students in the Electrical Engineering Program at UMBC have access to UMBC's and UMCP's super minicomputer computing resources supporting VMS and Unix, and to several Cray super computers at NERSC and SDSC. The department also has substantial computing resources acquired with the new (1992) Engineering and Computer Science Building: 1) SGI Iris Indigo workstations served by SGI Crimson servers; 2) NeXTstation workstations, 3) SUN workstations, and 4) a network of Apple Macintosh and 486/Pentium-based personal computers. The research and instructional activities of the department are supported by a number of new modern laboratories. Laser-based laboratories support research in ultrafast non-linear optics and optical spectroscopy, coherent optical communications, diode laser physics, novel diode laser structures, and optical fiber lasers. Device fabrication laboratories support research in optical and electronic properties of compound semiconductors and organic polymers, and in exploring and developing new materials, submicron device structures, and processing technologies via CAIBE. Compound semiconductor growth research is being pursued using MOCVD techniques. A new remote sensing signal and image processing laboratory supports research in multispectral and hyperspectral imagery, pattern recognition, target tracking and detection, image coding and progressive image transmission, computer vision, and medical imaging. The communications and signal processing laboratories, and the information systems laboratory support research in adaptive equalization and coding for fading multipath channels, communication system simulation software development, adaptive aperture techniques for optical communications, digital speech processing, DSP and adaptive signal processing algorithms, joint time-frequency and time-scale representations and analysis techniques, cyclostationary signal processing, atmospheric pollutants and chemical agent detection via FTIR spectrometry, and biomedical signal processing. OUTPLACEMENT Graduating students find jobs in industry, business, government, and universities. FINANCIAL ASSISTANCE Financial aid is available on a competitive basis to a limited number of qualified graduate students in the form of graduate teaching assistantships (TAs), graduate research assistantships (RAs), Graduate School fellowships, workstudy positions, and hourly employment as graders. Preference for TAs is given to first-year Ph.D. applicants. Graduate RAs are often available to students actively engaged in M.S. thesis or Ph.D. dissertation research, and are awarded and renewed subject to availability of funds and satisfactory research progress. Students must apply for financial aid in writing to the director of the graduate program at the time of application to the graduate program. In addition, students are encouraged to apply directly to nationally awarded fellowship programs. COURSES Computer Science courses: The following conventions are used for numbering graduate courses in different areas of computer science: (x stands for a digit in the range 0-9) 61x, 71x, 81x: Computer Architecture and VLSI 62x, 72x, 82x: Operating Systems 63x, 73x, 83x: Programming Languages and Graphics 64x, 74x, 84x: Algorithms and Software Engineering 65x, 75x, 85x: Theory of Computation and Computational Methods 66x, 76x, 86x: Databases 67x, 77x, 87x: Artificial Intelligence 68x, 78x, 88x: Computer Networks and Distributed Systems 69x, 79x, 89x: Research and Independent Study CMSC 603 Advanced Discrete Structures Credits: 3 Introduction to the fundamental concepts and techniques of discrete mathematics that are essential for the study of computer science. The main goal of this course is to develop mathematical skills and sophistication for proving theorems, solving problems, and counting and approximating values. Topics include sets; elementary logic; numbers; functions and relations; summations; generating functions; elementary number theory; elementary probability, statistics, and combinatorics (e.g. Burnside's Lemma); introduction to algebraic systems, including groups; and applications of these topics in computer science. Prerequisites: MATH 152, MATH 221, and at least one math course beyond linear algebra. CMSC-608 Graduate Seminar (new course) credits: 0 This course exposes the graduate student in CMSC to current research in areas of interest to the department's faculty and students. The speakers are usually researchers outside the department and university. On occasion, speakers may be faculty members or advanced students. There are no credits for this course, which meets once a week, but all graduate students are required to attend for two semesters. CMSC 611 Advanced Computer Architecture Credits: 3 Memory-system design, pipeline structures, vector computers, scientific array processors, multiprocessor architecture. Within each topic, the emphasis is on fundamental limitations: memory bandwidth, interprocessor communication, processing bandwidth and synchronization. Prerequisite: CMSC 411 or permission of instructor. CMSC 621 Advanced Operating Systems Credits: 3 A detailed study of advanced topics in operating systems including: synchronization mechanisms, virtual memory, deadlocks, distributed resource sharing, computer security, and modeling of operating systems. Prerequisite: CMSC 421 or permission of instructor. CMSC 625 Modeling and Simulation of Computer Systems Credits: 3 Performance evaluation methods, Markovian queuing models, open networks of queues, closed product form queuing networks, simulation and measurement of computer systems, benchmarking, and workload characterization. Prerequisite: CMSC 411 or CMSC 421, or permission of instructor. CMSC 631 Principles of Programming Languages Credits: 3 A comparison of three types of modern programming languages: assertive, functional, and logic- based. Fundamental semantic methods, including operational, axiomatic, and denotational semantics and corresponding techniques for program verification, including Hoare s logic, Dijkstra s predicate transformers, and denotational methods. Prerequisite: CMSC 331 or permission of instructor. CMSC 635 Advanced Computer Graphics Credits: 3 A study of advanced topics in computer graphics emphasizing algorithms for display of 3D objects including: wireframe representation, polygon mesh models, shading algorithms, parametric representation of curves, hidden surface elimination, fractals, and ray tracing. Other topics include: advanced topics from the computer graphics literature, page description languages, CORE, GKS, PHIGS, CGI, the X window system, X window intrinsics, Motif and widget programming. Prerequisite: CMSC 435 or permission of instructor. CMSC 641 Design and Analysis of Algorithms Credits: 3 Fundamental algorithms, mathematical tools for analyzing algorithms, and strategies for designing algorithms. Topics include graph algorithms (including network flow), parallel algorithms, and algorithms for selected combinatorial tasks. Tools include asymptotic notations, recurrences, amortized analysis, and probabilistic analysis. Strategies include divide-and-conquer, greedy, dynamic programming, time-space tradeoff, and randomization. Introduction to NP-completeness. Prerequisite: CMSC 441 or permission of instructor. CMSC 645 Advanced Software Engineering Credits: 3 Modern approaches to software development: requirements analysis, system design techniques, formal description techniques, implementation, testing, debugging, metrics, human factors, quality assurance, cost estimation, maintenance, and tools. Prerequisite: CMSC 445 or permission of instructor. CMSC 651 Automata Theory and Formal Languages Credits: 3 Formal languages and their corresponding classes of automata: regular languages and finite automata, context-free languages and pushdown automata, context sensitive languages and linear bounded automata, recursively innumerable sets, and Turing machines. Also, pumping lemmas, closure properties, and decision problems for various classes of languages. Other sorts of automata may be studied, including multiheaded automata, probabilistic automata, and Petri nets. Prerequisite: CMSC 451 or permission of instructor. CMSC 652 Cryptography and Data Security Credits: 3 Conventional and public-key cryptography. Selected cryptosystems, including DES and RSA. Digital signatures, pseudorandom number generation, cryptographic protocols, and cryptanalytic techniques. Applications of cryptography to electronic commerce. Prerequisites: CMSC 441 and MATH 221 or permission of instructor. CMSC 653 Coding Theory and Applications Credits: 3 An introduction to the theory of error correcting codes with an emphasis on applications and implementations. Shannon's theorems, bounds on code weight distributions, linear codes, cyclic codes, Hamming and BCH codes, linear sequential circuits, encoding/decoding algorithms. Other topics may be drawn from Goppa, Reed-Solomon, Q-R codes, non-linear codes, and convolutional codes. Prerequisite: CMSC 203 or MATH 221, or permission of instructor. CMSC 655 Numerical Computations Credits: 3 Numerical algorithms and computations in a parallel processing environment. The architecture of supercomputers, vectorizing compilers and numerical algorithms for parallel computers. Prerequisite: CMSC 411 and Math 221, or permission of instructor. CMSC 656 Symbolic and Algebraic Processing Credits: 3 Applications and Foundations of Symbolic Algebra. Applications and examples are studied using at least one large symbolic algebra package. Symbolic algebra combines elements of AI, analysis of algorithms, and abstract algebra. Foundations include problems of representation, canonical and normal forms, polynomial simplification, Buchberger s algorithm, g.c.d. in one and several variables, p-adic methods, and formal methods for integration. Prerequisites: CMSC 203 and CMSC 341 or permission of instructor. CMSC 657 Networks and Combinatorial Optimizations Credits: 3 Graph theoretic concepts, unimodular matrices, transportation problems, minimum cost network flows, maximal flows in networks, shortest path algorithms, spanning three problems, multicommodity flows and decomposition algorithms, assignment and matching problems, computational complexity of algorithms, and other special topics such as matroid theory and nonlinear network minimization. Prerequisite: CMSC 641 or permission of instructor. CMSC 661 Principles of Data Base Systems Credits: 3 Advanced topics in the area of data base management systems: data models and their underlying mathematical foundations, data base manipulation and query languages, functional dependencies, physical data organization and indexing methods, concurrency control, crash recovery, data base security, and distributed data bases. Prerequisite: CMSC 461 or permission of instructor. CMSC-665 Network Information Retrieval (new course) Credits: 3 CMSC 671 Principles of Artificial Intelligence Credits: 3 A study of topics central to artificial intelligence, including logic for problem-solving, intelligent search techniques, knowledge representation, inference mechanisms, expert systems, and Prolog programming. Prerequisite: CMSC 471 or permission of instructor. CMSC 681 Advanced Computer Networks Credits: 3 Topics central to the design and development of advanced computer communication networks, including distributed and fail-safe routing in large and dynamic networks, gateways and interconnection of heterogeneous networks, flow control and congestion avoidance techniques, network architectures, computer and communication security, communication protocol standards, formal specification and verification of protocols, implementation and conformance testing of protocol standards, network partitioning and intelligent reconfiguration of networks. Prerequisite: CMSC 481 or CMSC 621, or permission of instructor. CMSC 691 Special Topics in Computer Science Credits: 1-3 CMSC 692 Communication Skills for Computer Scientists Credits: 1 The student will fulfill this requirement by participating in a seminar course. Students will gain experience in public speaking, learn basic teaching techniques, and present papers on a topic chosen by the instructor. CMSC 693 Research and Writing Project for Computer Scientists Credits: 1-2 The student will complete a research project on a topic approved by the student's advisor, write a technical report, and defend this work in an oral presentation. CMSC 699 Independent Study in Computer Science Credits: 1-3 CMSC 711 VLSI Systems Credits: 3 A study of structured system design methodology in the VLSI environment. The topics include VLSI implementation of logic, system controllers, system timing, abstractions of VLSI circuits, algorithms for VLSI processor arrays, highly concurrent VLSI systems, and VLSI design tools. Prerequisite: CMSC 611 or permission of instructor. CMSC 721 Theory of Processes Credits: 3 Formal approaches to the theory of communicating systems of processes, and logical systems for reasoning about them. Specific systems may include Milner's calculus of communicating systems (CCS), Hoare's communicating sequential processes (CSP), and Kahn's applications of fixpoint theory to communicating processes. Prerequisite: CMSC 621 or CMSC 631 or CMSC 681, or permission of instructor. CMSC 731 Semantics of Programming Languages Credits: 3 The fundamentals of axiomatic and denotational semantics, together with their corresponding techniques for program specification and verification. Axiomatic methods include Hoare s logic and Dijkstra s predicate transformers. Denotational methods include fixpoint theory and an introduction to the lambda calculus. Denotational methods are used to prove the soundness of selected axiomatic proof rules. Prerequisite: CMSC 631 or permission of instructor. CMSC 741 Theory of NP-Completeness Credits: 3 An in-depth study of the classes P and NP, along with the concepts of reducibility and completeness. NP complete problems are surveyed, and reduction techniques are examined in greater detail. An important goal is to develop skill at proving problems NP complete. Prerequisite: CMSC 641 or permission of instructor. CMSC 742 Parallel Algorithms and Complexity Credits: 3 Models of parallel computation and methods for the representation of parallel algorithms are presented. Measures of parallel complexity, and techniques for analyzing algorithms with respect to these new measures, and parallel complexity classes, such as NC, are studied. Prerequisite: CMSC 641 or permission of instructor. CMSC 751 Theory of Computation Credits: 3 Formal models of computation, such as Turing machines, RAM models, and loop languages are all shown to compute the class of partial recursive functions, leading to the Church-Turing thesis. Basic recursive function theory, including universal functions, undecidable problems, and properties of recursive and r.e. sets. Basic concepts of first-order logic and their relationship to recursion theory. Topics in advanced recursion theory may include abstract complexity theory, oracles, the arithmetic hierarchy, and priority methods. Prerequisite: CMSC 651 or permission of instructor. CMSC 761 Theory of Relational Data Bases Credits: 3 An in-depth study of relational data base theory. Topics include first-order logic, relational calculus and algebra, query languages, query optimization, functional and multivalued dependencies, normal forms, and concurrency control. Prerequisite: CMSC 661 or permission of instructor. CMSC 771 Heuristics and Knowledge Representation Credits: 3 An in-depth study of two topics central to artificial intelligence: heuristics and knowledge representation. Topics in heuristics will include the use of heuristics in problem solving, heuristic search techniques, the admissibility of heuristic search algorithms, performance analysis of heuristic methods, and heuristics for game-playing. Topics in knowledge representation will include predicate calculus, frame representations, semantic nets, and inheritance. Prerequisite: CMSC 671 or permission of instructor. CMSC 781 Distributed Computing Credits: 3 Topics central to the design of distributed computing systems including distributed synchronization and resource sharing, concurrency control in distributed data bases, distributed simulations, languages for distributed computing, proof techniques for distributed systems, and distributed operating systems. Prerequisites: CMSC 621 and CMSC 681, or permission of instructor. CMSC 791 Graduate Seminar Credits: 3 CMSC-799 Master's Thesis Research (new course) Credits: 1-6 This course is for students in the CMSC Master's Program engaged in master's thesis research; may be taken for repeated credits, but only a maximum of 6 credit hours applied toward M.S. thesis-option requirements. Prerequisite: Open only to CMSC thesis-option students. CMSC 811 Advanced Topics in Computer Architectures Credits: 3 A study of some of the following topics: supercomputing, interconnection networks, systolic array architectures. CMSC 821 Advanced Topics in Operating Systems Credits: 3 A study of some of the following topics: operating systems security, formal specifications of operating systems, fault-tolerant systems, real-time operating systems. CMSC 831 Advanced Topics in Programming Languages Credits: 3 A study of some of the following topics: computer graphics, programming environments, advanced compiler techniques, program verification techniques, program flow analysis, human factors, software metrics, theory of program testing. CMSC 841 Advanced Topics in Algorithms Credits: 3 A study of some of the following topics: probabilistic algorithms, computational geometry. CMSC 851 Advanced Topics in Theory of Computation Credits: 3 A study of some of the following topics: logic and computation, logic programming, complete problems for complexity classes (NL, P, PSPACE, EXPTIME, EXPSPACE), variants of Turing machines, recursive function theory, combinatory logic and lambda calculus. CMSC 855 Advanced Topics in Computational Methods Credits: 3 A study of some of the following topics: linear programming and non-linear programming, integer and dynamic programming, theory of stochastic processing, graph theory and combinatorics, simulation languages. CMSC 861 Advanced Topics in Data Bases Credits: 3 A study of some of the following topics: very large data bases, knowledge data bases, deductive data bases, data base machines, data base security. CMSC 871 Advanced Topics in Artificial Intelligence Credits: 3 A study of some of the following topics: AI languages and tools, machine learning, natural language processing, computational linguistics, pattern recognition, computer vision, neural networks, knowledge-based systems. CMSC 881 Advanced Topics in Computer Networks Credits: 3 A study of some of the following topics: protocols for high-speed networks, integrated services digital network (ISDN), network security, protocol standards, formal description techniques, protocol verification techniques, distributed termination, network performance modeling. CMSC 891 Advanced Special Topics in Computer Science Credits: 3 CMSC 899 Doctoral Dissertation Research Credits: 1-6 Electrical Engineering Courses ENEE 608 Graduate Seminar Credits: 0 This course exposes the graduate student in EE to the current research in areas of interest to the departments faculty and students. The speakers are usually researchers outside the department and university. On occasion, speakers may be faculty members or advanced students. There are no credits for this course, which meets once a week, but all graduate students are required to attend for two semesters. ENEE 610 Digital Signal Processing Credits: 3 Fundamentals of digital processing of signals: discrete signals and systems, the Z-transform, Fourier analysis of discrete-time signals and systems, the discrete-time Fourier transform and discrete Fourier transform, direct and computer-aided design of recursive and nonrecursive digital filters, finite length register effects in digital filter implementations, DSP-chip development systems, and introduction to recent issues in digital signal processing. Prerequisite: Basic signal and systems theory, or consent of instructor. ENEE 611 Adaptive Signal Processing Credits: 3 Fundamentals of adaptive filters and associated algorithms: Wiener filters, linear prediction (forward and backward), steepest descent methods, least squares methods, stochastic gradient-based algorithms, Kalman filters and standard recursive structures, recursive least squares (RLS) estimation, recursive least squares lattice filters, QR-decomposition techniques, fast transversal filters and fast recursive algorithms, algorithm performance, and discussion of selective applications. Prerequisites: ENEE 610 and 620, or consent of instructor. ENEE 612 Digital Image Processing Credits: 3 Principles of two-dimensional processing of image data: fundamentals of 2D signal processing, image transforms, image enhancement, image filtering and restoration, image analysis and understanding, image coding, and applications image processing. Prerequisites: ENEE 610 and 620, or consent of instructor. ENEE 614 Biomedical Signal Processing Credits: 3 Principles and techniques of analysis and processing of signals originating from living biological substances and systems: review of signal theory and processing techniques; bioelectric signals associated with nerve cells, muscle cells, and volume conductors; characteristics of dynamic biomedical signals (bioelectric, impedance, acoustic, mechanical, biomagnetic, biochemical, and multidimensional); and discussion and demonstration of some current applications and instrumentation. Prerequisites: ENEE 610 and 611 or 612, or consent of instructor. ENEE 620 Probability and Random Processes Credits: 3 Fundamentals of probability theory and random processes for electrical engineering applications and research: set and measure theory and probability spaces; discrete and continuous random variables and random vectors; probability density and distribution functions, and probability measures; expectation, moments, and characteristic functions; conditional expectation and conditional random variables, limit theorems and convergence concepts; random processes (stationary/non-stationary, ergodic, point-processes, Gaussian, Markov, and second-order); applications to communications and signal processing. Prerequisite: Undergraduate probability or consent of instructor. ENEE 621 Detection and Estimation Theory I Credits: 3 Fundamentals of detection and estimation theory for statistical signal processing applications: theory of hypothesis testing (binary, multiple, and composite hypotheses, and Bayesian, Neyman-Pearson, and minimax approaches); theory of signal detection (discrete and continuous time signals; deterministic and random signals; white Gaussian noise, general independent noise, and special classes of dependent noise, e.g., colored Gaussian noise; signal design and representations); theory of signal parameter estimation (Bayesian techniques for standard performance criteria, e.g., MMSE and MAP; nonrandom parameter techniques, e.g., ML; and estimator properties and bounds, e.g., unbiased/biased, minimum variance, sufficient statistics, and Cramer-Rao bound); and theory of signal waveform estimation (linear/non-linear estimation, discrete/continuous signals, and Wiener and Kalman filtering). Prerequisite: ENEE 620 or consent of instructor. ENEE 622 Information Theory Credits: 3 The mathematical theory of communication: noiseless source coding concepts (discrete memoryless sources, information measures, entropy, relative entropy, Shannon's noiseless source coding theorem, and prefix, Huffman, and Shannon codes); Channel coding concepts (discrete memoryless channels, channel capacity, Shannon's channel coding theorem, and ArimotoBlahhut's channel capacity computational algorithm); Rate-distortion theory (source distortion measures, rate-distortion functions, Shannon's source coding theorem subject to a fidelity criterion, and Blahut's rate-distortion computational algorithm); Gaussian sources and channels; and advanced topics. Prerequisite: ENEE 620 or consent of instructor. ENEE 623 Communication Theory I Credits: 3 Fundamentals of analog and digital communications: amplitude-modulation, single-sideband modulation, frequency and phase modulation; sampling and quantitation; representations of signals and systems; bandlimited signals and systems. Digital modulation/demodulation techniques, error performance, coherent and noncoherent modulation and receiver structures, timing and synchronization issues, and simulation tools. Prerequisites; ENEE 620 and 621, or consent of instructor. ENEE 624 Error Correcting Codes Credits: 3 Fundamentals of coding theory: linear block and trellis codes, decoder structures, random and burst error detection and correction techniques, encoding/decoding performance and bounds, concatenated codes, and interleaving structures. Prerequisites: ENEE 620 and 622. Concurrent: ENEE 623, or consent of instructor. ENEE 625 Data Compression Credits: 3 Principles and techniques of data compression: review of source coding theory; lossless data compression techniques such as Huffman, arithmetic, and L2W coding; and lossy data compression techniques such as transform coding, scalar quantitation, vector quantitation, predictive coding, and subband coding. Prerequisites: ENEE 620 and 622, or consent of instructor. ENEE 630 Solid-state Electronics Credits: 3 Fundamentals of solid-state physics for the microelectronics field: review of quantum mechanics, rigid space lattices, reciprocal lattices, dynamics of lattices, statistical mechanics, classical concepts of electron transport, quantum theory of electrons in crystals, semiconductors, and excess carriers in semiconductors. Prerequisite: Consent of instructor. ENEE 631 Semiconductor Devices Credits: 3 Principles of semiconductor device operation: review of semiconductor physics, p-n junction diodes, bipolar transistors, metal semiconductor contacts, JFETs and MESFETs, and MIL and MOSFET structures. Prerequisite: ENEE 630, or consent of instructor. ENEE 632 Integrated Circuits Credits: 3 Fundamentals of bipolar and MOS analog and digital integrated circuit techniques: basic IC structure and fabrication, passive components, bipolar transistors and di-odes, characteristics matching, temperature compensation, output stages, OpAmps, voltage regulators, multipliers, PLLs, large signal analysis of bipolar devices, bipolar and MOS/CMOS logic circuits, MOS circuit techniques, memories, MOS analog circuits, A/D converters, and thin film and microwave integrated circuits. Prerequisites: ENEE 630 and 631, or consent of instructor. ENEE 680 Electromagnetic Theory I Credits: 3 Fundamentals of electromagnetic theory: theoretical analysis of Maxwells equations, boundary-value problems of electrostatics and magnetostatics, and engineering applications. Prerequisite: Consent of instructor. ENEE 681 Electromagnetic Theory II Credits: 3 Continuation of ENEE 680: the homogeneous wave equation, plane wave propagation, interactive potential, simple radiating systems, relativistic covariance of Maxwell's equations, and engineering applications. Prerequisite: ENEE 680, or consent of instructor. ENEE 682 Quantum and Wave Phenomena Credits: 3 Introduction of quantum and wave phenomena from the electrical engineering perspective: Schrodinger's equation; operator algebra, one-dimensional potentials, harmonic oscillators, raising and lowering operators, one-dimensional semiconductor model, hydrogen atom, spin and quantum statistics, and time-independent and time-dependent perturbation theory. Prerequisite: Consent of instructor. ENEE 683 Lasers Credits: 3 Introduction to basic theory of lasers: interaction of radiation and matter, stimulated and spontaneous emissions, rate equations, laser amplification and oscillation, Gaussian beam optics, optical resonators, Q-switching, mode locking, light modulation, and some specific laser systems. Prerequisites: ENEE 680, 681, and 682, or consent of instructor. ENEE 684 Introduction to Photonics Credits: 3 Fundamentals of photonics and photonic devices: review of lasers, the basics of optical beams, and acoustooptic and electrooptic effects, semiconductor photonic devices, fiber optics; nonlinear optical effects, harmonic generation, optical parametric amplification and oscillation; Kerr effects, stimulated Raman scattering, and phase conjugation. Prerequisites: ENEE 680, 681, 682, and 683, or consent of instructor. ENEE 698 Project in Electrical Engineering Credits: 1-3 Individual projects on topics in electrical engineering. May be taken for repeated credit up to a maximum of three credits. Required of non-thesis M.S. students. Prerequisite: Completion of core courses, or consent of instructor. ENEE 699 Independent Study Credits: 1-3 Independent study of topics in electrical engineering. Prerequisite: Consent of instructor. ENEE 710 Digital Speech Processing Credits: 3 Fundamentals and techniques for the digital processing of speech: digital signal processing concepts review, speech production models, characteristics of the speech signal, time-domain speech analysis, linear predictive coding (LPC), homomorphic speech processing, speech enhancement, speech recognition, speech coding, and speech synthesis. Prerequisites: ENEE 610 and 611, or consent of instructor. ENEE 711 Neural Networks in Signal Processing Credits: 3 Fundamentals and characteristics of artificial neural network paradigms and their capacities for association, learning, generalization, self-organization, and problem-solving: introduction and survey of various neural network models and paradigms, including back-propagation, Hopfield networks, and competitive learning techniques; case studies of recent neural network applications to pattern recognition, control systems, tracking systems, data compression, and decision support; and comparisons with linear adaptive signal processing theory and techniques. Prerequisites: ENEE 610, 611, and 612, or consent of instructor. ENEE 712 Pattern Recognition Credits: 3 Principles of statistical pattern recognition: hypothesis testing and decision theory review, maximum-likelihood recognition strategies, parameter estimation and density approximation, linear discriminant functions, training set selection, feature extraction and non-linear approaches, pattern recognition via linear system techniques, spatial filtering techniques, and expert system and artificial intelligence concepts. Prerequisites: ENEE 610, 612, 620, and 621, or consent of instructor. ENEE 714 Biomedical Imaging Credits: 3 Application of digital image processing techniques to biomedical imaging: digital image processing review (basic concepts of reconstruction algorithms, transform methods, backprojection, series expansion methods, 3D reconstruction and display) with emphasis on biomedical imaging problems; introduction to computerized tomography (CT) and its physical and mathematical problems; and applications in biomedical research and clinical medicine. Prerequisites: ENEE 612 and 614, or consent of instructor. ENEE 718 Topics in Signal Processing Credits: 3 ENEE 718 comprises advanced topic courses in signal processing that reflect the research interests of the faculty and their Ph.D. students. A specific offering under this title, designated by a letter appended to this course number, is generally not offered every year. Prerequisites (Depends on offering). Open to students who have passed the qualifying exam, or consent of instructor. ENEE 721 Detection and Estimation Theory II Credits: 3 Advanced concepts of signal detection and estimation theory with applications: sequential detection; nonparametric and robust detection concepts; small signal and small sample-size concepts and performance; estimation techniques for smoothing, filtering, and prediction; recursive, interactive, and extended Kalman-filter and other state estimation techniques and their performance; robust estimation concepts; general non-linear filtering and approximately optimal simplified filters; and discussion of current applications in communications and statistical signal processing. Prerequisites: ENEE 620 and 621, or consent of instructor. ENEE 723 Communication Theory II Credits: 3 Digital signaling over bandwidth-constrained channels and channels with distortion: digital communications over fading multipath channels, intersymbol interference and its effects, adaptive equalization, combined coding and modulation techniques (e.g., trellis-coded modulation), and spread-spectrum techniques. Discussion of selective applications. Prerequisites: ENEE 620, 621, and 623, or consent of instructor. ENEE 728 Topics in Communications Credits: 3 ENEE 728 comprises advanced topic courses in communications that reflect the research interests of the faculty and their Ph.D. students. A specific offering under this title, designated by a letter appended to this course number, is generally not offered every year. Prerequisite: (Depends on offering). Open to students who have passed the Ph.D. qualifying exam, or have consent of instructor. ENEE 737 Semiconductor Device Processing Techniques Credits: 3 Introduction to basic semiconductor device processing techniques: etching, photolithography, metallization, and device characterization. Laboratory exercises will complement the lectures and demonstrate the principles. Prerequisites: ENEE 630 and 631, or consent of instructor. ENEE 738 Characteristics of Semiconductor Optoelectronics Credits: 3 Introduction to current semiconductor optoelectronic devices and survey of new research results: review of semiconductor physics and device characteristics; optical receiver concepts such as photoconductors, metal-semiconductor concepts, MSM, p-i-n, receiver design, and APD; waveguide concepts such as waveguide devices, waveguide modes, waveguide couplers, E-O effects and modulation, periodic waveguides, polarization devices, waveguide filters, and BPM; and LED amplifier and laser concepts such as edge/surface emitting, optical gain, traveling wave amplifiers, FP, DFB, DBR, QW lasers, active filters, small signal modulation, mode-locking, linewidth, and noise. Prerequisites: ENEE 630, 631, 681, 682, and 683, or consent of instructor. ENEE 788 Topics in Photonics Credits: 3 ENEE 788 comprises advanced topic courses in photonics that reflect the research interests of the faculty and their Ph.D. students. A specific offering under this title, designated by a letter appended to this course number, is generally not offered every year. Prerequisite: (Depends on offering.) Open to students who have passed the Ph.D. qualifying exam, or have consent of instructor. ENEE 799 Master's Thesis Research Credits: 1-6 This course is for MSEE students engaged in master's thesis research; may be taken for repeated credits, but only a maximum of 6 credit hours applied toward M.S. thesis-option requirements. Prerequisite: Open only to MSEE thesis-option students. ENEE 800 Graduate Research Credits: 1-6 This course is for Ph.D. students engaged in graduate research, but not yet admitted to Ph.D. candidacy. Prerequisite: Open only to EE students who have passed the Ph.D. qualifying exam. ENEE 899 Doctoral Dissertation Research Credits: 1-6 This is the dissertation research course for Ph.D. students who have been admitted to Ph.D. candidacy; may be taken for repeated credits (2 semesters required), but only a maximum of 12 credit hours applied towards Ph.D. requirements. Prerequisite: Open only to EE students admitted to Ph.D. candidacy.