CSCE Courses

Current students in the department can also find course information in the advising courses on eLearning. Contact the advising office for any additional information.

This listing is intended for informational use only. Refer to the Texas A&M Undergraduate and Graduate Catalogs for the official listings of available courses.

Roman numerals to the right of the credit indicate the semester in which it is usually offered - "I" for fall, "II" for spring, and "S" for summer. Here is a brief description of all the undergraduate level courses the program has to offer:

Undergraduate Courses

CSCE 110. Programming I. (3-2). Credit 4. IIIS

Basic concepts in using computation to enhance problem solving abilities; nomenclature and historical perspective of computers and computing; internal representation of data; software design principles and practices; editing and execution of student-written programs.

CSCE 111. Introduction to Computer Science Concepts and Programming. (3-2). Credit 4.

Basic concepts, nomenclature, and historical perspective of computers and computing; problem solving and software design principles, including abstraction, modularity, data representation, documentation, portability, structured and object oriented programming; software engineering concepts including requirements definition, testing, and maintenance considerations; development and execution of student written programs.

CSCE 113. Intermediate Programming and Design. (1-3). Credit 2.

Continuation of ENGR 112; programming and design with C++; topics include design and implementation of functions, classes, and class hierarchies; software development strategies; error handling and exceptions; testing and debugging; type safety; strings; templates and the STL; graphics and GUIs; mathematical computation; and principles of object-oriented programming.

Prerequisites: Knowledge of C++ programming, class design, portable graphics, and parameterized types and their implementations.

CSCE 121. Introduction to Program Design and Concepts. (3-2). Credit 4.

Computer programming syntax for primitive types, control structures, vectors, strings, structs, classes, functions, file I/O, exceptions and other programming constructs, plus the use of class libraries; practice in solving problems with computers; includes the execution of student written programs in C++.

Prerequisite: Programming course (high school or college).

CSCE 181. Introduction to Computing. (1-0). Credit 1.

Introduction to the broad field of computing; presentations from industry and academia about how computer science concepts are used in research and end products; includes a major writing component.

CSCE 206. (BCIS 1420, COSC 1420) Structured Programming in C. (3-2). Credit 4.

Basic concepts, nomenclature and historical perspective of computers and computing; internal representation of data; software design principles and practice; structured and object-oriented programming in C; use of terminals, operation of editors and executions of student-written programs.

CSCE 221. Data Structures and Algorithms. (3-2). Credit 4.

Specification and implementation of basic abstract data types and their associated algorithms: stacks, queues, lists, sorting and selection, searching, graphs, and hashing; performance tradeoffs of different implementations and asymptotic analysis of running time and memory usage; includes the execution of student programs written in C++.

Prerequisite: CSCE 113 or121; Corequisite CSCE 222.

CSCE 222. Discrete Structures for Computing. (3-0). Credit 3.

Provide mathematical foundations from discrete mathematics for analyzing computer algorithms, for both correctness and performance; introduction to models of computation, including finite state machines and Turing machines.

Prerequisite: MATH 151. Cross-listed with ECEN 222.

CSCE 285. Directed Studies. Credit 1 to 4.

Special project in computer science. Project must be approved by the department.

Prerequisite: Approval of department head.

CSCE 289. Special Topics in... Credit 1 to 4.

Selected topics in an identified area of computer science. May be repeated for credit.

Prerequisite: Approval of instructor.

CSCE 291. Research. Credit 1 to 4.

Research conducted under the direction of faculty member in computer science. May be repeated 2 times for credit.

Prerequisites: Freshman or sophomore classification and approval of instructor.

CSCE 310. Database Systems. (3-0). Credit 3. IIIS

File structures and access methods; database modeling, design and user interface; components of database management systems; information storage and retrieval, query languages, high-level language interface with database systems.

Prerequisite: CSCE 221.

CSCE 312. Computer Organization. (3-2). Credit 4.

Introduction to computer systems from programmer's perspective: simple logic design, data representation and processor architecture, programming of processors, memory, control flow, input/output, and performance measurements; hands-on lab assignments.

Prerequisite: CSCE 221.

CSCE 313. Introduction to Computer Systems. (3-2). Credit 4.

Introduction to system support for application programs, both on single node and over network: OS application interface, inter-process communication, introduction to system and network programming, and simple computer security concepts; hands-on lab assignments.

Prerequisite: CSCE 312 or corequisite CSCE 350.

CSCE 314. Programming Languages. (3-0). Credit 3.

