spacer
spacer spacer spacer spacer spacer spacer spacer spacer spacer
spacer spacerPublic home pagespacer spacer spacerLocal home pagespacer spacer spacerHow to contact usspacer spacer spacerSearchspacer spacer
spacer spacer spacer spacer spacer spacer spacer spacer spacer
spacer
spacer
Graduate Courses in Computer Science


These are the graduate courses in Computer Science, including special topics and research courses whose content varies with student and faculty interest. (Undergraduate course listings are also available.)

Note: The syllabus links below may not link to the most up to date syllabi. That is best obtained by following the links from the CMSC class pages.

The most accurate current scheduling information is available at UMCP Schedule of Classes. Also available are past and tentative future schedules. Due to heavy demand for Computer Science courses, we strongly advise that after the first semester students preregister for courses.


CMSC 411 COMPUTER SYSTEMS ARCHITECTURE (3)
  • Prerequisites: Grades of C or better in CMSC 311 and CMSC 330, or a grade of C or better in CMSC 400. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Input/output processors and techniques. Intra-system communication, buses, caches. Addressing and memory hierarchies. Microprogramming, parallelism, and pipelining.
CMSC 412 OPERATING SYSTEMS (3)
  • Prerequisites: Grades of C or better in (CMSC 311 or ENEE 350) and CMSC 330, or a grade of C or better in CMSC 400. Notes: CMSC 411 recommended. Three hours of lecture and one hour of laboratory each week. Syllabus: HTML
  • Description: Three hours of lecture and two hours of laboratory each week. An introduction to operating systems, including multiprogramming, communication and synchronization, memory management, IO subsystems, and resource scheduling polices. The laboratory component consists of constructing a small kernel, including functions for device IO, multi-tasking, memory management, dynamic linking and loading, socket-driven, window management.
CMSC 415 CONCURRENT AND DISTRIBUTED SYSTEMS (3)
  • Prerequisites: A grade of C or better in CMSC 412 Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Advanced topics and projects in contemporary computer systems, including distributed operating systems, IO subsystems, distributed shared memory, IO subsystems, mixed media systems, load-balancing, cache coherency, object-based operating systems and threads models.
CMSC 417 COMPUTER NETWORKS (3)>
  • Prerequisites: Grades of C or better in CMSC 311 and CMSC 330. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Computer networks and architectures. The OSI model including discussion and examples of various network layers. A general introduction to existing network protocols. Communication protocol specification, analysis, and testing.
CMSC 420 DATA STRUCTURES (3)
  • Prerequisites: A grade of C or better in CMSC 330 or CMSC 400. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Description, properties, and storage allocation of data structures including lists and trees. Algorithms for manipulating structures. Applications from areas such as data processing, information retrieval, symbol manipulation, and operating systems.
CMSC 421 INTRODUCTION TO ARTIFICIAL INTELLIGENCE (3)
  • Prerequisites: Grades of C or better in either (CMSC 330 and CMSC 251) or CMSC 420. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Areas and issues in artificial intelligence, including search, inference, knowledge representation, learning, vision, natural languages, expert systems, robotics. Implementation and application of programming languages (e.g., Lisp, Prolog, Smalltalk), programming techniques (e.g., pattern matching, discrimination networks), and control structures (e.g., agendas, data dependencies).
CMSC 422 PROGRAMMING ROBOTS (3)
  • Prerequisites: A grade of C or better in CMSC 214 and permission of department. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: An examination of programming issues involved in creating autonomous robots, which can interact with their environments in "intelligent" ways. Topics include traditional robotics, behavior-based robotics, sensor processing, sensor-based control, programming robotic behaviors. Team programming project. Note: this course cannot be taken for credit in the computer science graduate program.
CMSC 424 DATABASE DESIGN (3)
  • Prerequisites: A grade of C or better in CMSC 420. Notes: CMSC 450 recommended. Three hours of lecture each week. Syllabus: HTML
  • Description: Motivation for the database approach as a mechanism for modeling the real world. Review of the three popular data models: relational, network and hierarchical. Comparison of permissible structures, integrity constraints, storage strategies and query facilities. Theory of database design logic.
