Skip to content. | Skip to navigation

Sections
Personal tools
You are here: Home Prospective Students Graduate Program Course Offerings

Course Offerings

The courses offered by the computer science and engineering department.

The Course Offerings list will be constantly monitored and updated as needed; the following is a list of departmental courses as they currently exist. It should also be noted that the department offers individual study courses that can include creative projects, including nonthesis research, that are supervised on an individual basis and that fall outside the scope of a formal course; and special topics courses that are formal courses meant to explore, in depth, a subject that may be topical or of special interest. There are several 600 level (research/thesis) courses offered.

* There will be new course abbreviations effective Spring 2008. Lower-level courses will be listed as CMPSC or CMPEN instead of CSE. The graduate-level courses (500 and above) will NOT change. Disclaimer: Please note that, except for certain pre-major entry courses available to the exploratory students in DUS and ENGR, many CMPSC, CMPEN, and CSE courses are controlled for students in the Computer Science or Computer Engineering major. Certain majors have negotiated with with the Department of Computer Science and Engineering to allow their students to register for CMPSC, CMPEN, and CSE courses as part of a computational option. Students outside those majors, however, will find it difficult and probably impossible to schedule CMPSC, CMPEN, and CSE courses. Therefore, students should not pursue another major with the thought that they will be able to compliment it with CMPSC, CMPEN, and CSE electives.

CMPSC 100 - COMPUTER FUNDAMENTALS AND APPLICATIONS (3) Introduction to computer fundamentals and applications to data-processing environments. Prerequisite: 2 entrance units in mathematics.

CMPSC 101 - INTRODUCTION TO C++ PROGRAMMING (3) Properties of algorithms, languages, and notations for describing algorithms, applications of a procedure-oriented language to problem solving. Prerequisite: 2 entrance units in mathematics.

CMPSC 121 (GQ) - (OLD COURSE CSE 121). INTRODUCTION TO PROGRAMMING TECHNIQUES (4) Design and implementation of algorithms. Structured programming. Problem solving techniques. Introduction to a high-level language, including arrays, procedures, and recursion. Prerequisite: 2 entrance units in mathematics.

CMPSC 122 (GQ) - (OLD COURSE CSE 122). INTERMEDIATE PROGRAMMING (3) Systematic programming: top-down program development, documentation, and testing. Introduction to data structures, text processing, numerical methods, algorithm analysis, program verification. Prerequisite: CMPSC 121.

CMPSC 201 - (OLD COURSE CMPSC 201C). PROGRAMMING FOR ENGINEERS WITH C++ (3) Development and implementation of algorithms in a procedure-oriented language, with emphasis on numerical methods for engineering problems. Prerequisite: MATH 140. Concurrent: MATH 141.

CMPSC 202 - (OLD COURSE CMPSC 201F). PROGRAMMING FOR ENGINEERS WITH FORTRAN (3) Development and implementation of algorithms in a procedure-oriented language, with emphasis on numerical methods for engineering problems. Prerequisite: MATH 140. Concurrent: MATH 141.

CMPSC 203 (GQ) - INTRODUCTION TO SPREADSHEETS AND DATABASES (4) Programming in a high-level language; introduction to computers; packaged software: statistical packages and spreadsheets; designed for business students. Prerequisite: 2 entrance units in mathematics.

CMPSC 221 - (OLD COURSE CSE 221). OBJECT ORIENTED PROGRAMMING WITH WEB-BASED APPLICATIONS (3) This course will continue with object-oriented programming and will introduce graphics, virtual machines, programming language concepts and web-based programming using Java. Prerequisite: CMPSC 122.

CMPSC 311 - (OLD COURSE CSE 311). INTRODUCTION TO SYSTEM PROGRAMMING (3) Unix system programming in C; organization of programs and data; program analysis and support tools; software standards; common system functions. Prerequisite: CMPSC 221.