Explores the design space of programming languages via an in-depth study of two programming languages, one subject-oriented (Java), one functional (Haskell); focuses on idiomatic uses of each language, and on features characteristic for each language.

Prerequisite: CSCE 221.

CSCE 315. Programming Studio. (2-2). Credit 3.

Intensive programming experience that integrates core concepts in Computer Science and familiarizes students with a variety of programming/development tools and techniques; students work on 2 or 3 month-long projects each emphasizing a different specialization within Computer Science; focuses on programming techniques to ease code integration, reusability, and clarity.

Prerequisites: CSCE 312 and 314; or CSCE 350; corequisite CSCE 313.

CSCE 332. Programming Language Design. (3-0). Credit 3. III

Design of high-level languages; criteria for language selection; specification techniques for syntax and semantics; trends in high-level language design and introduction to programming in LISP. Prerequisite 221.

CSCE 350. Computer Architecture and Design. (3-2). Credit 4. IIIS

Computer architecture and design; use of register transfer languages and simulation tools to describe and simulate computer operations; central processing unit organization; microprogramming; input/output and memeory system architectures.

Prerequisite: ECEN 248. Cross-listed with ECEN 350

CSCE 410. Operating Systems. (3-0). Credit 3. IIIS

Hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction; algorithms for CPU scheduling, memory and general resource allocation; process coordination and management; case studies of several operating systems.

Prerequisite: CSCE 315.

CSCE 411. Design and Analysis of Algorithms. (3-0). Credit 3.

Study of computer algorithms for numeric and non-numeric problems; design paradigms; analysis of time and space requirements of algorithms; correctness of algorithms; NP-completeness and undecidability of problems.

Prerequisites: CSCE 315.

CSCE 420. Artificial Intelligence. (3-0). Credit 3. IIIS

Fundamental concepts and techniques of intelligent systems; representation and interpretation of knowledge on a computer; search strategies and control; active research areas and applications such as notational systems, natural language understanding, vision systems,planning algorithms, intelligent agents and expert systems.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 431. Software Engineering. (2-2). Credit 3. IIIS

Application of engineering approach to computer software design and development; life cycle models, software requirements and specification; conceptual model design; detailed design; validation and verification; design quality assurance; software design/development environments and project management.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 433. Formal Languages and Automata. (3-0). Credit 3. I

Basic types of abstract languages and their acceptors; the Chomsky hierarchy; solvability and recursive function theory; application of theoretical results to practical problems.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 434. Compiler Design. (3-0). Credit 3. II

Programming language translation: functions and general organization of compiler design and interpreters theoretical and implementation aspects of lexical scanners; parsing of context free languages; code generation and optimization; error recovery.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 435. Parallel Computing. (3-0). Credit 3.

Overview of parallel computing technology and programming methods; includes multiprocessor architectures, programming tools, parallel performance, parallel algorithms, and applications of parallel computing.

Prerequisites: CSCE 315 and junior or senior classification or approval of instructor.

CSCE 436. Computer-Human Interaction. (3-0). Credit 3.

Comprehensive study of the Computer-Human Interaction (CHI) area; includes history and importance of CHI; CHI design theories; modeling of computer users and interfaces; empirical techniques for task analysis and interface design; styles of interaction and future directions of CHI including hypermedia and computer-supported collaborative work.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 438. Distributed Objects Programming. (3-0). Credit 3.

Principles of distributed computing and programming with current paradigms, protocols, and application programming interfaces including Sockets, RMI, CORBA, IDL, Servlets, Web Services; security issues with public/private keys, digital signatures, forms and GUI based applications with multi-tier components, database connectivity and storing/streaming data structured using XML.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 440. Quantum Algorithms. (3-0). Credit 3.

Introduction to the design and analysis of quantum algorithms; basic principles of the quantum circuit model; gives a gentle introduction to basic quantum algorithms; reviews recent results in quantum information processing.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 441. Computer Graphics. (3-0). Credit 3. IIIS

Principles of interactive computer graphics; 2-D and 3-D rendering pipelines, including geometric object and view transformations, projections, hidden surface removal, and rasterization; lighting models for local and global illumination; hierarchical models of 3-D objects; systems and libraries supporting display and user interaction.

Prerequisite: CSCE 221 or approval of instructor.

CSCE 442. Scientific Programming. (3-0). Credit 3. II

Introduction to numerical algorithms fundamental to scientific and engineering applications of computers; elementary discussion of error; algorithms, efficiency; polynomial approximations, quadrature and systems of algebraic and differential equations.

