Graduate Courses for Computer Science (CMSC)
Schedule of Classes:
Fall |
Winter |
Spring |
Summer
(Only current and next semester available)
CMSC 411 Computer Systems Architecture (3 credits)
Prerequisite: A grade of C or better in (CMSC311 or ENEE350) and a grade
of C or better in CMSC330; and permission of department; or CMSC
graduate student.
Input/output processors and techniques. Intra-system communication,
buses, caches. Addressing and memory hierarchies. Microprogramming,
parallelism, and pipelining.
CMSC 412 Operating Systems (4 credits)
Three hours of lecture and two hours of laboratory per week.
Prerequisites: A grade of C or better in (CMSC311 or ENEE350) and a
grade of C or better in CMSC330; and permission of department; or CMSC
graduate student.
An introduction to batch systems, spooling systems, and third-generation
multiprogramming systems. Description of the parts of an operating
system in terms of function, structure, and implementation. Basic
resource allocation policies.
CMSC 414 Computer and Network Security (3 credits)
Prerequisite: A grade of C or better in (CMSC311 or ENEE350) and a grade
of C or better in CMSC330; and permission of department; or CMSC
graduate student.
An introduction to the topic of security in the context of computer
systems and networks. Identify, analyze, and solve network-related
security problems in computer systems. Fundamentals of number theory,
authentication, and encryption technologies, as well as the practical
problems that have to be solved in order to make those technologies
workable in a networked environment, particularly in the wide-area
Internet environment.
CMSC 417 Computer Networks (3 credits)
Prerequisite: A grade of C or better in CMSC351, a grade of C or better
in (CMSC311 or ENEE350), and a grade of C or better in CMSC330; and
permission of department; or CMSC graduate student.
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 credits)
Prerequisites: A grade of C or better in CMSC330 and in CMSC351; and
permission of department; or CMSC graduate student.
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 credits)
Prerequisites: A grade of C or better in CMSC330 and in CMSC351; and
permission of the department or CMSC graduate student.
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 423 Bioinformatic Algorithms, Databases, and Tools (3 credits)
Prerequisite: CMSC351 or permission of department.
A practical introduction to the main topics in algorithms, databases,
and tools used in bioinformatics. Includes public databases such as
Genbank and PDG, software tools such as BLAST, and their underlying
algorithms. Use of Perl scripting language to perform a number of useful
tasks in analyzing sequence data and managing bioinformatic databases.
CMSC 424 Database Design (3 credits)
Prerequisite: CMSC420 with a grade of C or better; and permission of
department; or CMSC graduate student.
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 credits)
Prerequisite: CMSC 420 and permission of department; or CMSC graduate
student.
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 credits)
Prerequisites: MATH240; and a grade of C or better in CMSC420; and
permission of department; or CMSC graduate student.
An introduction to the principles of computer graphics. 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 credits)
Prerequisites: a grade of C or better in CMSC330; and permission of
department; or CMSC graduate student.
Formal translation of programming languages, program syntax and
semantics. Finite state recognizers and regular grammers. Context-free
parsing techniques such as recursive descent, precedence, LL(k) and
LR(k). Code generation, improvement, syntax-directed translation schema.
CMSC 433 Programming Language Technologies and Paradigms (3 credits)
Prerequisite: CMSC330; and permission of department; or CMSC graduate
student.
Programming language technologies (e.g., object-oriented programming),
their implementations and use in software design and implementation.
CMSC 434 Introduction to Human-Computer Interaction (3 credits)
Prerequisites: CMSC330 with a grade of C or better and PSYC100; and
permission of department; or CMSC graduate student.
Assess usability by quantitative and qualitative methods. Conduct task
analyses, usability tests, expert reviews, and continuing assessments
of working products by interviews, surveys, and logging. Apply design
processes and guidelines to develop professional quality user
interfaces. Build low-fidelity paper mockups, and a high-fidelity
prototype using contemporary tools such as graphic editors and a
graphical programming environment (eg: Visual Basic, Java).
CMSC 435 Software Engineering (3 credits)
Prerequisites: (CMSC412, CMSC417, CMSC420, CMSC430, or CMSC433) with a
grade of C or better and permission of department; or CMSC graduate
student.
State-of-the-art techniques 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 credits)
Prerequisites: (CMSC351 and MATH141) with grade of C or better and
permission of department; or CMSC graduate student. Also offered as
MATH450. Credit will be granted for only one of the following: MATH445
or CMSC450/MATH450.
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.
CMSC 451 Design and Analysis of Computer Algorithms (3 credits)
Prerequisite: a grade of C or better in CMSC351; and permission of
department; or CMSC graduate student.
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 credits)
Prerequisite: CMSC351 with a grade of C or better; and permission of
department; or CMSC graduate student.
Alternative theoretical models of computation, types of automata, and
their relations to formal grammars and languages.
CMSC 456 Cryptology (3 credits)
Prerequisites: Any two 400-level MATH courses; or CMSC330 and CMSC351;
and permission of department; or CMSC graduate student. Also offered as
MATH456. Credit will be granted for only one of the following: CMSC456
or MATH456.
Importance 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 credits)
Prerequisites: MATH240; and MATH241; and CMSC106 or CMSC114 or ENEE114;
and permission of department; or CMSC graduate student. Also offered as
AMSC460. Credit will be granted for only one of the following:
AMSC/CMSC/MAPL460 or AMSC/CMSC/MAPL466.
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 on methods
and their computational properties rather than their analytic aspects.
Intended primarily for students in the physical and engineering
sciences.
CMSC 462 Computer Science for Scientific Computing (3 credits)
Prerequisite: CMSC106 or CMSC131; and (AMSC460 or CMSC460); or
permission of department. This course cannot be used toward the
upper-level math requirement for MATH and STAT majors. Students who take
CMSC311 or CMSC330 will not be given credit for this course. Also
offered as AMSC462. Credit will be granted for only one of the
following: AMSC462 or CMSC462.
A survey of computer science for scientists and engineers. The goal is
to enable the student to write efficient, well-organized programs for
today's machines. Topics to be treated include computer organization,
computer arithmetic, processes and operating systems, the memory
hierarchy, comparison of the Fortran and C families of languages,
compilers, the run time environment, memory allocation, preprocessors
and portability, and documentation. Specific topics will vary from
semester to semester.
CMSC 466 Introduction to Numerical Analysis I (3 credits)
Prerequisites: MATH240; and MATH241; and CMSC106 or CMSC114 or ENEE114;
and permission of department; or CMSC graduate student. Also offered as
AMSC466. Credit will be granted for only one of the following:
AMSC/CMSC/MAPL460 or AMSC/CMSC/MAPL466.
Floating point computations, direct methods for linear systems,
interpolation, solution of nonlinear equations.
CMSC 475 Combinatorics and Graph Theory (3 credits)
Prerequisites: MATH240 and MATH241; and permission of department; or
CMSC graduate student. Also offered as MATH475.
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.
CMSC 477 Optimization (3 credits)
Prerequisites: (AMSC/CMSC/MAPL460, AMSC/CMSC/MAPL466, or
AMSC/CMSC/MAPL467) with a grade of C or better and permission of
department; or CMSC graduate students. Also offered as AMSC477. Credit
will be granted for only one of the following: AMSC477, CMSC477 or
MAPL477.
Linear programming including the simplex algorithm and dual linear
programs; convex sets and elements of convex programming; combinatorial
optimization, integer programming.
CMSC 498 Selected Topics in Computer Science (1-3 credits)
Prerequisite: permission of department.
An individualized course designed to allow a student or students to
pursue a selected topic not taught as a part of the regular course
offerings under the supervision of a Computer Science faculty member. In
addition, courses dealing with topics of special interest and/or new
emerging areas of computer science will be offered with this number.
Selected topics courses will be structured very much like a regular
course with homework, project and exams. Credit according to work
completed
CMSC 499 Independent Undergraduate Research (1-3 credits)
Prerequisite: permission of department; restricted to Computer Science
and Computer Engineering Majors.
Students are provided with an opportunity to participate in a computer
science research project under the guidance of a faculty advisor. Format
varies. Students and supervising faculty member will agree to a research
plan which must be approved by the department. As part of each research
plan, students should produce a final paper delineating their
contribution to the field.
CMSC 598 Practical Training (1 credits)
Provides opportunity for computer science graduate students to gain
practical experience in the field under guidance of a faculty advisor.
CMSC 620 Problem Solving Methods in Artificial Intelligence (3 credits)
Prerequisite: CMSC 421 or permission of instructor.
A formal presentation, based in logic and mathematics, of some
fundamental approaches developed in the field of artificial intelligence
to representing knowledge, solving complex problems; planning and
reasoning in well-defined and uncertain domains. Three basic topics:
state space search, problem reduction, and theorem proving.
CMSC 624 Database Systems Implementation (3 credits)
Prerequisite: CMSC 424 or permission of instructor.
Study of techniques for building traditional, relational database
systems. 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 Theory of Programming Languages (3 credits)
Prerequisite: CMSC 430.
Contemporary topics in the theory of programming languages. Formal
specification and program correctness. Axiomatic proof systems (both
Floyd-Hoare and Dijkstra's predicate transformers), Mills' functional
correctness approach, abstract data types (both abstract model and
algebraic specifications), and Scott-style denotational semantics based
on least fixed points.
CMSC 631 Program Analysis and Understanding (3 credits)
Prerequisite: CMSC 430 or equivalent.
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. Advanced treatment
of abstraction mechanisms: polymorphic types, operation overloading,
inheritance, object-oriented programming and ML-like programming
languages.
CMSC 634 Empirical Research Methods for Computer Science (3 credits)
Prerequisite: Computer Science graduate student or permission of
instructor. Recommended: Introductory statistics class. Credit will be
granted for only one of the following: CMSC838G (Fall 2005) or CMSC634.
A graduate-level introductory course on empirical reseach methods for
computer scientists. Experimental techniques for evaluating software
systems and processes, human performance using interfaces, programming
environments, and software engineering methods. Introduction to
constructs and methods of measurements, qualitative and quantitative
design, quasi-experimental and non-experimental design, baseline
design, and statistical analysis.
CMSC 650 Theory of Computing (3 credits)
Prerequisite: CMSC 452.
Formal treatment of theoretical models of computation, computable and
uncomputable functions, unsolvable decision problems, and computational
complexity.
CMSC 651 Analysis of Algorithms (3 credits)
Prerequisite: CMSC 451.
Efficiency of algorithms, orders of magnitude, recurrence relations,
lower-bound techniques, time and space resources, NP-complete problems,
polynomial hierarchies, and approximation algorithms. Sorting,
searching, set manipulation, graph theory, matrix multiplication, fast
Fourier transform, pattern matching, and integer and polynomial
arithmetic.
CMSC 652 Complexity Theory (3 credits)
Prerequisite: CMSC451 or CMSC452; or permission of instructor. Credit
will be granted for only one of the following: CMSC652 or CMSC858G.
Formerly CMSC 858G.
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 Isomoprhism (why it is
thought to not be NP-complete), Counting problems, and approximation
problems.
CMSC 660 Scientific Computing I (3 credits)
Prerequisite: AMSC/CMSC/MAPL 460 or AMSC/CMSC/MAPL 466, or knowledge of
basic numerical analysis (linear equations, nonlinear equations,
integration, interpolation) with permission of instructor. Knowledge of
C or Fortran. Also offered as AMSC 660. Credit will be granted for only
one of the following: AMSC 660, CMSC 660 or MAPL 660.
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 credits)
Prerequisite: AMSC/CMSC/MAPL 460, AMSC/CMSC/MAPL 466, or knowledge of
basic numerical analysis (linear equations, nonlinear equations,
integration, interpolation) with permission of instructor. Knowledge of
C or Fortran. Also offered as AMSC 661. Credit will be granted for only
one of the following: AMSC, CMSC 661 or MAPL 661.
Fourier and wavelet transform methods, numerical methods for elliptic
partial differential equations, numerical linear algebra for sparse
matrices, Finite element methods, numerical methods for time dependent
partial differential equations. Techniques for scientific computation
with an introduction to the theory and software for each topic. Course
is part of a two course sequence (660 and 661), but can be taken
independently.
CMSC 662 Computer Organization and Programming for Scientific Computing (3 credits)
Prerequisite: AMSC/CMSC/MAPL 460, AMSC/CMSC/MAPL 466 or knowledge of
basic numerical analysis (linear equations, nonlinear equations,
integration, interpolation) with permission of instructor. Knowledge of
C or Fortran. Also offered as AMSC 662. Credit will be granted for only
one of the following: AMSC 662 or CMSC 662.
This course presents fundamentals issues of computer hardware, software,
parallel computing, and scientific data management for programming for
scientific computation.
CMSC 663 Advanced Scientific Computing I (3 credits)
CMSC 664 Advanced Scientific Computing II (3 credits)
Prerequisite: CMSC 663 and permission of instructor. Also offered as
AMSC 664. Credit will be granted for only one of the following: AMSC
664, CMSC 664 or MAPL 664.
In the sequence CMSC 663, CMSC 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, optimization.
CMSC 666 Numerical Analysis I (3 credits)
Prerequisites: AMSC/CMSC/MAPL 466; and MATH 410. Also offered as AMSC
666. Credit will be granted for only one of the following: AMSC 666,
CMSC 666 or MAPL 666.
Iterative methods for linear systems, piecewise interpolation,
eigenvalue problems, numerical integration.
CMSC 667 Numerical Analysis II (3 credits)
Prerequisite: AMSC/CMSC/MAPL 666. Also offered as AMSC 667. Credit will
be granted for only one of the following: AMSC 667, CMSC 667 or MAPL
667.
Nonlinear systems of equations, ordinary differential equations,
boundary value problems.
CMSC 711 Computer Networks (3 credits)
Prerequisite: CMSC 412 or equivalent.
Priciples, design, and performance evaluation of computer networks.
Network architectures including the ISO model and local area networks
(LANs). Communication protocols and network topology.
CMSC 712 Distributed Algorithms and Verification (3 credits)
Prerequisite: CMSC 612 or equivalent.
Study of algorithms from the distributed and concurrent systems
literature. Formal approach to specifying, verifying, and deriving such
algorithms. Areas selected from mutual exclusion, resource allocation,
quiescence detection, election, Byzantine agreements, routing, network
protocols, and fault-tolerence. Formal approaches will handle system
specification and verification of safety, liveness, and real-time
properties.
CMSC 722 Artificial Intelligence Planning (3 credits)
Prerequisite: CMSC 421 or equivalent; or permission of department.
Automated planning of actions to accomplish some desired goals. Basic
algorithms, important systems, and new directions in the field of
artificial intelligence planning systems.
CMSC 723 Computational Linguistics I (3 credits)
Prerequisite: CMSC421 or equivalent; or permission of instructor. PhD
Comp credit for CMSC723 or CMSC823, not both. Also offered as LING723.
Not open to students who have completed LING645.
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.
CMSC 724 Database Management Systems (3 credits)
Prerequisite: CMSC 624 or permission of instructor.
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 Geographical Information Systems and Spatial Databases (3 credits)
Prerequisites: CMSC 420 and CMSC 424; or permission of instructor.
Topics in geographic information systems and spatial databases.
Integrates related results from databases, cartography, geography,
computer graphics, file access methods, computational geometry, image
processing, data structures, and programming languages. 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 credits)
Prerequisite: CMSC 421 or equivalent or permission of instructor.
Reviews and analyzes both traditional symbol-processing methods and
genetic algorithms as approaches to machine learning. (Neural network
learning methods are primarily covered in CMSC 727.) Topics include
induction of decision trees and rules, version spaces, candidate
elimination algorithm, exemplar-based learning, genetic algorithms,
evolution under artificial selection of problem-solving algorithms,
system assessment, comparative studies, and related topics.
CMSC 727 Neural Modeling (3 credits)
Prerequisite: CMSC 421 or equivalent; or permission of instructor.
Undergraduate calculus, linear algebra, and elementary probability and
statistics 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 733 Computer Processing of Pictorial Information (3 credits)
Prerequisite: CMSC 420.
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 pictures description and
manipulation; picture languages. Graphics systems for alphanumeric and
other symbols, line drawings of two- and three-dimensional objects,
cartoons and movies.
CMSC 734 Information Visualization (3 credits)
Prerequisite: CMSC434 or Human-Computer Interaction experience. Formerly
CMSC 838F.
Information visualization defined in relation to graphics, scientific
visualization, databases, data mining, and human-computer interaction.
Visualizations for dimensional, temporal, hierarchical and network data.
Examines design alternatives, algorithms and data structures,
coordinated views, and human factors evaluations of efficacy.
CMSC 735 A Quantitative Approach to Software Management and Engineering (3 credits)
Prerequisites: CMSC 435; and STAT 400 or permission of instructor.
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 737 Fundamentals of Software Testing (3 credits)
Prerequisite: CMSC435 or equivalent. Formerly CMSC 838M.
Examine fundamental software testing and related program analysis
techniques. In particular, the important phases of testing will be
reviewed, emphasizing th significance of each phase when testing
different types of software. Concepts include: test generation, oracles,
prioritization and coverage, regression and mutation testing, and
program analysis.
CMSC 740 Advanced Computer Graphics (3 credits)
Prerequisites: (MATH 240 and CMSC 420) or permission of instructor.
An introduction to the principles of computer graphics. 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 741 Geometric and Solid Modeling (3 credits)
Prerequisite: MATH240 and CMSC420, or permission of instructor. Formerly
CMSC 828D.
An introduction to modeling and mesh-based representations for solid
objects, surfaces, and scalar fields; boundary and volumetric models
for solid objects. Applications to computer aided design, computer
graphics, scientific visualization, finite elements, computer vision,
and robotics.
CMSC 751 Parallel Algorithms (3 credits)
Prerequisite: CMSC 451 or equivalent.
A 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 credits)
Prerequisite: CMSC 451 or CMSC 650 or permission of instructor.
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 753 Mathematical Linguistics (3 credits)
Prerequisites: CMSC 650 and STAT 400.
Introductory course on applications of mathematics to linguistics.
Elementary ideas in phonology, grammar and semantics. Automata, formal
grammars and languages. Chomsky's theory of transformational grammars,
Yngve's depth hypothesis and syntactic complexity. Markov-chain models
of word and sentence generation, Shannon's information theory Carnap
and Bar-Hillel's semantic theory, lexicostatistics and stylostatistics,
Zipf's law of frequency and Mandelbrot's rank hypothesis. Mathematical
models as theoretical foundation for computational linguistics.
CMSC 754 Computational Geometry (3 credits)
Prerequisites: {CMSC 420 and CMSC 451} or permission of instructor.
Introduction to algorithms and data structures for computational
problems in discrete geometry (for points, lines, and polygons)
primarily in two and three 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 credits)
Prerequisite: AMSC/CMSC/MAPL 666 or permission of instructor. Also
offered as AMSC 600. Credit will be granted for only one of the
following: AMSC 600, CMSC760 or MAPL 760. Formerly CMSC 770.
Advanced topics in numerical linear algebra, such as dense eigenvalue
problems, sparse elimination, iterative methods, and other topics.
CMSC 764 Advanced Numerical Optimization (3 credits)
Prerequisite: MATH410 or permission of instructor. Also offered as
AMSC607. Credit will be granted for only one of the following: AMSC607,
CMSC764, or MAPL607. Formerly CMSC 878O.
Modern numerical methods for solving uncontrained and constrained
nonlinear optimization problems in finite dimensions. Design of
computational algorithms and the analysis of their properties.
CMSC 773 Computational Linguistics II (3 credits)
Prerequisite: CMSC723 or LING723; or permission of instructor. May only
receive PhD Comp. credit for CMSC723 or CMSC823, not both. Also offered
as LING773. Not open to students who have completed LING647. Formerly
CMSC 828R.
Natural language processing with a focus on corpus-based statistical
techniques. Topics inlcude: 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.
CMSC 798 Graduate Seminar in Computer Science (1-3 credits)
CMSC 799 Master's Thesis Research (1-6 credits)
CMSC 818 Advanced Topics in Computer Systems (1-3 credits)
Prerequisite: permission of instructor. Repeatable for credit.
Advanced topics selected by the faculty from the literature of computer
systems to suit the interest and background of students.
CMSC 828 Advanced Topics in Information Processing (1-3 credits)
Prerequisite: permission of instructor. Repeatable for credit.
Advanced topics selected by the faculty from the literature of
information processing to suit the interest and background of students.
CMSC 838 Advanced Topics in Programming Languages (1-3 credits)
Prerequisite: permission of instructor. Repeatable for credit.
Advanced topics selected by faculty from the literature of programming
languages to suit the interest and background of students.
CMSC 858 Advanced Topics in Theory of Computing (1-3 credits)
Prerequisite: permission of instructor. Repeatable for credit.
Advanced topics selected by the faculty from the literature of theory
of computing to suit the interest and background of students.
CMSC 878 Advanced Topics in Numerical Methods (1-3 credits)
Prerequisite: permission of instructor. Repeatable for credit.
Advanced topics selected by the faculty from the literature of
numerical methods to suit the interest and background of students.
CMSC 898 Pre-Candidacy Research (1-8 credits)
Prerequisite: permission of instructor. Advanced topics selected by the
faculty from the literature of applications of computer science to suit
the interest and background of students. May be repeated for credit.
CMSC 899 Doctoral Dissertation Research (1-8 credits)