CMSC 426 IMAGE PROCESSING (3)
  • Prerequisites: A grade of C or better in CMSC 420. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: An introduction to basic techniques of analysis and manipulation of pictorial data by computer. Image input/output devices, image processing software, enhancement, segmentation, property measurement, Fourier analysis. Computer encoding, processing and analysis of curves.
CMSC 427 COMPUTER GRAPHICS (3)
  • Prerequisites: Math 240 and CMSC 420. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: An introduction to the principles of computer graphics. This includes an introduction to graphics displays and systems, introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hidden-surface removal, color models, methods for modeling illumination, shading, and reflection.
CMSC 430 THEORY OF LANGUAGE TRANSLATION (3)
  • Prerequisites: A grade of C or better in CMSC 330 or CMSC 400. Notes: Programming Languages. Three hours of lecture each week. Syllabus: HTML
  • Description: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context free parsing techniques such as recursive descent, precedence, LL(k), and LR(k). Code generation, improvement, syntax directed translation schema.
CMSC 434 HUMAN FACTORS IN COMPUTER AND INFORMATION SYSTEMS (3)
  • Prerequisites: A grade of C or better in CMSC 330; and PSYC 100 and STAT 400. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Human factors issues in the development of software, the use of database systems, and the design of interactive systems. Science base (theories, models, usability studies, and controlled experimentation), and software engineering with user interface development environments. Issues include: programming and command languages; menus, forms, and direct manipulation; graphical user interfaces, computer-supported cooperative work, information search and visualization; input/output devices; and display design.
CMSC 435 SOFTWARE ENGINEERING (3)
  • Prerequisites: A grade of C or better in CMSC 330. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: State of the art technique in software design and development. Laboratory experience in applying the techniques covered. Structured design, structured programming, top-down design and development, segmentation and modularization techniques, iterative enhancement, design and code inspection techniques, correctness, and chief-programmer teams. The development of a large software project.
CMSC 450 LOGIC FOR COMPUTER SCIENCE (3)
  • Prerequisites: CMSC 251 and MATH 141. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Elementary development of propositional and first-order logic accessible to the advanced undergraduate computer science student, including the resolution method in propositional logic and Herbrand's Unsatisfiability Theorem in first-order logic. Included are the concepts of truth, interpretation, validity, provability, soundness, completeness, incompleteness, decidability and semi-decidability. This is the same course as MATH 450. Credit will be granted for only one of the following: CMSC450/MATH450 or MATH445.
CMSC 451 DESIGN AND ANALYSIS OF COMPUTER ALGORITHMS (3)
  • Prerequisites: Grade of C or better in CMSC 351 and permission of department, or CMSC graduate student
  • Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their complexity. General topics include sorting, selection, graph algorithms, and basic algorithm design paradigms (such as divide-and-conquer, dynamic programming and greedy algorithms), lower bounds and NP-completeness.
CMSC 452 ELEMENTARY THEORY OF COMPUTATION (3)
  • Prerequisites: Grades of C or better in CMSC 214 and CMSC 251. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Introduction to alternative theoretical models of computation, types of automata, and their relations to formal grammars and languages.
CMSC 456 CRYPTOLOGY (3)
  • Prerequisites: Two 400-level mathematics courses or two 400-level computer science courses or permission of the instructor. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Cryptology has become very important in protecting data in communications between computers. The subject lies on the border between mathematics and computer science. Mathematical topics include number theory and probability, and computer science topics include complexity theory.
CMSC 460 COMPUTATIONAL METHODS (3)
  • Prerequisites: Grades of C or better in MATH 240 and MATH 241; and CMSC 104 or CMSC 214. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Basic computational methods for interpolation, least squares, approximation, numerical quadrature, numerical solution of polynomial and transcendental equations, systems of linear equations and initial value problems for ordinary differential equations. Emphasis is on the methods and their computational properties rather than on their analytic aspects. Listed also as MAPL 460. Credit will not be granted for both CMSC/MAPL 460 and CMSC/MAPL 466.