Prerequisites: Knowledge C, or C++; or Fortran; MATH 304 or 308 or concurrent enrollment in one of these.

CSCE 443. Game Development. (2-2). Credit 3.

Aesthetic and technical aspects of computer game development, including game mechanics, story development, content creation and game programming; includes game design, interface design, 3D modeling and animation, graphics algorithms, shader programming and artificial intelligence; group project includes the design and development of a game from start to finish.

Prerequisites: CSCE 441 or VIST 486 or approval of instructor. Cross-listed with VIST 487.

CSCE 444. Structures of Interactive Information. (3-0). Credit 3.

A systems approach to the programming,design, authoring and theory of hypermedia; object-oriented visual and interactive programming; visual design, including color, space, text and layering; the reference as a metadisciplinary structure; collecting and sampling; ontologies, maps and navigation as means of structuring information; create dynamic hypermedia that is expressive and interpretive.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 445. Computers and New Media. (3-0). Credit 3. II

Potential and realized impact of computers in the design of new media; relationship between authors and readers of interactive material; influence of media design on the content expressed.

Prerequisite:CSCE 221 or approval of instructor.

CSCE 452. Robotics and Spatial Intelligence. (3-0). Credit 3.

Algorithms for executing spatial tasks; path planning and obstacle aance in two- and three-dimensional robots--configuration space, potential field,free-space decomposition methods; stable grasping and manipulation; dealing with uncertainty; knowledge representation for planning--geometric and symbolic models of the environment; task-level programming;learning.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 456. Real-Time Computing. (3-3). Credit 4.

Introduction to principles and applications of real-time computing;system architecture; D/A and A/D conversion; synchronous data acquisition and analysis; computers in real-time control; asynchronous monitoring and control; resource scheduling; interfacing issues;lectures and laboratory.

Prerequisites: ECEN 248; MATH 251; knowledge of C or Ada, or approval of instructor. 

CSCE 462. Microcomputer Systems. (2-2). Credit 3. II

Microcomputers as components of systems; VLSI processor and coprocessor architectures, addressing and instruction sets; I/O interfaces and supervisory control;VLSI architectures for signal processing; integrating special purpose processors into a system.

Prerequisite: CSCE 313.

CSCE 463. Networks and Distributed Processing. (3-0). Credit 3. III

Basic hardware/software, architectural components for computer communications; computer networks, switching, routing,protocols and security;multiprocessing and distributed processing; interfacing operating systems and networks; case studies ofexisting networks and network architectures.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 464. Wireless and Mobile Systems. (3-0). Credit 3.

Introduction to wireless and mobile systems; wireless communication fundamentals; wireless medium access control design; transmission scheduling,network and transport protocols over wireless design, simulation and evaluation; wireless capacity;telecommunication systems; vehicular, adhoc, and sensor network systems; wireless security; mobileapplications.

Prerequisite: CSCE 313; junior or senior classification or approval of instructor.

CSCE 465. Computer and Network Security. (3-0). Credit 3.

Fundamental concepts and principles of computer security, operating system and network security, secret key and public key cryptographic algorithms, hash functions, authentication, firewalls and intrusion detention systems, IPSec and VPN, wireless and web security.

Prerequisite: CSCE 313; junior or senior classification or approval of instructor.

CSCE 469. Advanced Computer Architecture. (3-0). Credit 3.

Introduction to advanced computer architectures including memory designs, pipeline techniques, and parallel structures such as vector computers and multiprocessors.

Prerequisite:  ECEN 469.

CSCE 470. Information Storage and Retrieval. (3-0). Credit 3.

Representation of, storage of and access to very large multimedia document collections; fundamental data structures and algorithms of current information storage and retrieval systems and relates various techniques to design and evaluation of complete retrieval systems.

Prerequisite: CSCE 315 or approval of instructor.

CSCE 481. Seminar. (0-2). Credit 1. IIIS

Investigation and report by students on topics of current interest in computer science.

Prerequisite: Junior or senior classification.

CSCE 482. Senior Capstone Design. (1-6). Credit 3.

Project-based course to develop system integration skills for solving real-world problems in computer science; significant team software project that integrates advanced concepts across computer science specializations; projects require design, implementation, documentation and demonstration, as well as design methodology, management process and teamwork.

Prerequisites: Senior classification; at least two CSCE courses from one track including 411.

CSCE 483. Computer Systems Design. (1-6). Credit 3.

