CSE Course Catalog
Department of Computer Science and Engineering
University Distinguished Professor B.
Stroustrup (Chair); Professors N. M. Amato, R.
Bettati, J. Chen, R. Furuta, R. Gutierrez- Osuna, J. C. Keyser, J.
S. Liu, R. N. Mahapatra, R. R. Murphy, L. Rauchwerger, F. M.
Shipman, V. E. Taylor, D. M. H. Walker (Head), J. L. Welch;
Associate Professors J. Chai, Y. Choe, T. A.
Hammond, T. R. Ioerger, J. Järvi, A. Jiang, A. Kerne, E. J.
Kim, A. Klappenecker, D. Loguinov, R. Mahapatra, V. Sarin, S.
Schaefer, D. Song, S. Sze, T. L. Williams; Assistant
Professors J. Caverlee, G. Gu, G. Dos Reis, E. Nikolova,
D. Shell, R. Stoleru; Senior Lecturers W. C.
Daugherity, J. D. Hurley, H. Lee, T. S. Leyk, Z. Toups, R. Ward, K.
H. Yum
Graduate Course
Descriptions 2012—2013
Undergraduate Course Descriptions 2012—2013
- CSCE 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.
- 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.
- 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.
- CSCE 203. (COSC 1317, 1417) Introduction to Computing.
(3-0). Credit 3.
- Algorithms, programs and computers; basic programming and
program structure; data representation; computer solution of
numerical and non-numerical problems using FORTRAN.
- 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 211. (COSC 2315, 2415) 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: CSCE 111 or
approval of instructor.
- 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. 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: CSCE 211 or
221.
- CSCE 311. Analysis of Algorithms. (3-0). Credit 3.
- Design of computer algorithms for numeric and nonnumeric
problems; relation of data structures to algorithms; analysis of
time and space requirements of algorithms; complexity and
correctness of algorithms. Prerequisites: MATH 302; CSCE 211.
- 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 321. Computer Architecture. (3-2). Credit 4.
- 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 ECEN 248.
- CSCE 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 CSCE 211 or 221.
- CSCE 350. Computer Architecture and Design. (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 ECEN 248.
- CSCE 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: 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 221 and 315.
- CSCE 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: CSCE 315 or approval of
instructor.
- CSCE 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: 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; review recent results in
quantum information processing. Prerequisite: CSCE 315 or approval
of instructor.
- CSCE 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: CSCE 211 or
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. 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 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. 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
220 or 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
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: CSCE 313.
- CSCE 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: 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; mobile applications. 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: CSCE 321 or
ECEN 350. Cross-listed with 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. I, II, S
- 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. I, II, S
- 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 Course Descriptions 2012—2013
- 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.
- 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 311; graduate
classification. Credit will not be given for both CSCE 410 and
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.
- 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 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 631. Intelligent Agents and Multi-Agent Systems.
(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: CSCE 420 or 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: VIVA 653 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:
VIZA 653 or approval of instructor. Cross-listed 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, advanced FORTRAN 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 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. 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: CSCE 310 or
603, 313 or 611, a program language (C++/JAVA) and CSCE 436 or 671
or 672 or approval of instructor and 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 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.
- CSCE 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.
- 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
ECEN 350 or equivalent; ECEN 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.
- 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.
- CSCE 691. Research. Credit 1 or more.
- Research for thesis or dissertation.
Texas A&M Course Catalog
Graduate and
Undergraduate Course Catalog
Course
Schedule