600 Level Courses

600-Level Courses

Courses at the 600 level are available to advanced undergraduate students and graduate students.

611. Computer Architecture

(3) An in-depth study of computer systems and architectural design. Topics include processor design, memory hierarchy, external storage devices, interface design, and parallel architectures.

621. Database Management Systems

An Introduction to large-scale database management systems. Topics include data independence, database models, query languages, security, integrity, and concurrency.

631. Software Engineering

(3) A study of fundamental topics in software engineering including software processes, agile software development and project management, requirements engineering, system modeling, design patterns and implementation, and software testing.  Students practice software engineering principles through team projects.

633. Principles of Compiler Design

(3) A study of techniques for compiling computer languages including scanning, parsing, translating, and generating code.

641. Operating Systems

(3) The study of the different modules that compose a modern operating system. In-depth study of concurrency, processor management, memory management, file management and security.

643. Internet Protocols

(3) The study of wide area connectivity through interconnection networks. Emphasis will be placed on Internet architecture and protocols. Topics include addressing, routing, multicasting, quality of service and network security.

646. Parallel Computation

(3) A study of hardware and software issues in parallel computing. Topics include a comparison of parallel architectures and network topologies, and an introduction to parallel algorithms, languages, programming, and applications.

647. GPU Programming

(3) An introduction to general purpose parallel program development on Graphics Processing Units (GPUs). Topics covered will include data parallelism, memory and data locality, parallel algorithm patterns and performance metrics, and application test studies.

648. Computer Security

(3h) Introduction to computer security concepts and associated theory. Detailed coverage of the core concepts of access control, cryptography, trusted computing bases, digital signatures, authentication, network security, and secure architectures. Legal issues, security policies, risk management, certification and accreditation are covered in their supporting roles. Students will learn to analyze, design, and build secure systems of moderate complexity.

652. Numerical Linear Algebra

(3) Numerical methods for solving matrix and related problems in science and engineering. Topics will include systems of linear equations, least squares methods, and eigenvalue computations. Beginning knowledge of a high-level programming language is required. Credit not allowed for both Mathematics 626 and Computer Science 652.

655. Introduction to Numerical Methods

(3) Numerical computations on modern computer architectures; floating-point arithmetic and round-off error. Programming in a scientific/engineering language such as MATLAB, C, or FORTRAN. Algorithms and computer techniques for the solution of problems such as roots of functions, approximation, integration, systems of linear equations and least squares methods. Credit not allowed for both Mathematics 655 and Computer Science 655.

661. Digital Media

(3) An introduction to digital media covering sampling and quantization, resolution, color representation, multimedia file formats, data encoding and compression, multimedia network issues, streaming data, and multimedia programming.

663. Computer Graphics

(3) A study of software and hardware techniques in computer graphics. Topics include line and polygon drawing, hidden line and surface techniques, transformations, and ray tracing.

665. Image Processing Fundamentals

(3) A study of the basic theory and algorithms for image enhancement, restoration, segmentation, and analysis.

671. Artificial Intelligence

(3) An introduction to problems in artificial intelligence. Knowledge representation and heuristic search in areas such as planning, machine learning, pattern recognition, and theorem proving.

685. Bioinformatics

(3) An introduction to bioinformatics and computing techniques essential to current biomedical research. Topics include genome and protein sequence and protein structure databases, algorithms for sequence and structure analysis, and computer architecture and environment considerations. Emphasizes interdisciplinary interaction and communication and includes a project that may use software engineering and project management protocols and require working as part of an interdisciplinary team. Also listed as Physics 685.

687. Computational Systems Biology

(3) Introduction of concepts and development of skills necessary for comprehension of modern systems biology research problems, including both biological and computational aspects. Topics may include microarrays, protein interaction networks, large-scale proteomics experiments, and algorithms and computational approaches for modeling, storing, and analyzing the resulting data sets. Emphasizes interdisciplinary interaction and communication and includes a project that may use software engineering and project management protocols and require working as part of an interdisciplinary team.

691. Selected Topics

(1, 2, or 3) Topics in computer science which are not studied in regular courses or which further examine topics begun in regular courses. P – POI.

693. Individual Study

(1 or 2) Independent study directed by a faculty adviser. By prearrangement.