CMPSC 360 - (OLD COURSE CSE 260). DISCRETE MATHEMATICS FOR COMPUTER SCIENCE (3) Discrete mathematics and foundations for modern computer science. Topics include sets, relations, logic, algorithms, graphs, finite state machines and regular expressions. Prerequisite: CMPSC 122.

CMPSC 431W - (OLD COURSE CSE 441W). DATABASE MANAGEMENT SYSTEMS (3) Database system concepts: file organizations and retrieval algorithms; the three data models (relational, hierarchical, and network) and their database implementations. Prerequisite: CMPSC 221; ENGL 202C.

CMPSC 442 - (OLD COURSE CSE 481). ARTIFICIAL INTELLIGENCE (3) Introduction to the theory, research paradigms, implementation techniques, and philosophies of artificial intelligence. Prerequisite: CMPSC 465.

CMPSC 443 - (OLD COURSE CSE 443). INTRODUCTION TO COMPUTER AND NETWORK SECURITY (3) Introduction to theory and practice of computer security with an emphasis on Internet and operating system applications. Prerequisite(s): CMPSC 473, CMPEN 362.

CMPSC 450 - (OLD COURSE CSE 457). CONCURRENT SCIENTIFIC PROGRAMMING (3) Problems of synchronization, concurrent execution, and their solution techniques. Design and implementation of concurrent software in a distributed system. Prerequisite CMPSC 121, CMPSC 201 or CMPSC 202; MATH 220; MATH 230 or MATH 231.

CMPSC 451 (MATH 451) - (OLD COURSE CSE/MATH 451). NUMERICAL COMPUTATIONS (3) Algorithms for interpolation, approximation, integration, nonlinear equations, linear systems, fast Fourier transform, and differential equations emphasizing computational properties and implementation. Students may take only one course for credit from CMPSC/MATH 451 and CMPSC/MATH 455. Prerequisite: 3 credits of programming; MATH 230 or 231.

CMPSC 455 (MATH 455) - (OLD COURSE CSE/MATH 455). INTRODUCTION TO NUMERICAL ANALYSIS I (3) Floating point computation, numerical rootfinding, interpolation, numerical quadrature, direct methods for linear systems. Students may take only one course for credit from CMPSC/MATH 451 and CMPSC/MATH 455. Prerequisites: MATH 220; MATH 230 or MATH 231; and 3 credits of programming.

CMPSC 456 (MATH 456) - (OLD COURSE CSE/MATH 456). INTRODUCTION TO NUMERICAL ANALYSIS II (3) Polynomial and piecewise polynomial approximation, matrix-least squares problems, numerical solution of eigenvalue problems, numerical solution of ordinary differential equations. Prerequisite: CMPSC 455.

CMPSC 458 - (OLD COURSE CSE 418). FUNDAMENTALS OF COMPUTER GRAPHICS (3) Fundamentals of computer graphics: input/output devices, transformation, projection, clipping; hidden line/surface elimination. Prerequisite: CMPSC 311; MATH 220; MATH 230 OR MATH 231.

CMPSC 461 - (OLD COURSE CSE 428). PROGRAMMING LANGUAGE CONCEPTS (3) Fundamental principles of computer language design, stressing the relationship between design and implementation. In-depth study of a few representative languages. Prerequisite: CMPSC 221; CMPSC 360.

CMPSC 465 - (OLD COURSE CSE 465). DATA STRUCTURES AND ALGORITHMS (3) Advanced data structures, design and analysis of algorithms. Prerequisite: CMPSC 360 or MATH 311W.

CMPSC 466 - (OLD COURSE CSE 460). COMBINATORICS AND GRAPH THEORY (3) An introduction to combinatorics and graph theory, with emphasis on applications and their organization for solution on digital computers. Prerequisite: CMPSC 465.

CMPSC 467 (MATH 467) - (OLD COURSE CSE/MATH 467). FACTORIZATION AND PRIMALITY TESTING (3) Prime sieves, factoring, computer numeration systems, congruences, multiplicative functions, primitive roots, cryptography, quadratic residues. Students who have passed MATH 465 may not schedule this course. Prerequisite: CMPSC 360 or MATH 311W.