Engineering design; working as a design-team member, conceptual design methodology, design evaluations, total project planning and management techniques, design optimization, systems manufacturing costs considerations; emphasis placed upon students' activities as design professionals.

Prerequisites: CSCE 315 and 462; senior classification.

CSCE 485. Directed Studies. Credit 1 to 6. IIIS

Permits work on special project in computer science. Project must be approved by the department.

Prerequisite: Senior classification.

CSCE 489. Special Topics in ... Credit 1 to 4.

Special topics in computer science that are new or unique that are not covered in existing courses.

CSCE 491. Research Credit 1 to 4.

Research conducted under the direction of faculty member in computer science. May be repeated 2 times for credit. Registration in multiple sections of this course is possible within a given semester provided that the per semester credit hour limit is not exceeded.

Prerequisites: Junior or senior classification and approval of instructor.


Graduate Courses

CSCE 601. Programming with C and Java. (3-0). Credit 3.

Survey of the C and Java programming languages, including principles of procedural and object-oriented languages; multi-disciplinary applications including business, Internet and engineering problems.

Prerequisite: Graduate classification.

CSCE 602. Object-Oriented Programming, Development and Software Engineering. (3-0). Credit 3.

Teaches students Object-Oriented Programming in C++; software engineering techniques presented to teach how to build high quality software; semester project gives quasi-real-world experience with issues such as requirements capture and object-orient development.

Prerequisite: CSCE 601 or approval of instructor; graduate classification.

CSCE 603. Database Systems and Applications. (3-0). Credit 3.

Introduction to the concepts and design methodologies of database systems for non-computer science majors; emphasis on E. F. Codd's relational model with hands-on design application.

Prerequisite: CSCE 601; graduate classification. Credit will not be given for both CSCE 310 and 603.

CSCE 604. Programming Languages. (3-0). Credit 3.

Study in the design space of programming languages, covering language processing, formalisms to describe semantics of programming languages, important concepts found in current programming languages, and programming paradigms.

Prerequisite: Graduate classification.

CSCE 605. Compiler Design. (3-0). Credit 3.

Advanced topics in compiler writing; parser generators and compiler-compilers; dynamic storage and scope resolution; data flow analysis and code optimization.

Prerequisite: CSCE 434.

CSCE 606. Software Engineering. (3-0). Credit 3.

Development of advanced concepts in software engineering; software development environments as a mechanism for enhancing productivity and software quality; the classification, evaluation and selection of methodologies for environments; rapid prototyping and reusability concepts; artificial intelligence techniques applied to software engineering.

Prerequisite: CSCE 431 or approval of instructor.

CSCE 608. Database Systems. (3-0). Credit 3.

Database modeling techniques; expressiveness in query languages including knowledge representation; manipulation languages data models; physical data organization; relational database design theory; query processing; transaction management and recovery; distributed data management.

Prerequisite: CSCE 310 or 603.

CSCE 610. Hypertext/Hypermedia Systems. (3-0). Credit 3.

Comprehensive coverage of Hypertext/Hypermedia; basic concepts and definitions; fundamental components, architectures and models; problems and current solutions; design and implementation issues; and research issues.

Prerequisites: CSCE 310 or 603; CSCE 313.

CSCE 611. Operating Systems and Applications. (3-0). Credit 3.

Review of computer architecture hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction; algorithms for CPU scheduling memory and general resource allocation; process coordination and management; case studies of several operating systems; quality-of-services of operating systems and their impact on applications.

Prerequisite: CSCE 313;graduate classification. Credit will not be given for both CSCE 410 and CSCE 611.

CSCE 612. Applied Networks and Distributed Processing. (3-0). Credit 3.

Fundamentals, including network design and protocol analysis, in the context of computer communications; the course mixes fundamentals with both programming and pragmatic views of engineering issues; it includes network architecture as well as principles of network engineering; focus is on applying principles of layered architecture to analyzing real networks; lab exercises focus on protocol understanding and programming; knowledge of UNIX and C programming helpful, but not required.

Prerequisite: Graduate classification. Credit will not be given for both CSCE 463 and 612.

CSCE 613. Operating Systems. (3-0). Credit 3.

Analysis of algorithms in computer operating systems; sequencing and control algorithms supporting concurrent processes; scheduling algorithms to minimize execution times and mean flow times; algorithms for allocating tasks to processors; allocation of memory (virtual and real); direct access device schedules; auxiliary and buffer storage models.

Prerequisite: CSCE 313 or 611.