CMSC 466 INTRODUCTION TO NUMERICAL ANALYSIS I (3)
  • Prerequisites: Grades of C or better in MATH 240 and MATH 241; and CMSC 104 or CMSC 214. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Floating point computations, direct methods for linear systems, interpolation, solution of nonlinear equations. Listed also as MAPL 466. Credit will not be granted for both CMSC/MAPL 460 and CMSC/MAPL 466.
CMSC 467 INTRODUCTION TO NUMERICAL ANALYSIS II (3)
  • Prerequisites: A grade of C or better in CMSC/MAPL 466. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Advanced interpolation, linear least squares, eigenvalue problems, ordinary differential equations, fast Fourier transforms. Listed also as MAPL 467.
CMSC 475 COMBINATORICS AND GRAPH THEORY (3)
  • Prerequisites: MATH 240 and MATH 241. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: General enumeration methods, difference equations, generating functions. Elements of graph theory, matrix representations of graphs, applications of graph theory to transport networks, matching theory and graphical algorithms. Listed also as MATH 475.
CMSC 477 OPTIMIZATION (3)
  • Prerequisites: A grade of C or better in either CMSC/MAPL 460, CMSC/MAPL 466, or CMSC/MAPL 467. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: Linear programming including the simplex algorithm and dual linear programs, convex sets and elements of convex programming, combinatorial optimization, integer programming. Listed also as MAPL 477.
CMSC 498 SPECIAL PROBLEMS IN COMPUTER SCIENCE (1-3)
  • Prerequisites: Permission of department. Notes: Syllabus: Not available.
  • Description: An individualized course designed to allow a student or students to pursue a specialized topic or project under the supervision of the senior staff. Credit according to work done.
CMSC 615 ADVANCED COMPUTER ARCHITECTURE (3)
  • Prerequisites: CMSC 411 and CMSC 412; or permission of the instructor. Notes: Syllabus: HTML
  • Description: An overview of advanced processor architectures, I/O subsystems, multiprocessor architectures and high performance networking. Pipelining, instruction scheduling, branch processing, out of order execution, dealing with dependences. Principals of memory hierarchy design including design of multi-level caches and virtual memory systems. Multiprocessor design issues including managing a multiprocessor memory hierarchy: tolerating and avoiding latency. High Performance Networking including treatment of multiprocessor networks, high performance local and wide area networks. Design and modeling of disks, disk caches, Redundant Arrays of Inexpensive Disks (RAID) devices, parallel I/O subsystems, parallel file systems, and Flash memory.
CMSC 624 DATABASE SYSTEMS IMPLEMENTATION (3)
  • Prerequisites: CMSC 424; or permission of the instructor. Notes: Syllabus: HTML
  • Description: Study of techniques for building traditional, relational database systems. This course focuses on performance and reliability considerations and highlights the interdependencies among the choices facing the system implementor. Topics include: Database Management System Architecture, Disk and Memory Management, Access Paths and Indexes, Concurrency Control, Crash Recovery, Query Execution, Query Optimization, and Benchmarking. A semester-long project involves constructing a small relational database system that incorporates many of the techniques studied.
CMSC 630 SOFTWARE SPECIFICATION AND ANALYSIS (3)
  • Prerequisites: CMSC 430 Notes: Syllabus: HTML
  • Description: Mathematical techniques for describing software systems, proving properties of a the system's behavior prior to its implementation, and determining if the system has been correctly implemented. Description mechanisms for requirements and designs (state machines, axiomatic techniques), proof systems (natural deduction, term rewriting, model checking), static analysis (abstract interpretation, inspections, fault-tree analysis), dynamic analysis (test oracles, executable assertions, coverage metrics).
CMSC 631 PROGRAM ANALYSIS AND UNDERSTANDING (3)
  • Prerequisites: CMSC 430 Notes: Syllabus: HTML
  • Description: Techniques for static analysis of source code and modern programming paradigms. Analysis techniques: data flow analysis, program dependence graphs, program slicing, abstract interpretation. The meaning of programs: denotational semantics, partial evaluation. Abstraction mechanisms: polymorphic types, operation overloading, inheritance, object-oriented programming and ML-like programming languages.