CMPSC 468 - (OLD COURSE CSE 468). THEORY OF AUTOMATA, LANGUAGES, AND COMPUTABILITY (3) Finite machines and regular events, context-free languages and machines with push-down memory, effectiveness, undecidability, and Turing machines. Prerequisite: CMPSC 122; MATH 315, MATH 311W or CMPSC 360.

CMPSC 471 - (OLD COURSE CSE 421). INTRODUCTION TO COMPILER CONSTRUCTION (3) Design and implementation of compilers; lexical analysis, parsing, semantic actions, optimization, and code generation. Prerequisite: CMPSC 461.

CMPSC 473 - (OLD COURSE CSE 411). OPERATING SYSTEMS DESIGN AND CONSTRUCTION (3) Design and implementation of computer operating systems; management of various system resources: processes, memory, processors, files, input/output devices. Prerequisite: CMPSC 311 and CMPEN 331.

CMPSC 483W - (OLD COURSE CSE 420W). SOFTWARE DESIGN METHODS (3) Applications of scientific knowledge and methods in the design and construction of computer software using engineering concepts. Prerequisite: CMPSC 221, CMPSC 465, ENGL 202C.

CMPEN 271 - (OLD COURSE CSE 271). INTRODUCTION TO DIGITAL SYSTEMS (3) Introduction to logic design and digital systems. Boolean algebra, and introduction to combinatorial and sequential circuit design and analysis. Concurrent: PHYS 202 or PHYS 212.

CMPEN 275 - (OLD COURSE CSE 275). DIGITAL DESIGN LABORATORY (1) Introduction to digital design techniques. Concurrent: CMPEN 271; PHYS 212.

CMPEN 331 - (OLD COURSE CSE 331). COMPUTER ORGANIZATION AND DESIGN (3) Introduction to major components of a computer system, how they function together in executing a program, how they are designed. Prerequisite: CMPEN 271; CMPSC 121 or CMPSC 201.

CMPEN 362 (EE 362) - OLD COURSE CSE/EE 458). COMMUNICATION NETWORKS (3) Data transmission, encoding, link control techniques; communication network architecture, design; computer communication system architecture, protocols. Prerequisite: CMPEN 271. Concurrent: STAT 301 OR STAT 318 OR STAT 414 OR STAT 418.

CMPEN 411 - (OLD COURSE CSE 477). VLSI DIGITAL CIRCUITS (3) Basic building blocks of CMOS design, design rules, chip planning, layout design, system power and timing, simulation of VLSI structures. Prerequisite: CMPEN 371 or CMPEN 471; EE 310.

CMPEN 416 (EE 416) - (OLD COURSE CSE/EE 447). DIGITAL INTEGRATED CIRCUITS (3) Analysis and design of digital integrated circuit building blocks, including logic gates, flip-flops, memory elements, analog switches, multiplexers, and converters. Prerequisite: EE 310.

CMPEN 417 (EE 417) - (OLD COURSE CSE/EE 478). DIGITAL DESIGN USING FIELD PROGRAMMABLE DEVICES (3) Field programmable device architectures and technologies; rapid prototyping using top down design techniques; quick response systems. Prerequisite: CMPEN 331.

CMPEN 431 - (OLD COURSE CSE 431). INTRODUCTION TO COMPUTER ARCHITECTURE (3) Introduction to computer architecture: memory hierarchy and design, CPU design, pipelining, multiprocessor architecture. Prerequisite: CMPEN 331 or CMPEN 371.

CMPEN 454 (EE 454) - OLD COURSE (CSE/EE 486). FUNDAMENTALS OF COMPUTER VISION (3) Introduction to topics such as image formation, segmentation, feature extraction, matching, shape recovery, object recognition, and dynamic scene analysis. Prerequisite: MATH 230 or MATH 231; CMPSC 121 or CMPSC 201.