CSCE 614. Computer Architecture. (3-0). Credit 3.

Reviews of von Neumann architecture and its limitations; parallel computer structures and concurrent computation; pipeline computers and vectorization methods; array processors, multiprocessor architectures and programming; dataflow computers.

Prerequisite:  CSCE 350/ECEN 350.

CSCE 617. Co-Design of Embedded Systems (CODES). (3-0). Credit 3.

Co-design methodologies of hardware-software systems; models of computation (MOC), system specification, co-simulation, synthesis, and verification; hardware-software implementation; core-based systems and interfaces, performance analysis and optimization; system on chip, power aware design.

Prerequisites: CSCE 462 or equivalent, CSCE 410 and graduate classification.

CSCE 619. Networks and Distributed Computing. (3-0). Credit 3.

Computer network concepts including network architecture, layering, protocols, packet switching and virtual circuits; performance evaluation and design considerations for local area networks; packet distributed networks; satellite networks.

Prerequisite: CSCE 463 or 612.

CSCE 620. Computational Geometry. (3-0). Credit 3.

Design and analysis of algorithms for solving geometrical problems; includes convex hull problems, Voronoi diagrams, range searching and proximity problems.

Prerequisite: CSCE 311. Cross-listed with VIZA 670.

CSCE 621. Language, Library, and Program Design Using C++. (3-0). Credit 3.

Exploration of the interactions among language design, library design, and program design in the context of ISO standard C++ and its proposed extensions; Novel features provided by C++ and the design and programming
techniques supported.

Prerequisites: Graduate classification or approval of instructor; understanding of C++ and experience with software development projects helpful; knowledge of at least one programming language in addition to C and C++.

CSCE 622. Generic Programming.(3-0). Credit 3.

The generic programming approach to design and systematic classification of software components, techniques for achieving correctness, efficiency, and generality of algorithms, data structures, and memory management, methods of structuring a library of generic software components for maximum usability are practiced in a significant design and implementation project.

Prerequisite: CSCE 221.

CSCE 624. Sketch Recognition. (3-0). Credit 3.

Analysis, implementation, and comparison of sketch recognition algorithms, including feature-based, vision-based, geometrical, timing-based, and path-based recognition algorithms. Methods for combing these recognition methods for greater accuracy, using known AI techniques, are also examined.

Prerequisite: Graduate classification.

CSCE 625. Artificial Intelligence.(3-0). Credit 3.

Basic concepts and methods of artificial intelligence; Heuristic search procedures for general graphs; game playing strategies; resolution and rule based deduction systems; knowledge representation; reasoning with uncertainty.

Prerequisite: CSCE 221.

CSCE 626. Parallel Algorithm Design and Analysis. (3-0). Credit 3.

Design of algorithms for use on highly parallel machines; area-time complexity of problems and general lower bound theory; application (of these concepts) to artificial intelligence, computer vision and VLSI design automation.

Prerequisite: CSCE 221.

CSCE 627. Theory of Computability. (3-0). Credit 3.

Formal models of computation such as pushdown automata; Turing machines and recursive functions; unsolvability results; complexity of solvable results.

Prerequisite: CSCE 433.

CSCE 628. Computational Biology.(3-0). Credit 3.

Introduction to computational biology; formulations of biology problems as computational problems; computational approaches to solve problems in genomics and proteomics.

Prerequisite: Graduate classification or approval of instructor. Cross-listed with BICH 628.

CSCE 629. Analysis of Algorithms. (3-0). Credit 3.

Concrete algorithm design and analysis; abstract models to analyze the complexity of problems; NP-Completeness; approximation and probabilistic algorithms.

Prerequisite: CSCE 411.

CSCE 630. Speech Processing. (3-0). Credit 3.

Speech production and perception (speech apparatus, articulatory/ auditory phonetics); mathematical foundations (sampling, filtering, probability, pattern recognition); speech analysis and coding (short-time Fourier analysis, linear prediction, cesptrum); speech recognition (dynamic time warping, hidden Markov models, language models); speech synthesis (front-end, back-end); speech modification (overlap-add, enhancement, voice conversion).

Prerequisites: ECEN 314 or equivalent or approval of instructor. Basic knowledge of signals and systems, linear algebra, probability and statistics. Programming experience in a high-level language is required.

CSCE 631. Intelligent Agents. (3-0). Credit 3.

On the design and implementation of Intelligent Agents and coordination mechanisms among multiple agents, ranging from theoretical principles to practical methods for implementation.