CMSC 652 COMPLEXITY THEORY (3)

  • Prerequisites: CMSC 451 or CMSC 452 or permission of instructor
  • Notes:
  • Syllabus: 652
  • Description: This course will define what it means for a problem to be hard (or easy) in a variety of ways. The emphasis will be on natural problems. Topics may include NP-completeness, Sparse Sets, Graph Isomorphism (why it is thought to nobe be NP-complete), Counting problems, and approximation problems.
CMSC 651 ANALYSIS OF ALGORITHMS (3)
  • Prerequisites: CMSC 451 Notes: Syllabus: HTML (fall 95)
  • Description: Techniques for the design and analysis of algorithms and data structures. Study of efficient algorithms from areas such as graph theory, networks, pattern matching, geometry, integer and polynomial arithmetic. Understanding of the inherent complexity of problems: polynomial time, NP-completeness and approximation algorithms.
CMSC 660 SCIENTIFIC COMPUTING I (3)
  • Prerequisites: AMSC/CMSC/MAPL 460 or 466 or permission of instructor
  • Description: Monte Carlo simulation, numerical linear algebra, nonlinear systems and continuation method, optimization, ordinary differential equations. Fundamental techniques in scientific computation with an introduction to the theory and software for each topic.

CMSC 661 SCIENTIFIC COMPUTING II (3)

  • Prerequisites: AMSC/CMSC/MAPL 460 or 466 or permission of instructor
  • Description: Fundamental issues of computer hardware, sofware, parallel computing, and scientific data management for programming for scientific computation.
CMSC 663 ADVANCED SCIENTIFIC COMPUTING I (3)
  • Also offered as AMSC663.
CMSC 664 ADVANCED SCIENTIFIC COMPUTING II (3)
  • Prerequisites: CMSC663 or permission of instructor. Also offered as AMSC664.
  • Description: In the sequence CMSC663-664, students work on a year-long individual project to develop software for a scientific task in a high performance computing environment. Lectures will be given on code development and validation, parallel algorithms for partial differential equations, nonlinear systems, and optimization .
CMSC 666 NUMERICAL ANALYSIS I (3)
  • Prerequisites: CMSC/MAPL 466, and MATH 410. Notes: Syllabus: Not available.
  • Description: Iterative methods for linear systems, piecewise interpolation, eigenvalue problems, numerical integration. Listed also as MAPL 666.
CMSC 667 NUMERICAL ANALYSIS II (3)
  • Prerequisites: CMSC/MAPL 666. Notes: Syllabus: Not available.
  • Description: Nonlinear systems of equations, ordinary differential equations, boundary value problems. Listed also as MAPL 667.
CMSC 710 PERFORMANCE EVALUATION OF COMPUTER SYSTEMS (3)
  • Prerequisites: CMSC 411 and CMSC 412 or equivalent; or permission of instructor. Notes: Syllabus: HTML
  • Description: A comprehensive study of modelling distributed systems and evaluating their performance. Topics include stochastic processes, queueing theory, discrete-event simulation, synthetic workload generation, measurement and analysis, benchmarking programs.
CMSC 711 COMMUNICATIONS AND NETWORKING (3)
  • Prerequisites: Permission of instructor Notes: Syllabus: HTML
  • Description: Advanced topics in communications and networks, including multimedia systems, routing policies, mobile networks, internetworking, bandwidth allocation, flow-control, and high-speed networks, design and performance issues in networks.
CMSC 712 DISTRIBUTED ALGORITHMS AND VERIFICATION (3)
  • Prerequisites: CMSC 411 and CMSC 412 or equivalent; or permission of instructor. Notes: Syllabus: Not available.
  • Description: Fundamental algorithms used in distributed systems, and practical techniques to verify their correctness. Topics include synchronization, communication, mutual exclusion, byzantine agreement, flow-control and termination detection. Verification techniques include assertional reasoning and automated finite-state analysis.
CMSC 713 REAL-TIME AND EMBEDDED SYSTEMS (3)
  • Prerequisites: CMSC 412 and CMSC 417 or equivalent; or permission of instructor. Notes: Syllabus: HTML
  • Description: Current research issues in real-time and embedded systems from classical priority-based scheduling to recent APIs for workstation clusters.