CMPEN 455 (EE 455) - (OLD COURSE CSE/EE 485). DIGITAL IMAGE PROCESSING (3) Overview of digital image processing techniques and their applications, image sampling, enhancement, restoration, and analysis; computer projects. Prerequisites: EE 353 or EE 350; CMPSC 121 or CMPSC 201.

CMPEN 471 - (OLD COURSE CSE 471). LOGICAL DESIGN OF DIGITAL SYSTEMS (3) Basic switching theory and design of digital circuits, including combinatorial, synchronous sequential, and asynchronous sequential circuits. Prerequisite: CMPEN 331.

CMPEN 472 - (OLD COURSE CSE 472). MICROPROCESSORS AND EMBEDDED SYSTEMS (3) Microprocessors: architecture, design, assembly language, programming, interfacing, bus structure, and interface circuits and their use in embedded systems. Prerequisite: CMPEN 331.

CMPEN 473 - (OLD COURSE CSE 473). MICROCOMPUTER LABORATORY (3) Design of digital systems using microprocessors. Prerequisite: CMPEN 472.

CMPEN 482W - (OLD COURSE CSE 430W). COMPUTER ENGINEERING PROJECT DESIGN (3) Computer engineering design project, project management, documentation, reporting, and group and individual communication skills. Prerequisite: EE 310, EE 353, CMPSC 473, ENGL 202C.

CSE 511. OPERATING SYSTEM DESIGN (3) Concurrent programming; design of I/O subsystem, memory management, and user interface; kernel design; deadlocks, protection and security; case studies. Prerequisite: CMPSC 473.

CSE 515 (EE 515). RELIABLE DATA COMMUNICATIONS (3) Discussion of problems and solutions for ensuring reliable and efficient communication over wired and wireless links and data networks. Prerequisites: CMPEN 362, MATH 418.

CSE 517. PERFORMANCE EVALUATION (3) Tools and techniques for PE, analytical and simulation models, evaluation of multiprocessors, multicomputer and LANs, scheduling policies, case studies.

CSE 520. SCIENCE OF COMPUTER PROGRAMMING (4) Weakest preconditions, nondeterminism, terminating constructs, formal derivation of some often used algorithms, correctness of programs, formal specification of large systems. Prerequisite: CMPSC 461.

CSE 521. COMPILER CONSTRUCTION (3) Design and implementation of compilers.

CSE 522. SEMANTICS OF PROGRAMMING LANGUAGES (3) Operational, axiomatic, and denotational semantics of programming languages; fixpoint theory of computation, verification of recursive programs; goto statements and continuations. Prerequisite: CMPSC 461.

CSE 530. FUNDAMENTALS OF COMPUTER ARCHITECTURE (3) Advances in computer architecture, Pipelining, parallelism and multiprocessing. Prerequisite: CMPEN 431.

CSE 531. PARALLEL PROCESSORS AND PROCESSING (3) Parallel processor organization; basic algorithms suitable for such systems; parallel sorting and interconnection networks; applications and discussion of specific processors. Prerequisite: CSE 530.

CSE 532. MULTIPROCESSOR ARCHITECTURE (3) Fundamental structures of multiprocessors; interprocess communications; system deadlocks and protection, scheduling strategies, and parallel algorithms; example multiprocessor systems. Prerequisite: CSE 530.

CSE 533. UNCONVENTIONAL MACHINE ARCHITECTURE (3) Shortcomings of the Von-Neumann model; resolution of those shortcomings; architectural effects of these solutions; effects of technological advances. Prerequisite: CSE 530.

CSE 536. FAULT TOLERANT SYSTEMS (3) Attributes of fault-tolerant systems and their definitions; reliability and availability techniques; maintainability and testing techniques; practice of reliable system design. Prerequisite: CSE 530.