Prerequisite: CSCE 420 or CSCE 625.

CSCE 633. Machine Learning. (3-0). Credit 3.

Machine learning is the study of self-modifying computer systems that can acquire new knowledge and improve their own performance; survey machine learning techniques, which include induction from examples, conceptual clustering, explanation-based learning, exemplar learning and analogy, discovery and genetic algorithms.

Prerequisite: CSCE 420 or 625.

CSCE 634. Intelligent User Interfaces. (3-0). Credit 3.

Intersection of artificial intelligence and computer-human interaction: emphasis on designing and evaluating systems that learn about and adapt to their users, tasks, and environments.

Prerequisite: Graduate classification and approval of instructor.

CSCE 635. AI Robotics. (3-1). Credit 3.

Introduction and survey of artificial intelligence methods for mobile robots (ground, aerial, or marine) for science and engineering majors; theory and practice of unmanned systems, focusing on biological and cognitive principles which differ from control theory formulations.

CSCE 636. Neural Networks. (3-0). Credit 3.

Basic concepts in neural computing; functional equivalence and convergence properties of neural network models; associative memory models; associative, competitive and adaptive resonance models of adaptation and learning; selective applications of neural networks to vision, speech, motor control and planning; neural network modeling environments.

Prerequisites: Math 304 and 308 or approval of instructor.

CSCE 637. Complexity Theory.(3-0). Credit 3.

Deterministic, non-deterministic, alternating and probabilistic computations; reducibilities; P, NP and other complexity classes; abstract complexity; time, space and parallel complexity; and relativized computation.

Prerequisites: CSCE 627 or approval of instructor.

CSCE 639. Fuzzy Logic and Intelligent Systems. (3-0). Credit 3.

Introduces the basics of fuzzy logic and its role in developing intelligent systems; topics include fuzzy set theory, fuzzy rule inference, fuzzy logic in control, fuzzy pattern recognition, neural fuzzy systems and fuzzy model identification using genetic algorithms.

Prerequisite: CSCE 625 or approval of instructor. Cross-listed with MEEN 676.

CSCE 640. Quantum Algorithms. (3-0). Credit 3.

Introduction to the design and analysis of quantum algorithms; basic principles of the quantum circuit model; gives a gentle introduction to basic quantum algorithms; reviews recent results in quantum information processing.

Prerequisite: CSCE 629 or approval of instructor.

CSCE 641. Computer Graphics. (3-0). Credit 3.

Representations of 3-dimensional objects, including polyhedral objects, curved surfaces, volumetric representations and CSG models; techniques for hidden surface/edge removal and volume rendering; illumination and shading; anti-aliasing; ray tracing; radiosity; animation; practical experience with state-of-the-art graphics hardware and software.

Prerequisite: CSCE 441. Cross-listed with VIZA 672.

CSCE 643. Seminar in Intelligent Systems and Robotics. (3-0). Credit 3.

Problems, methods and recent developments in intelligent systems and robotics. This course may be taken at multiple times for credit as content varies.

Prerequisite: Approval of instructor.

CSCE 644. Cortical Networks. (3-0). Credit 3.

The architecture of the mammalian cerebral cortex; its modular organization and its network for distributed and parallel processing; cortical networks in perception and memory; neuronal microstructure and dynamical simulation of cortical networks; the cortical network as a proven paradigm for the design of cognitive machines.

Prerequisites: CSCE 420 or CSCE 625 and 636 and graduate classification.

CSCE 645. Geometric Modeling. (3-0). Credit 3.

Geometric and solid modeling concepts. Freeform curves and surfaces (splines and Bezier) with their relational, intersectional and global mathematical properties. Parametric representation of solids, topology of closed curved surfaces, boundary concepts and Boolean/Euler operators. Construction and display of curves and surfaces, and solid models.

Prerequisite: CSCE 441 and 442 or equivalent. Cross-listed with VIZA 675.

CSCE 646. The Digital Image. (3-2). Credit 4.

Tools and techniques for generation, handling and analysis of two dimensional digital images; image representation and storage; display, media conversion, painting and drawing; warping; color space operations, enhancement, filtering and manipulation.

Prerequisite: Graduate classification or approval of instructor. Cross-listed with VIZA 654.

CSCE 647. Image Synthesis. (3-2). Credit 4.

Principles of image synthesis from 3-D scene descriptions; includes local and global illumination, shading, shadow determination, hidden surface elimination, texturing, raster graphics algorithms, transformations and projects.

