Texas A&M UniversityWebsiteAcademic Catalog
Computer ScienceDepartment Website
BS Degree in Computer Sciencesource 1source 2ABET
CS Courses
- Program Design and ConceptsCSCE 120 (3)introCSCE 120: Program Design and Concepts
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.
- Data Structures and AlgorithmsCSCE 221 (4)introCSCE 221: Data Structures and Algorithms
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++.
- Discrete Structures for ComputingCSCE 222 (3)theoryCSCE 222: Discrete Structures for Computing
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.
- Computer OrganizationCSCE 312 (4)sysCSCE 312: Computer Organization
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.
- Introduction to Computer SystemsCSCE 313 (4)sysCSCE 313: Introduction to Computer Systems
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.
- Programming LanguagesCSCE 314 (3)plsCSCE 314: Programming Languages
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.
- Foundations of Software EngineeringCSCE 331 (4)softengCSCE 331: Foundations of Software Engineering
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.
- Design and Analysis of AlgorithmsCSCE 411 (3)algsCSCE 411: Design and Analysis of Algorithms
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.
- High-Impact Experience (a.k.a. CSCE 399)
- 1 × CS Elective
Math/Stat Courses
- Engineering Mathematics IIMATH 152 (4)mathMATH 152: Engineering Mathematics II
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.
- oror
- Linear AlgebraMATH 304 (3)mathMATH 304: Linear Algebra
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.
Engineering Courses
- Engineering Lab I - ComputationENGR 102 (2)engrENGR 102: Engineering Lab I - Computation
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.
- Experimental Physics and Engineering Lab II - MechanicsENGR 216 (2)engrENGR 216: Experimental Physics and Engineering Lab II - Mechanics
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.
Science Courses
- General Chemistry for Engineering StudentsCHEM 107 (3)sciCHEM 107: General Chemistry for Engineering Students
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.
- General Chemistry for Engineering Students LaboratoryCHEM 117 (1)sciCHEM 117: General Chemistry for Engineering Students Laboratory
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.
- 2 × Science Elective
Other Courses
- orCommunication for Technical ProfessionsorCOMM 205 (3)communicationCOMM 205: Communication for Technical Professions
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.
Technical and Professional WritingENGL 210 (3)communicationENGL 210: Technical and Professional WritingFocus 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
Vision Statement
- To sustain the computer science program as a viable, valuable and self-determining entity within The Texas A&M University System and to meet the needs of the students and the industries served.
Mission Statement
- The mission of the computer science program is to prepare intellectual, professional and ethical graduates, capable of meeting challenges in the field of computer science.
Program Educational Objectives
The program educational objectives of the Bachelor of Science in computer science program describe what the program’s graduates are expected to attain within a few years of graduation:
- Graduates will use computer science principles to identify and solve emerging technological and societal problems.
- Graduates who choose to enter the workforce will become technological leaders and innovators in their fields.
- Graduates who choose to pursue advanced degrees will gain admission to and succeed in prestigious graduate programs.
- Graduates will engage in life-long learning to adapt to new technologies, tools and methodologies needed to respond to a changing world.
Student Outcomes
These outcomes describe specific abilities and characteristics that we want our graduates to have at the time of graduation:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.