CSE 537. INTERCONNECTION NETWORKS IN HIGHLY PARALLEL COMPUTERS (3) Study and comparative analysis of various classes of interconnection networks; routing problems; fault tolerance issues; performance evaluation; VLSI implementation. Prerequisite: CSE 530.

CSE 539. TOPICS IN COMPUTER ARCHITECTURE (3) Study of current advanced issues in design, implementation and applications of complex computer system. Prerequisite: CSE 530.

CSE 541. DATABASE SYSTEMS I (3) Data models and relational database design; database integrity and concurrency control; distributed database design and concurrency control; query optimization. Prerequisite: CMPSC 431W.

CSE 542. DATABASE SYSTEMS II (3) Important in-depth issues relating to data engineering such as distributed databases, information management for engineering design, data models. Prerequisite: CSE 541.

CSE 543. COMPUTER SECURITY (3) Specification and design of secure systems; security models, architectural issues, verification and validation, and applications in secure database management systems. Prerequisite: CMPSC 461.

CSE 550 (MATH 550). NUMERICAL LINEAR ALGEBRA (3) Solution of linear systems, sparse matrix techniques, linear least squares, singular value decomposition, numerical computation of eigenvalues and eigenvectors. Prerequisite: CMPSC 456 or MATH 441.

CSE 551 (MATH 551). NUMERICAL SOLUTION OF ORDINARY DIFFERENTIAL EQUATIONS (3) Methods for initial value and boundary value problems. Convergence and stability analysis, automatic error control, stiff systems, boundary value problems. Prerequisite: CMPSC (MATH) 451 or CMPSC (MATH) 456.

(3) Finite difference methods for elliptic, parabolic, and hyperbolic differential equations; solutions techniques for discretized systems; finite element methods for elliptic problems. Prerequisite: CMPSC (MATH) 451 or CMPSC (MATH) 456; MATH 402 or MATH 404.

CSE 553 (MATH 553). INTRODUCTION TO APPROXIMATION THEORY (3) Interpolation; remainder theory; approximation of functions; error analysis; orthogonal polynomials; approximation of linear functionals; functional analysis applied to numerical analysis. Prerequisite: MATH 401; 3 credits in Computer Science and Engineering (CSE).

CSE 554 (EE 554). ERROR CORRECTING CODES FOR COMPUTERS AND COMMUNICATION (3) Block, cyclic and convolutional codes. Circuits and algorithms for decoding. Application to reliable communication and fault-tolerant computing. Prerequisite: CMPEN 362.

CSE 555 (MATH 555). NUMERICAL OPTIMIZATION TECHNIQUES (3) Unconstrained and constrained optimization methods, linear and quadratic programming, software issues, ellipsoid and Karmarkar's algorithm, global optimization, parallelism in optimization. Prerequisite: CMPSC (MATH) 456.

CSE 556 (MATH 556). FINITE ELEMENT METHODS (3) Sobolev spaces, variational formulations of boundary value problems; piecewise polynomial approximation theory, convergence and stability, special methods and applications. Prerequisite: MATH 502, MATH 552.

CSE 557. CONCURRENT MATRIX COMPUTATION (3) This course discusses matrix computations on architectures that exploit concurrency. It will draw upon recent research in the field. Prerequisites: Either CMPSC 451, CMPSC 455, CMPSC 450, MATH 451 or MATH 455.

CSE 560. THEORY OF GRAPHS AND NETWORKS (3) Theory and applications of graphs, including structure of graphs, network analysis, and algorithms for computer solution of graph-theoretic problems. Prerequisite: CSE 565.

CSE 561. SEQUENTIAL AND PARALLEL COMPLEXITY THEORY (3) Models of sequential and parallel computers; relationships between complexity measures; simulations and universality; resource-bounded hierarchies; lower-bound techniques. Prerequisite: CMPSC 468.

CSE 562. PROBABILISTIC ALGORITHMS (3) Design and analysis of probabilistic algorithms, reliability problems, probabilistic complexity classes, lower bounds. Prerequisite: CSE 565.