Prerequisite: Approval of instructor. Crosslisted with VIZA 656.

CSCE 648. Computer Aided Sculpting. (3-2). Credit 3.

Mathematical and artistic principles of 3-D modeling and sculpting; includes proportions, skeletal foundation, expression and posture, line of action; curves, surfaces and volumes, interpolation and approximation, parametric and rational parametric polynomials, constructive solid geometry, and implicit representations.

Prerequisite: Approval of instructor. Cross-listed with VIZA 657.

CSCE 649. Physically-Based Modeling.(2-2). Credit 3.

Physical simulation as used in choreography, geometric modeling, and the creation of special effects in computer graphics: a variety of problems and techniques explored which may include particle-methods, modeling and simulation of flexible materials, kinematics and constraint systems.

Prerequisite: Approval of instructor. Cross-listed with VIZA 659.

CSCE 653. Computer Methods in Applied Sciences. (3-0). Credit 3.

Classical and modern techniques for the computational solution of problems of the type that traditionally arise in the natural sciences and engineering; introductions to number representation and errors, locating roots of equations, interpolation, numerical integration, linear algebraic systems, spline approximations, initial-value problems for ordinary differential equations and finite-difference methods for partial differential equations.

Prerequisite: CSCE 442 or MATH 417; graduate classification.

CSCE 654. Supercomputing. (3-0). Credit 3.

Principles of high-performance scientific computing systems, vectorization,programming on supercomputers, numerical methods for supercomputers, performance measuring of supercomputers, multitasking.

Prerequisites: CSCE 614.

CSCE 655. Human Centered Systems and Information. (3-0). Credit 3.

A foundation course in human centered systems and information; understanding and conceptualizing interaction; design and prototyping methodologies; evaluation frameworks; visual design using color, space, layering, and media; information structuring and visualization; animation and games; individual and team programming projects.

Prerequisite: Graduate classification or CSCE 436 or 444 or approval of instructor.

CSCE 656. Computers and New Media.(3-0). Credit 3.

This class investigates the potential and realized impact of computers in the design of new media, explores the variety of relationships between authors and readers of interactive materials, and explores the influence of media design and content expressed.

Prerequisite: Graduate classification.

CSCE 657. High Performance Computing for Earth Science and Petroleum Engineering. (3-0). Credit 3.

Numerical simulation of problems in Earth Sciences and Petroleum Engineering using high performance computing (HPC); development of a parallel reservoir simulator.

Prerequisite: Graduate classification. Cross-listed with PETE 657.

CSCE 658. Randomized Algorithms.(3-0). Credit 3.

This course gives an introduction to randomized algorithms; selected tools and techniques from probability theory and game theory are reviewed, with a view towards algorithmic applications; the main focus is a thorough discussion of the main paradigms, techniques, and tools in the design and analysis of randomized algorithms; a detailed analysis of numerous algorithms illustrates the abstract concepts and techniques.

Prerequisite: Graduate classification.

CSCE 659. Parallel/Distributed Numerical Algorithms and Applications. (3-0). Credit 3.

A unified treatment of parallel and distributed numerical algorithms; parallel and distributed computation models, parallel computation of arithmetic expressions; fast algorithms for numerical linear algebra, partial differential equations and nonlinear optimization.

Prerequisite: CSCE 653; MATH 304. Cross-listed with ECEN 659.

CSCE 660. Computational Linear Algebra. (3-0). Credit 3.

Techniques in matrix computation: elimination methods, matrix decomposition, generalized inverses, orthogonalization and least-squares, eigenvalue problems and singular value decomposition, iterative methods and error analysis.

Prerequisite: CSCE 442 or equivalent or MATH 417 or equivalent. Cross-listed with MATH 660.

CSCE 661. Integrated Systems Design Automation. (3-0). Credit 3.

VLSI design systems and their levels of abstracting; algorithms for general VLSI design and implementation; computer aided design tools and principles; physical and logical models.

Prerequisite: Graduate classification.

CSCE 662. Distributed Processing Systems. (3-0). Credit 3.

Principles and practices of distributed processing; protocols, remote procedure calls; file sharing; reliable system design; load balancing; distributed database systems; protection and security; implementation.

Prerequisite: CSCE 313 and 463 or CSCE 612.

CSCE 663. Real-Time Systems. (3-0). Credit 3.

Taxonomy of real-time computer systems; scheduling algorithms for static and dynamic real-time tasks; hard real-time communications protocols; programming languages and environments for real-time systems; case studies of real-time operating systems.