CMSC 714 SUPERCOMPUTERS (3)
  • Prerequisites: Permission of instructor. Notes: Syllabus: HTML
  • Description: Selected topics in high-performance systems, including contemporary architectures, interconnection topologies, shared memory and message-passing systems, multi-threaded kernels, latency avoidance and hiding techniques, methods for data and workload partitioning, performance profiling, debugging.
CMSC 720 LOGIC FOR PROBLEM SOLVING (3)
  • Prerequisites: CMSC 421 or equivalent; or permission of instructor. Notes: Syllabus: HTML
  • Description: Logic programming and its use in problem solving, natural language recognition and parsing, and robotics. The Prolog language. Meta-level and parallel logic programming. Expert systems. Term project in logic programming.
CMSC 721 NON-MONOTONIC REASONING (3)
  • Prerequisites: CMSC 421 or equivalent; or permission of instructor. Notes: Syllabus: HTML
  • Description: Survey of the major standard formalisms for nonmonotonic reasoning (e.g., circumscription, default logic), and examination of current research issues.
CMSC 722 ARTIFICIAL INTELLIGNECE PLANNING (3)
  • Prerequisites: CMSC 421 or equivalent; or permission of instructor. Notes: Syllabus:
  • Description: Automated planning of actions to accomplish some desired goals. Basic algorithms, important systems, and new directions in the field of AI planning systems.
CMSC 723 COMPUTATIONAL LINGUISTICS (3)
  • Prerequisites: CMSC 421 or equivalent; or permission of instructor. Notes: PhD Comp credit for CMSC723 or CMSC823, not both. Also offered as LING723. Not open to students who have completed LING645. Description: Fundamental methods in natural language processing. Topics include: finite-state methods, context-free and extended context-free models of syntax; parsing and semantics interpretation; n-gram and Hidden Markov models, part-of-speech tagging; natural language applications such as machine translation, automatic summarization, and question answering.
  • Current URL: http://www.umiacs.umd.edu/~bonnie/courses/cmsc723-Fall07/index.html
CMSC 724 DATABASE MANAGEMENT SYSTEMS (3)
  • Prerequisites: CMSC 424 or permission of instructor. Notes: Syllabus: HTML
  • Description: Theoretical and implementation issues in advanced database systems. Topics include distributed databases, parallel databases, database client-server architectures, multimedia access methods, advanced query optimization techniques, data semantics and models, object-oriented databases, and deductive and expert database systems.
CMSC 725 GEOGRAPHIC INFORMATION SYSTEMS AND SPATIAL DATABASES (3)
  • Prerequisites: CMSC 420 and CMSC 424; or permission of the instructor. Notes: Syllabus: HTML
  • Description: Topics in geographic information systems and spatial databases. The course integrates related results from databases, cartography, geography, computer graphics, file access methods, computational geometry, image processing, data structures, and programming languages. The main topics include: cartographic modeling, principles of cartography, methods from computational geometry, principles of spatial databases, access methods, and spatial data structures. The architecture of some existing spatial databases and geographic information systems will be examined in greater detail.
CMSC 726 MACHINE LEARNING (3)
  • Prerequisites: CMSC 421 or equivalent. Notes: Syllabus: HTML
  • Description: Review and analysis of both traditional symbol-processing methods and genetic algorithms as approaches to machine learning (neural network learning methods are covered in CMSC 727). Topics include induction of decision trees and rules, version spaces, candidate elimination algorithm, exemplar-based learning, evolution under natural selection of problem-solving algorithms, system assessment, and comparative studies.
CMSC 727 NEURAL MODELING (3)
  • Prerequisites: CMSC 421 or equivalent; or permission of instructor. Notes: Syllabus: HTML
  • Description: Undergraduate calculus, linear algebra, and elementary probability theory are assumed. Fundamental methods of neural modeling. Surveys historical development and recent research results from both the computational and dynamical systems perspective. Logical neurons, perceptrons, linear adaptive networks, attractor neural networks, competitive activation methods, error back-propagation, self-organizing maps, and related topics. Applications in artificial intelligence, cognitive science, and neuroscience.