CSE 563. PARALLEL ALGORITHMS (3) Computational aspects of VLSI: synthesis/analysis of efficient parallel and distributed algorithms; computational structures; models of parallel computers and their interrelationships. Prerequisite: CSE 565.

CSE 564. COMPLEXITY OF COMBINATORIAL PROBLEMS (3) NP-completeness theory; approximation and heuristic techniques; discrete scheduling; additional complexity classes. Prerequisite: CSE 565.

CSE 565. ALGORITHM DESIGN AND ANALYSIS (3) An introduction to algorithmic design and analysis. Prerequisite: CMPSC 468.

CSE 568. THEORY OF FORMAL LANGUAGES AND AUTOMATA (3) Generation and recognition of formal languages, grammars, Chomsky's hierarchy of languages, closure properties, characterization by automata, algebraic properties, complexity classification. Prerequisite: CMPSC 468.

CSE 571. SWITCHING AND SEQUENTIAL MACHINE THEORY (3) Advanced treatment of switching and machine theory, minimization of machines, state assignment, hazard analysis. Prerequisite: CMPEN 471.

CSE 572. MICROPROCESSORS AND SYSTEMS DESIGN (3) Contemporary design issues in microprocessors, including advanced features and system integration issues. Prerequisite: CMPEN 431, CMPEN 472.

CSE 575. ARCHITECTURE OF ARITHMETIC PROCESSORS (3) Algorithms and techniques for designing arithmetic processors; conventional algorithms and processor design; high-speed algorithms and resulting architectural structures. Prerequisite: CMPEN 411.

CSE 577. VLSI SYSTEMS DESIGN (3) Engineering design of large-scale integrated circuits, systems, and applications; study of advanced design techniques, architectures, and CAD methodologies. Prerequisite: CMPEN 411.

CSE 578. VLSI COMPUTER-AIDED DESIGN TOOLS (3) VLSI circuit design tools: placement, routing, extraction, design rule checking, graphic editors, simulation, verification, minimization, silicon compilation, test pattern generation. Prerequisite: CMPEN 411.

CSE 583. PATTERN RECOGNITION--PRINCIPLES AND APPLICATIONS (3) Decision-theoretic classification, discriminant functions, pattern processing and feature selection, syntactic pattern recognition, shape analysis and recognition.

CSE 585 (EE 585). DIGITAL IMAGE PROCESSING II (3) Advanced treatment of image processing techniques; image restoration; image segmentation, texture, and mathematical morphology. Prerequisite: CMPEN 455 or EE 455.

CSE 586 (EE 586). TOPICS IN COMPUTER VISION (3) Discussion of recent advances and current research trends in computer vision theory, algorithms, and their applications. Prerequisite: CMPEN 454 or EE 454.

CSE 587. INTERFACES TO VIRTUAL ENVIRONMENTS (3) Principles and techniques for sensing and interpretation of human input to computer; virtual reality; augmented realtiy; issues in multimodality, learning. Prerequisite: Graduate Standing.

CSE 588 (MATH 588). COMPLEXITY IN COMPUTER ALGEBRA (3) Complexity of integer multiplication, polynomial multiplication, fast Fourier transform, division, and calculating the greatest common divisor of polynomials. Prerequisite: CMPSC 465.

CSE 590. COLLOQUIUM (1-3) Continuing seminars that consist of a series of individual lectures by faculty, students, or outside speakers.

CSE 591. RESEARCH EXPERIENCE IN COMPUTER SCIENCE AND ENGINEERING (1) Research experience for new doctoral students in Computer Science and Engineering. Research is performed in conjunction with another 500-level CSE course. Concurrent: enrollment in another 500 level CSE course.

CSE 594. RESEARCH TOPICS (1) Supervised student activities on research projects identified on an individual or small-group basis.

Karen Corl, Graduate Secretary
Document Actions