CSE Course Catalog
Our CSE Course Catalog for the 2009-2010 academic year is available at www.cse.tamu.edu/academics/Course_Catalog_F09.
Department of Computer Science and Engineering
Professors N. M. Amato, R. Bettati, J. Chen, D. K. Friesen, R. Furuta, J. S. Liu, W. M. Lively, R. R. Murphy, U.
W. Pooch, L. Rauchwerger, F. M. C. Shipman, B. Stroustrup (Chair), V. E. Taylor (Head), J. S. Vitter (Provost), D. M. H. Walker, J.
L. Welch, G. N. Williams; Associate Professors Y. Choe, R. Gutierrez-Osuna, T. R. Ioerger, A. Kerne, J. C. Keyser,
A. Klappenecker, D. Loguinov, R. Mahapatra, V. Sarin, S. Sze; Assistant Professors J. Caverlee, J. Chai, G. Dos
Reis, G. Gu, T. Hammond, J. Järvi, A. Jiang, E. J. Kim, S. Schaefer, D. Song, R. Stoleru, T. L. Williams; Senior
Lecturers W. C. Daugherity, J. D. Hurley, L. Hyunyoung, T. S. Leyk, Z. Leyk, M. J. Moore, R. Ward, S. Yurttas
Graduate Course Descriptions 20082009
Undergraduate Course Descriptions 20082009
- CPSC 110. Programming I. (3-2). Credit 4. I, II, S
- Basic concepts, nomenclature and historical perspective of computers and computing; internal representation of data;
software design principles and practices; structured programming in Pascal; use of terminals, operation of editors and
execution of student-written programs.
- CPSC 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. Prerequisite: Course in Pascal or C (high school
or college) or approval of instructor.
- CPSC 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.
- CPSC 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).
- CPSC 181. Introduction to Computing. (1-0). Credit 1.
- Introduce entering students 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.
- CPSC 203. (COSC 1317, 1417) Introduction to Computing. (3-0). Credit 3. I, II, S
- Algorithms, programs and computers; basic programming and program structure; data representation; computer solution
of numerical and non-numerical problems using a high-level programming language, FORTRAN.
- CPSC 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.
- CPSC 211. Data Structures and Their Implementations. (3-2). Credit 4.
- Specification and implementation of basic data structures and abstract data types--linked lists, stacks, queues,
trees and tables; performance tradeoffs of different implementations; asymptotic analysis of running time and memory
usage; compares and contrasts object-oriented language (typically, Java) and non-object-oriented languages (typically,
C); emphasis on adherence to good software engineering principles. Prerequisite: CPSC 111 or approval of instructor.
- CPSC 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: CPSC
121; corequisite MATH 302.
- CPSC 285. Directed Studies. Credit 1 to 4.
- Special project in computer science. Project must be approved by the department. Prerequisite: Approval of department
head.
- CPSC 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.
- CPSC 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.
- CPSC 310. Database Systems. (3-0). Credit 3. I, II, S
- 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: CPSC 211 or 221.
- CPSC 311. Analysis of Algorithms. (3-0). Credit 3. I, II, S
- Design of computer algorithms for numeric and non-numeric problems; relation of data structures to algorithms;
analysis of time and space requirements of algorithms; complexity and correctness of algorithms. Prerequisite: MATH 302;
CPSC 211.
- CPSC 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: CPSC 221.
- CPSC 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: CPSC 312 or corequisite CPSC 350.
- CPSC 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: CPSC 221.
- CPSC 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: CPSC 312 and 314; or CPSC 350; corequisite CPSC 313.
- CPSC 321. Computer Architecture. (3-2). Credit 4. I, II, S
- Basic hardware/software components, assembly language, and functional architecture design of computers; syntax and
semantics of a typical microprocessor assembly language; instruction sets, construction and execution of an assembly
program; the design of I/O modules, memory, control unit and arithmetic unit. Prerequisite: ECEN 220 or 248.
- CPSC 332. Programming Language Design. (3-0). Credit 3. I, II
- 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 CPSC 211 or 221.
- CPSC 350. Computer Architecture and Design. (3-3). Credit 4.
- 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 memory system
architectures. Prerequisite: ECEN 248. Cross-listed with ECEN 350.
- CPSC 410. Operating Systems. (3-0). Credit 3. I, II, S
- 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: CPSC 315.
- CPSC 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:
CPSC 221, 315; MATH 302.
- CPSC 420. Artificial Intelligence. (3-0). Credit 3. I, II, S
- 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: CPSC
315 or approval of instructor.
- CPSC 431. Software Engineering. (2-2). Credit 3. I, II, S
- 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: CPSC 315 or approval of
instructor.
- CPSC 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: CPSC 315 or approval of instructor.
- CPSC 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: CPSC 315 or approval of instructor.
- CPSC 435. Structured Programming in Ada. (3-0). Credit 3.
- The Ada programming language; history and motivation; scalar and composite types; type and object attributes; control
constructs; subprograms; packages and abstract types; numeric types; I/O; program structure; overloading and visibility;
tasking; generics; programming style using Ada, Ada Programming Support Environments; bindings to common utilities,
including GKS, SQL.
- CPSC 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:
CPSC 315 or approval of instructor.
- CPSC 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: CPSC 315 or approval of instructor.
- CPSC 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; review recent results in quantum information processing. Prerequisite:
CPSC 315 or approval of instructor.
- CPSC 441. Computer Graphics. (3-0). Credit 3. I, II, S
- 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 an duser interaction.
Prerequisite: CPSC 211 or 221 or approval of instructor.
- CPSC 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 of Fortran, C, or C++; MATH 304 or MATH 308 or concurrent enrollment in
one of these.
- CPSC 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: CPSC 315 or approval of instructor.
- CPSC 452. Robotics and Spatial Intelligence. (3-0). Credit 3. II
- Algorithms for executing spatial tasks; path planning and obstacle avoidance 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. CPSC 315 or approval of instructor.
- CPSC 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 220 or 248; MATH 251; knowledge of
C or Ada, or approval of instructor.
- CPSC 462. Microcomputer Systems. (2-2). Credit 3. II
- Microcomputers as components of systems; VLSI processor and co-processor architectures, addressing and instruction
sets; I/O interfaces and supervisory control; VLSI architectures for signal processing; integrating special purpose
processors into a system. Prerequisite: CPSC 313.
- CPSC 463. Networks and Distributed Processing. (3-0). Credit 3. I, II
- 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 of existing networks and network architectures. Prerequisite: CPSC 315 or approval of instructor.
- CPSC 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: CPSC 321 or ECEN 350. Cross-listed with ECEN 469.
- CPSC 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: CPSC 315 or approval of instructor.
- CPSC 481. Seminar. (0-2). Credit 1. I, II, S
- Investigation and report by students on topics of current interest in computer science. Prerequisite: Junior or
senior classification.
- CPSC 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 CPSC courses from one track including 411.
- CPSC 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: CPSC 315 and 462; senior classification.
- CPSC 485. Directed Studies. Credit 1 to 6. I, II, S
- Permits work on special project in computer science. Project must be approved by the department. Prerequisite: Senior
classification.
- CPSC 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.
- CPSC 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 Course Descriptions 20082009
- CPSC 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.
- CPSC 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: CPSC 601 or approval of instructor; graduate classification.
- CPSC 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: CPSC 601; graduate classification.
Credit will not be given for both CPSC 310 and 603.
- CPSC 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.
- CPSC 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: CPSC 434.
- CPSC 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: CPSC 431 or approval of
instructor.
- CPSC 607. Software Models and Metrics. (3-0). Credit 3.
- Software models and metrics; productivity predicting techniques; complexity measures; software reliability models;
cost estimation models. Prerequisite: CPSC 431.
- CPSC 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: CPSC 310 or 603.
- CPSC 609. Artificial Intelligence Approaches to Software Engineering. (3-0). Credit 3.
- Artificial Intelligence techniques and approaches to software engineering; revolutionary paradigms and automatic
programming; the knowledge-based assistant in management, specification capture, prototyping and maintenance;
transformational systems and reusable library systems; AI tools for software development; graphical approaches to
software engineering. Prerequisites: CPSC 606 and 625.
- CPSC 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: CPSC
310 and 410.
- CPSC 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: CPSC 311; graduate
classification. Credit will not be given for both CPSC 410 and 611.
- CPSC 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 CPSC 463 and 612.
- CPSC 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: CPSC 410.
- CPSC 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: CPSC 321.
- CPSC 615. Distributed Component Architecture. (3-0). Credit 3.
- Introduce general techniques and approaches of software architecture (e.g., architecture style, ADL, ADME, UML, DSSA,
distributed component and middleware); software life cycles; investigate distributed component architecture (COBRA,
COM/DOM, JavaBeans) as specific examples of architecture for in-depth knowledge. Prerequisite: Knowledge of at least one
object-oriented language (e.g., C++, Java); graduate classification.
- CPSC 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: CPSC 462 or equivalent (CPSC
410) and graduate classification.
- CPSC 618. Resilient Computer Systems. (3-0). Credit 3.
- Impact of reliability on computer and network system design; stochastic models of reliability and availability in
fault-tolerant systems; hardware, software and system interaction, system design for testability, isolation and recovery.
Prerequisite: CPSC 321 or 410. Cross-listed with ECEN 618.
- CPSC 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: CPSC 463.
- CPSC 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: CPSC
311. Cross-listed with VIZA 670.
- CPSC 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: CPSC 211.
- CPSC 623. Parallel Geometric Computing. (3-0). Credit 3.
- Parallel computer architectures and algorithms for solving geometric problems raised in VLSI design, pattern
recognition and graphics; advanced research results in computational geometry including convexity, proximity,
intersection, geometric searching and optimization problems. Prerequisite: CPSC 311 or ECEN 350. Cross-listed with ECEN
623.
- CPSC 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: CPSC 311.
- CPSC 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: CPSC 629.
- CPSC 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: CPSC 433.
- CPSC 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.
- CPSC 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: CPSC 311.
- CPSC 631. Programming Environments for Artificial Intelligence. (3-0). Credit 3.
- Languages used in artificial intelligence with emphasis on LISP and PROLOG; environments for programming in these
languages; practice using these environments in the solution of artificial intelligence problems. Prerequisite: CPSC 320
or 625.
- CPSC 632. Expert Systems. (3-0). Credit 3.
- Basic concepts for building expert systems; inference strategies; applications and case studies; techniques for
knowledge acquisition; use of existing tools for building expert systems. Prerequisite: CPSC 320 or 625.
- CPSC 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: CPSC 320 or
625.
- CPSC 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.
- CPSC 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.
- CPSC 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:
CPSC 627 or approval of instructor.
- CPSC 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: CPSC 625 or approval of instructor. Cross-listed with MEEN 676.
- CPSC 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: CPSC 629 or approval of instructor.
- CPSC 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: CPSC 441. Cross-listed with VIZA 671.
- CPSC 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.
- CPSC 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: CPSC 420 or CPSC 625 and 636 and graduate classification.
- CPSC 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: CPSC 441 and 442 or equivalent. Cross-listed with VIZA 675.
- CPSC 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: VIVA 653 or approval of instructor. Cross-listed with VIZA 654.
- CPSC 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: VIZA 653 or approval of instructor. Cross-listed with VIZA 656.
- CPSC 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.
- CPSC 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.
- CPSC 651. Simulation I. (3-0). Credit 3.
- Introduction to simulation and comparison with other
problem-solving techniques; simulation methodology including generation of random numbers and variates, time flow
mechanisms, sampling considerations, and validation and analysis of simulation models and results; survey of discrete
simulation languages; applications of simulation, including operating systems and networks. Prerequisites: Graduate
classification and knowledge of a minimum of three programming languages.
- CPSC 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: CPSC 442
or MATH 417.
- CPSC 654. Supercomputing. (3-0). Credit 3.
- Principles of high-performance scientific
computing systems, vectorization, advanced FORTRAN programming on supercomputers, numerical methods for supercomputers,
performance measuring of supercomputers, multitasking. Prerequisites: Knowledge of FORTRAN; CPSC 442 or MATH 417 or
equivalent.
- CPSC 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
CPSC 436 or 444 or approval of instructor.
- CPSC 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.
- CPSC 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: CPSC 653; MATH 304. Cross-listed with ECEN 659.
- CPSC 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: CPSC 442 or equivalent MATH 417 or equivalent. Cross-listed with MATH 660.
- CPSC 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.
- CPSC 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: CPSC 410 or
463.
- CPSC 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: CPSC 410 and 456 or approval of instructor.
- CPSC 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.
- CPSC 667. Collaborative Systems and Models.(3-0). Credit 3.
- Collaborative systems support group activities over computer networks; emphasis on human factors, system design is
different from traditional systems; overviews existing research efforts to address various design issues;
state-of-the-art knowledge and how to implement collaborative applications. Prerequisites: CPSC 310, 410, a program
language (C++/JAVA)and CPSC 436 or 671 or 672 or approval of instructor and graduate classification.
- CPSC 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: CPSC 629 or equivalent; approval of instructor.
- CPSC 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: CPSC 629.
- CPSC 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: CPSC 310 or
603 or approval of instructor; graduate classification.
- CPSC 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.
- CPSC 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: CPSC 671 or 610 or approval of instructor.
- CPSC 673. Information, Secrecy, and Authentication I. (3-0). Credit 3.
- Preliminaries; probability, information, entropy, signals, channels; group-theoretic view of messages; contemporary
secrecy and digital signature systems; one-time pads, DES, RSA, DSS, wheels, LFSR-based systems; analog scramblers; key
exchange, key management, secret sharing, access structures; measures of security. Prerequisites: Graduate classification
and approval of instructor. Cross-listed with MATH 673.
- CPSC 674. Information, Secrecy, and Authentication II. (3-0). Credit 3.
- Classical and recent attacks; login, compression, error control, and genetic codes; finite and infinite codes;
matrices, graphs, duals, groups, morphisms, composites, products, rates, and classification of codes; the
confusion/diffusion/arithmetic/calculus extension of Shannon's two design primitives. Prerequisites: MATH 673; graduate
classification and approval of instructor. Cross-listed with MATH 674.
- CPSC 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.
- CPSC 677. Switching Theory. (3-0). Credit 3.
- Digital systems design; introduction to switching algebras, overview of integrated circuit technologies, analysis and
synthesis of combinational circuits, special properties of selected switching functions, sequential circuits, fundamental
mode analysis, pulse mode analysis, and sequential circuit synthesis. Prerequisites: Graduate classification.
Cross-listed with ECEN 652.
- CPSC 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: CPSC 321 or ECEN 350 or
equivalent; ECEN 220 or 248 or equivalent. Cross-listed with ECEN 680.
- CPSC 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 Ph.D. program.
- CPSC 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.
- CPSC 685. Directed Studies. Credit 1 to 12.
- Research problems of limited scope designed primarily to develop research technique.
- CPSC 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.
- CPSC 691. Research. Credit 1 or more.
- Research for thesis or dissertation.
Texas A&M Course Catalog
Graduate and Undergraduate Course Catalog
Course Schedule
|
|
FACULTY OPENINGS
LATEST NEWS
EVENTS THIS WEEK
OUTREACH
RELATED LINKS
|