CMSC 731 PROGRAMMING LANGUAGE IMPLEMENTATION (3)
  • Prerequisites: CMSC 430. Notes: Syllabus: HTML (spring 96)
  • Description: Techniques for improving the performance of compiled code on sequential and parallel machines. Data-flow analysis (iterative, interval, sparse). Control-flow, control-dependence, and interprocedural program analyses. Classical optimizations (common subexpression elimination, strength reductions, code hoisting, dead code elimination). Program transformations for improving data locality and exploiting parallelism (instructions, vectors, multiprocessors). Code generation techniques (instruction selection, instruction scheduling, register allocation). Peephole optimizations. Interface with programming environments, debuggers, and profiling tools.
CMSC 732 COMPILING FOR HI PERFOMANCE ARCHITECTURES (3)
  • Prerequisites: CMSC 430. Notes: Syllabus: HTML (fall 96).
  • Description: Compilation techniques for exploiting parallelism on a variety of advanced multiprocessors. Analysis of scientific programs (dependence testing, dependence graphs, pointers). Program transformations (loop interchange, loop fusion, tiling, renaming). Exploiting parallelism for vector, parallel, and message-passing architectures. Memory hierarchy management (register/cache reuse, prefetching, multithreading). Programming environments and performance debugging.
CMSC 733 COMPUTER PROCESSING OF PICTORAL INFORMATION (3)
  • Prerequisites: CMSC 420. Notes: Syllabus: Not available.
  • Description: Input, output, and storage of pictorial information. Pictures as information sources, efficient encoding, sampling, quantization, approximation. Position-invariant operations on pictures digital and optical implementations, the PAX language, applications to matched and spatial frequency filtering. Picture quality, image enhancement and image restoration. Picture properties and pictorial pattern recognition. Processing of complex pictures: Figure extraction, properties of figures. Data Structures for picture descriptioned manipulation picture languages. Graphics systems for alphanumeric and other symbols, line drawings of two-and three-dimensional objects, cartoons and movies.
CMSC 735 A QUANTITATIVE APPROACH TO ENGINEERING SOFTWARE (3)
  • Prerequisites: CMSC 435 and STAT 400; or permission of instructor. Notes: Syllabus: HTML
  • Description: Introduction to the fundamental ideas for measuring and evaluating the software development process and product. Types of models and metrics currently in use. Paradigms for using practical measurement for managing and engineering the software development and maintenance process; evaluating software methods and tools; and improving productivity, quality and the effective use of methodology.
CMSC 740 ADVANCED COMPUTER GRAPHICS (3)
  • Prerequisites: MATH 240 and CMSC 420. Notes: Three hours of lecture each week. Syllabus: HTML
  • Description: An introduction to the principles of computer graphics. This includes an introduction to graphics displays and systems, introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hidden-surface removal, color models, methods for modeling illumination, shading, and reflection.
CMSC 750 ADVANCED THEORY OF COMPUTATION (3)
  • Prerequisites: CMSC 650. Notes: Syllabus: Not available.
  • Description: Continuation of CMSC 650. Relevant results and techniques from recursive function theory such as priority arguments. Current research topics in the foundation of computing, such as inductive inference and polynomial terseness.
CMSC 751 PARALLEL ALGORITHMS (3)
  • Prerequisites: CMSC 451 or equivalent. Notes: Syllabus: Not available.
  • Description: Presentation of the theory of parallel computers and parallel processing. Models of parallel processing and the relationships between these models. Techniques for the design and analysis of efficient parallel algorithms including parallel prefix, searching, sorting, graph problems, and algebraic problems. Theoretical limits of parallelism, inherently sequential problems, and the theory of P-completeness.
CMSC 752 CONCRETE COMPLEXITY (3)
  • Prerequisites: CMSC 451 or CMSC 650 or equivalent. Notes: Syllabus: HTML
  • Description: Investigate upper and lower bounds for several problems such as sorting, selection, parity, hashing, and graphs. Consider models of computation such as decision trees, circuits, monotone circuits, and the information model for graphs. Combinatorial tools developed as needed. Ramsey theory will be one of those tools.