Prerequisites: CSCE 313 and 463 or 611, or approval of instructor.

CSCE 664. Wireless and Mobile Systems. (3-0). Credit 3.

Wireless and mobile systems; wireless communication fundamentals; wireless medium access control design; transmission scheduling; network and transport protocols over wireless design, simulation and evaluation; wireless capacity; telecommunication systems; vehicular, adhoc, and sensor network systems; wireless security; mobile applications.

Prerequisite: CSCE 463 or CSCE 464 or approval of instructor.

CSCE 665. Advance Networking and Security. (3-0). Credit 3.

Security aspects of various network protocols including investigation and tool development using "live'' machines and networks.

Prerequisites: Graduate classification and approval of instructor.

CSCE 666. Pattern Analysis. (3-0). Credit 3.

Introduction to methods for analysis, classification and clustering of high dimensional data in Computer Science applications. Course contents include density and parameter estimation, linear feature extraction, feature subset selection, clustering, Bayesian and geometric classifiers, non-linear dimensionality reduction methods from statistical learning theory and spectral graph theory, Hidden Markov models, and ensemble learning.

Prerequisites: MATH 222, MATH 411 (or equivalent) and graduate classification.

CSCE 667. Seminar in Human-Centered Computing. (3-0). Credit 3.

Problems, methods and recent developments in human-centered computing and information. May be repeated for credit as content varies.

Prerequisites: Graduate classification.

CSCE 668. Distributed Algorithms and Systems.(3-0). Credit 3.

Introduction to fundamental algorithmic results in distributed computing systems; leader election, mutual exclusion, consensus, logical time and causality, distributed snapshots, algorithmic fault tolerance, shared memory, clock synchronization.

Prerequisites: CSCE 411 or equivalent; approval of instructor.

CSCE 669. Computational Optimization.(3-0). Credit 3.

Combinatorial theory of polytopes as a tool for the solution of combinatorial optimization problems; applications to max flow, matching and matroids; geometric interpretation of the results indicating the profound role that polyhedral combinatorics play in the design and complexity of approximation algorithms.

Prerequisites: CSCE 629.

CSCE 670. Information Storage and Retrieval. (3-0). Credit 3

Representation, storage, and access to very large multimedia document collections; fundamental data structures and algorithms of information storage and retrieval systems; techniques to design and evaluate complete retrieval systems, including cover of algorithms for indexing, compressing, and querying very large collections.

Prerequisites: CSCE 310 or 603 or approval of instructor; graduate classification.

CSCE 671. Computer-Human Interaction.(3-0). Credit 3.

Comprehensive coverage of Computer-human Interaction (CHI) including history, importance, design theories, and future direction; modeling computer users and interfaces, empirical techniques for task analysis and interface design, and styles of interaction.

Prerequisites: Graduate classification.

CSCE 672. Computer Supported Collaborative Work. (3-0). Credit 3.

Covers design, implementation and use of technical systems that support people working cooperatively; draws from the research area of Computer Supported Cooperative Work (CSCW) and includes current theoretical, practical, technical and social issues in CSCW and future directions of the field.

Prerequisite: CSCE 671 or 610 or approval of instructor.

CSCE 675. Digital Libraries.(3-0). Credit 3.

Surveys current research and practice in Digital Libraries, which seek to provide intellectual access to large-scale, distributed digital information repositories; current readings from the research literature which covers the breadth of this interdisciplinary area of study.

Prerequisite: graduate classification in computer science.

CSCE 680. Testing and Diagnosis of Digital Systems. (3-0). Credit 3.

The theory and techniques of testing VLSI-based circuits and systems, and design for testability.

Prerequisites: CSCE 321 or CSCE 350 or equivalent; CSCE 220 or 248 or equivalent. Cross-listed with ECEN 680.

CSCE 681. Seminar. (1-0). Credit 1.

Reports and discussion of current research and of selected published technical articles. May not be taken for credit more than once in master's degree program nor twice in PhD program.

CSCE 684. Professional Internship. Credit 1 to 16

Training under the supervision of practicing computer professionals in settings appropriate to the student's professional objectives, away from Texas A&M University campus.

Prerequisites: Approval of the department head and one semester of graduate work completed.

CSCE 685. Directed Studies. Credit 1 to 12.

Research problems of limited scope designed primarily to develop research technique.

CSCE 689. Special Topics in...Credit 1 to 4.

Selected topics in an identified area of computer science. May be repeated for credit.

Prerequisite: Approval of instructor.