Texas A&M UniversityWebsiteAcademic Catalog
Computer ScienceDepartment Website
Majors
Courses
source 1source 2source 3CSCE 110: Programming I (4) intro
Basic concepts in using computation to enhance problem solving abilities; understanding how people communicate with computers, and how computing affects society; computational thinking; representation of data; analysis of program behavior; methods for identifying and fixing errors in programs; understanding abilities and limitation of programs; development and execution of programs.
CSCE 111: Introduction to Computer Science Concepts and Programming (4) intro
Computation to enhance problem solving abilities; understanding how people communicate with computers, and how computing affects society; computational thinking; software design principles, including algorithm design, data representation, abstraction, modularity, structured and object oriented programming, documentation, testing, portability, and maintenance; understanding programs’ abilities and limitations; development and execution programs.
CSCE 120: Program Design and Concepts (3) intro
Extension of prior programming knowledge and creation of computer programs that solve problems; use of the C++ language; application of computational thinking to enhance problem solving; analysis of, design of and implementation of computer programs; use of basic and aggregate data types to develop functional and object oriented solutions; development of classes that use dynamic memory and avoid memory leaks; study of error handling strategies to develop more secure and robust programs.
CSCE 121: Introduction to Program Design and Concepts (4) intro
Computation to enhance problem solving abilities; computational thinking; understanding how people communicate with computers, how computing affects society; design and implementation of algorithms; data types, program control, iteration, functions, classes, and exceptions; understanding abstraction, modularity, code reuse, debugging, maintenance, and other aspects of software development; development and execution of programs.
CSCE 181: Introduction to Computing (1) talks
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 201: Fundamentals of Cybersecurity (3) impact
Basic terminology, concepts, technology, and trends of cybersecurity; foundations of cybersecurity to include cryptography, public key infrastructure, standards and protocols, physical security, network fundamentals; workings of systems, networks, infrastructure; legal and ethical issues in cybersecurity.
CSCE 206: Structured Programming in C (4) intro
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 (4) intro
Specification and implementation of basic abstract data types and their associated algorithms including 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++.
CSCE 222: Discrete Structures for Computing (3) theory
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.
CSCE 291: Research (04) special
Research conducted under the direction of faculty member in computer science. May be taken three times for credit.
CSCE 305: Computational Data Science (3) ai
Computational practice of data science through a sequence of interactive modules that provides an integrated hands-on approach to its methods, tools, applications and supporting technologies including high performance and cloud computing platforms.
CSCE 310: Database Systems (3) sys
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.
CSCE 312: Computer Organization (4) sys
Computer systems from programmer's perspective including simple logic design, data representation and processor architecture, programming of processors, memory, control flow, input/output, and performance measurements; hands-on lab assignments.
CSCE 313: Introduction to Computer Systems (4) sys
Introduction to system support for application programs, both on single node and over network including OS application interface, inter-process communication, introduction to system and network programming, and simple computer security concepts; hands-on lab assignments.
CSCE 314: Programming Languages (3) pls
Exploration of the design space of programming languages via an in-depth study of two programming languages, one functional and one object-oriented; focuses on idiomatic uses of each language and on features characteristic for each language.
CSCE 315: Programming Studio (3) softeng
Intensive programming experience that integrates core concepts in Computer Science and familiarizes 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.
CSCE 320: Principles of Data Science (3) ai
Theoretical foundations, algorithms and methods of deriving valuable insights from data; includes foundations in managing and analyzing data at scale, e.g. big data; data mining techniques and algorithms; exploratory data analysis; statistical methods and models; data visualization.
CSCE 331: Foundations of Software Engineering (4) softeng
Intensive programming experience and provision of the fundamentals needed for larger-scale software development; integration of concepts in computer science and familiarization with a variety of programming and development tools and techniques; team projects each with an emphasis on a different specialization within computer science; emphasis on programming techniques to ease code integration and clarity; practical exposure to software-engineering processes through large-scale projects and specification and documentation.
CSCE 350: Computer Architecture and Design (4) sys
Computer architecture and design; use of register transfer languages and simulation tools to describe and simulate computer operation; central processing unit organization, microprogramming, input/output and memory system architectures.
CSCE 399: High-Impact Experience (0) impact
Participation in an approved high-impact learning practice; documentation and self-assessment of learning experience.
CSCE 402: Law and Policy in Cybersecurity (3) impact
Examination of law and policy issues related to cybersecurity for the spectrum of cybersecurity jobs; includes procurement, operations and maintenance, governance and oversight, protection and defense, analysis, intelligence collection and operation and investigation cybersecurity jobs.
CSCE 410: Operating Systems (3) sys
Hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction including algorithms for CPU scheduling, memory and general resource allocation, process coordination and management; case studies of several operating systems.
CSCE 411: Design and Analysis of Algorithms (3) algs
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.
CSCE 412: Cloud Computing (3) sys
Operating system and distributed systems fields that form the basis of cloud computing such as virtualization, key-value storage solutions, group membership, failure detection, peer to peer systems, datacenter networking, resource management and scalability; popular frameworks such as MapReduce and HDFS and case studies on failure determination.
CSCE 413: Software Security (3) sys
Basic principles of design and implementation of defect-free software, code reviews including tool-assisted review by static and dynamic analysis, risk analysis and management and methods for software security testing.
CSCE 416: Hardware Design Verification (3) sys
Hardware functional verification; case studies on verification in integrated circuit design; introduction to industry best practices; introduction to logic functional verification.
CSCE 420: Artificial Intelligence (3) ai
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.
CSCE 421: Machine Learning (3) ai
Theoretical foundations of machine learning, pattern recognition and generating predictive models and classifiers from data; includes methods for supervised and unsupervised learning (decision trees, linear discriminants, neural networks, Gaussian models, non-parametric models, clustering, dimensionality reduction, deep learning), optimization procedures and statistical inference.
CSCE 426: Security of Embedded Systems (3) sys
Security principles; common security features and flaws in day-to-day embedded systems; security analysis, vulnerability exploits and security fixes for embedded systems.
CSCE 429: Software Development, Globalization and Culture Abroad (3) softeng
Software development cycle; software outsourcing model, execution and practices; software industries on products, services and consultancy; software globalization; and offshore development culture; travel abroad required.
CSCE 430: Problem Solving Programming Strategies (3) algs
Methods for analyzing fundamental programming problems from a variety of domains and implementing solutions quickly and efficiently; problems based on competitive programming contests to develop skills in problem analysis, coding and testing; solving problems will involve identifying and applying a range of algorithmic solutions; includes dealing with combinatorics, dynamic programming, graphs, numerical calculations, string processing and geometry, along with other specialized algorithms.
CSCE 431: Software Engineering (3) softeng
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.
CSCE 432: Accessible Computing (3) impact
Exploration of the characteristics of traditionally disenfranchised user populations due to disability including discrimination; universal design concepts; exploration of ethical and legal motivations for creating accessible technology; development, evaluation, design, and implementation of equitable and inclusive software and computer based solutions; study of multiple existing accessibility standards.
CSCE 433: Formal Languages and Automata (3) theory
Basic types of abstract languages and their acceptors; the Chomsky hierarchy; solvability and recursive function theory; application of theoretical results to practical problems.
CSCE 434: Compiler Design (3) pls
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.
CSCE 435: Parallel Computing (3) sys
Overview of parallel computing technology and programming methods; includes multiprocessor architectures, programming tools, parallel performance, parallel algorithms, and applications of parallel computing.
CSCE 436: Computer-Human Interaction (3) humans
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.
CSCE 438: Distributed Systems (3) sys
Principles and techniques for engineering distributed systems with topics including communication, concurrency, programming paradigms, naming, managing shared state, caching, synchronization, reaching agreement, fault tolerance, security, middleware and distributed applications; design, implement and debug large software systems.
CSCE 439: Data Analytics for Cybersecurity (3) ai
Theoretical foundations, algorithms and methods of data analytics for cybersecurity; study of data analytics including cluster analysis, supervised machine learning, anomaly detection, and visualization applied to cyber attacks, anomaly detection, vulnerability analysis, strategic manipulation, propaganda and other topics.
CSCE 440: Quantum Algorithms (3) algs
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.
CSCE 441: Computer Graphics (3) graphics
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.
CSCE 442: Scientific Programming (3) math
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.
CSCE 443: Game Development (3) graphics
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.
CSCE 444: Structures of Interactive Information (3) humans
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.
CSCE 445: Computers and New Media (3) impact
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 446: Virtual Reality (3) graphics
Theory and practice of virtual reality; interactive 3D virtual environments; input/output devices, 3D interaction techniques, augmented reality, role of realism in VR, navigation techniques, design guidelines and evaluation methods.
CSCE 447: Data Visualization (3) graphics
Visual representation and design of data and information; 3D visualization, infographics, data narratives, principles of visual data encoding and interaction techniques.
CSCE 448: Computational Photography (3) graphics
Cameras and the image formation process; basic image and video processing tools like sampling, filtering and pyramids; several image-based algorithms, including panorama creation, lightfields, image retargeting, high dynamic range imaging and texture synthesis.
CSCE 449: Applied Cryptography (3) sys
Applied cryptography; secure multi-party computations; zero knowledge proofs; blockchain and machine learning.
CSCE 450: Computer Animation (3) graphics
Investigation of computational problems in computer animation; study of the mathematical and algorithmic foundations behind various techniques used for computer animation for real-time and offline use.
CSCE 451: Software Reverse Engineering (3) sys
Overview of the compilation mechanism to generate executable files and raw binary codes from source codes; executable file formats for an operating system to run the binary code; disassembly algorithms and control graph analysis; static and dynamic analyses; case studies on code obfuscation, codebreaking, malware analysis.
CSCE 452: Robotics and Spatial Intelligence (3) ai
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.
CSCE 461: Embedded Systems for Medical Applications (3) sys
Principles of embedded system architecture and programming; fundamentals and theoretical foundations of wireless communication systems; hands-on experiences of how an embedded system could be used to solve problems in biomedical engineering; projects on wireless sensors and imaging for medical devices.
CSCE 462: Microcomputer Systems (3) sys
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.
CSCE 463: Networks and Distributed Processing (3) sys
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.
CSCE 464: Wireless and Mobile Systems (3) sys
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.
CSCE 465: Computer and Network Security (3) sys
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 detection systems, IPSec and VPN, wireless and web security.
CSCE 469: Advanced Computer Architecture (3) sys
Advanced computer architectures including memory designs, pipeline techniques, and parallel structures such as vector computers and multiprocessors.
CSCE 470: Information Storage and Retrieval (3) sys
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.
CSCE 477: Cybersecurity Risk (3) sys
Risks in cybersecurity; avoidance, acceptance, mitigation, or transference strategies; developing reliable cybersecurity risk assessments to include analysis, categorization, and evaluation; cybersecurity risk audit frameworks.
CSCE 481: Seminar (1) talks
Investigation and report by students on topics of current interest in computer science.
CSCE 482: Senior Capstone Design (3) capstone
Development of system integration skills for solving real-world problems in computer science; significant team software project that uses integration of advanced concepts across computer science specializations.
CSCE 483: Computer Systems Design (3) softeng
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.
CSCE 485: Directed Studies (06) special
Permits work on special project in computer science; project must be approved by the department.
CSCE 489: Special Topics in... (14) special
Special topics in computer science that are new or unique that are not covered in existing courses.
CSCE 491: Research (04) special
Research conducted under the direction of faculty member in computer science.
MATH 140: Mathematics for Business and Social Sciences (3) math
Application of common algebraic functions, including polynomial, exponential, logarithmic and rational, to problems in business, economics and the social sciences; includes mathematics of finance, including simple and compound interest and annuities; systems of linear equations; matrices; linear programming; and probability, including expected value.
MATH 142: Business Calculus (3) math
Limits and continuity; techniques and applications of derivatives including curve sketching and optimization; techniques and applications of integrals; emphasis on applications in business, economics, and social sciences.
MATH 147: Calculus I for Biological Sciences (4) math
Introduction to differential calculus in a context that emphasizes applications in the biological sciences.
MATH 148: Calculus II for Biological Sciences (4) math
Introduction to integral calculus in a context that emphasizes applications in the biological sciences; ordinary differential equations and analytical geometry.
MATH 151: Engineering Mathematics I (4) math
Rectangular coordinates, vectors, analytic geometry, functions, limits, derivatives of functions, applications, integration, computer algebra.
MATH 152: Engineering Mathematics II (4) math
Differentiation and integration techniques and their applications (area, volumes, work), improper integrals, approximate integration, analytic geometry, vectors, infinite series, power series, Taylor series, computer algebra.
MATH 168: Finite Mathematics (3) math
Linear equations and applications; systems of linear equations, matrix algebra and applications, linear programming, probability and applications, statistics.
MATH 171: Calculus I (4) math
Vectors, functions, limits, derivatives, Mean Value Theorem, applications of derivatives, integrals, Fundamental Theorem of Calculus. Designed to be more demanding than MATH 151.
MATH 172: Calculus II (4) math
Techniques of integration, applications of integrals, improper integrals, sequences, infinite series, vector algebra and solid analytic geometry. Designed to be more demanding than MATH 152.
STAT 211: Principles of Statistics I (3) math
Introduction to probability and probability distributions; sampling and descriptive measures; inference and hypothesis testing; linear regression, analysis of variance.
STAT 212: Principles of Statistics II (3) math
Design of experiments, model building, multiple regression, nonparametric techniques and contingency tables.
MATH 251: Engineering Mathematics III (3) math
Vector algebra, calculus of functions of several variables, partial derivatives, directional derivatives, gradient, multiple integration, line and surface integrals, Green's and Stokes' theorems.
STAT 301: Introduction to Biometry (3) math
Intended for students in animal sciences. Introduces fundamental concepts of biometry including measures of location and variation, probability, tests of significance, regression, correlation and analysis of variance which are used in advanced courses and are being widely applied to animal-oriented industry.
STAT 302: Statistical Methods (3) math
Intended for undergraduates in the biological sciences. Introduction to concepts of random sampling and statistical inference; estimation and testing hypotheses of means and variances; analysis of variance; regression analysis; chi-square tests.
STAT 303: Statistical Methods (3) math
Intended for undergraduates in the social sciences. Introduction to concepts of random sampling and statistical inference, estimation and testing hypotheses of means and variances, analysis of variance, regression analysis, chi-square tests.
MATH 304: Linear Algebra (3) math
Introductory course in linear algebra covering abstract ideas of vector space and linear transformation as well as models and applications of these concepts, such as systems of linear equations, matrices and determinants; MATH 323 designed to be a more demanding version of this course.
MATH 308: Differential Equations (3) math
Ordinary differential equations, solutions in series, solutions using Laplace transforms, systems of differential equations.
ENGR 102: Engineering Lab I - Computation (2) engr
Introduction to the design and development of computer applications for engineers; computation to enhance problem solving abilities; basic concepts of software design through the implementation and debugging of student-written programs; introduction to engineering majors, career exploration, engineering practice within realistic constraints, e.g. economic, environmental, ethical, health and safety, and sustainability; pathways to success in engineering.
ENGR 216: Experimental Physics and Engineering Lab II - Mechanics (2) engr
Description and application of laws of physical motion to the solution of science and engineering problems; using sensing, control and actuation for experimental verification of physics concepts while solving engineering problems.
CHEM 107: General Chemistry for Engineering Students (3) sci
Introduction to important concepts and principles of chemistry; emphasis on areas considered most relevant in an engineering context; practical applications of chemical principles in engineering and technology.
CHEM 117: General Chemistry for Engineering Students Laboratory (1) sci
Introduction to important concepts and principles of chemistry in the laboratory; emphasis on areas considered most relevant in an engineering context; practical applications of chemical principles in engineering and technology.
PHYS 206: Newtonian Mechanics for Engineering and Science (3) sci
Calculus-based introductory Newtonian mechanics; laws of physical motion for solution of science and engineering problems.
COMM 203: Public Speaking (3) communication
Training in speeches of social and technical interest designed to teach students to develop and illustrate ideas and information and to inform, stimulate, and persuade their audiences; also taught at Galveston campus.
COMM 205: Communication for Technical Professions (3) communication
Design and presentation of oral reports for technical professions; incorporation of visual and graphic materials into presentation required; written reports required; also taught at Galveston campus.
ENGL 210: Technical and Professional Writing (3) communication
Focus on writing for professional rhetorical situations; correspondence and researched reports fundamental to the workplace—memoranda, letters, electronic correspondence, research proposals and presentations; use of visual rhetoric and document design in print and electronic mediums; emphasis on audience awareness, clarity of communication and collaborative team-work
PHIL 240: Introduction to Logic (3) math
Introduction to formal methods of deductive and inductive logic including, but not limited to, truth-tables, formal deduction and probability theory.