CMSC 754 COMPUTATIONAL GEOMETRY (3)
  • Prerequisites: CMSC 420 and CMSC 451 or equivalent. Notes: Syllabus: HTML
  • Description: Introduction to algorithms and data structures for computational problems in discrete geometry (for points, lines, and polygons) primarily in 2 and 3 dimensions. Topics include triangulations and planar subdivisions, geometric search and intersection, convex hulls, Voronoi diagrams, Delaunay triangulations, line arrangements, visibility, and motion planning.
CMSC 760 ADVANCED LINEAR NUMERICAL ANALYSIS (3)
  • Prerequisites: None Notes: Syllabus: Not available.
  • Description: Advanced topics in numerical linear algebra, such as dense eigenvalue problems, sparse elimination, iterative methods, and other topics.
CMSC 762 NUMERICAL SOLUTION OF NONLINEAR EQUATIONS (3)
  • Prerequisites: None Notes: Syllabus: Not available.
  • Description: Numerical solution of nonlinear equations in one and several variables. Existence questions. Minimization methods. Selected applications.
CMSC 764 ADVANCED NUMERICAL OPTIMIZATIONS (3)
  • Prerequisites: MATH 410 and CMSC 477 or equivalent. Notes: Syllabus: Not available.
  • Description: Modern numerical methods for solving unconstrained and constrained nonlinear optimization problems in finite dimensions. Design of computational algorithms and the analysis of their properties.
CMSC 773 COMPUTATIONAL LINGUISTICS II (3)
  • Prerequisite: CMSC 723 or LING 723; or permission of instructor.
  • Notes: Also offered as LING 773. Not open to students who have completed LING 647. Formerly CMSC 828R.
  • Description: Natural language processing with a focus on corpus-based statistical techniques. Topics include: stochastic language modeling, smoothing, noisy channel models, probabilistic grammars and parsing; lexical acquisition, similarity-based methods, word sense disambiguation, statistical methods in NLP applications; system evaluation.
  • Recent URL: http://www.umiacs.umd.edu/~resnik/ling773_sp2007/
CMSC 798A GRADUATE SEMINAR IN COMPUTER SCIENCE (3)
  • Prerequisites: MATH 410 and CMSC 477 or equivalent. Notes: Section numbers Syllabus: Not available.
  • Description: Seminars are held on topics such as language design, translator theory, data systems, organization of computer systems, and automatic problem solving. May be taken for repeated credit.
CMSC 799 THESIS RESEARCH (1-3)
  • Prerequisites: Permission of department. Notes: Section Numbers Syllabus: Not available.
  • Description: Arranged.
CMSC 818A ADVANCED TOPICS IN COMPUTER SCIENCE (1-3)
  • Prerequisites: Permission of instructor. Notes: Section Numbers Syllabus: Not available.
  • Description: Advanced topics selected by the faculty from the literature of computer systems to suit the interest and background of students. May be taken for repeated credit.
CMSC 828A ADVANCED TOPICS IN INFORMATION PROCESSING (1-3)
  • Prerequisites: Permission of instructor. Notes: Section numbers Syllabus: Not available.
  • Description: Advanced topics selected by the faculty from the literature of information processing to suit the interest and background of students. May be taken for repeated credit.
CMSC 838A ADVANCED TOPICS IN PROGRAMMING LANGUAGES (1-3)
  • Prerequisites: Permission of instructor. Notes: Section numbers Syllabus: Not available.
  • Description: Advanced topics selected by the faculty from the literature of Programming Languages to suite the interest and background of students. May be taken for repeated credit.
CMSC 858A ADVANCED TOPICS IN THEORY OF COMPUTING (1-3)
  • Prerequisites: Permission of instructor. Notes: Section numbers Syllabus: Not available.
  • Description: Advanced topics selected by the faulty from the literature of Theory of Computing to suit the interest and background of students. May be taken for repeated credit.
CMSC 878 ADVANCED TOPICS IN NUMERICAL METHODS (1-3)
  • Prerequisites: Permission of instructor. Notes: Section numbers Syllabus: Not available.
  • Description: Advanced topics selected by the faculty from the literature of Numerical Methods to suit the interest and background of students. May be taken for repeated credit.
CMSC 899 DISSERTATION RESEARCH (1-8)
  • Prerequisites: Permission of Advisor. Notes: Section numbers Syllabus: Not Applicable
  • Description: Arranged