Why study computer science and mathematics at CMU?
These dynamic programs offered by the Department of Computer Science will prepare you for some of the fastest growing professions in America. Consider some of the key features of these programs:
- Advanced facilities that include a UNIX/LINUX workstation lab and other special purpose labs
- Faculty with expertise and practical technology experiences in a variety of computer science and information technology fields
- Professional development, resources, and contacts through the Computer Science Society and the student chapter of the Association of Information Technology Professionals
- Practical experience through a wide range of internship opportunities in computer science and information technology fields
According to the Bureau of Labor Statistics Occupational Outlook Handbook, for all occupations through the year 2014:
- Job increases will be driven by very rapid growth in computer system design and related services, which is projected to be among the fastest growing industries in the U.S. economy.
- The computer systems design and related services industry remains one of the 25 fastest growing industries in the nation.
- Employment of computer systems analysts is expected to grow 18 to 26 percent as organizations continue to adopt and integrate increasingly sophisticated technologies.
- In addition, wage and salary employment is expected to grow 40 percent.
Graduates of the computer science and information technology programs will find a variety of career opportunities. Some of these may require additional education.
- Applications Programmer
- Computer Communications Specialist
- Database Manager
- Software Designer
- Systems Analyst
- Systems Programmer
The course listings below are a representation of what this academic program requires. For a full review of this program in detail please see our official online academic bulletin AND consult with an academic advisor. This listing does not include the General Education courses required for all majors and may not include some program specific information, such as admissions, retention, and termination standards.
(Click on the course name or number for a complete course description.)
Computer Science - Mathematics Major
This major offers a coordinated program of coursework for students planning careers which require extensive knowledge of both computing and mathematics. The student will have an advisor in both the Mathematics and the Computer Science Departments.
Total: 59 semester hours
For additional information, see the list of advisors in the Class Schedule Booklet.
Principles of Computer Programming
Algorithm development and problem solving methods. Design and development of computer programs in a structured programming language. Pre/Co-requisite: One of MTH 130, 132, 133, 217. (University Program Group II-B)
Introduction to Data Structures
Continuation of CPS 180. Dynamic storage allocation, recursion, abstract data types (such as stacks, queues, linked lists, and binary trees), sorting and searching. Prerequisites: CPS 180; Corequisite: MTH 175.
Assembly Language and Computer Organization
Topics in assembly language concepts, introduction to computer organization, machine representation of information, models of computer architecture, instruction and addressing fundamentals, control structures. Pre/Co-Requisite: CPS 181. Recommended: One of: MTH 132 or MTH 216.
Advanced Data Structures and Algorithms
Theory of and advanced techniques for representation of information; lists, trees, graphs; analysis of algorithms; sorting, searching and hashing techniques. Prerequisites: CPS 181, CPS 210 or EGR 396; MTH 223 or 232.
Computer Design and Architecture
Logic gates, design and analysis of digital circuits, clocked digital circuits, processor micro-architecture, instructions sets and addressing modes, virtual memory. Prerequisite: CPS 210.
Software specification, design methods, programming and testing techniques and CASE tools. Developing large software systems in a group environment using modern software engineering techniques. Prerequisites: CPS 340; Recommended: CPS 370.
Programming Language Concepts
Formal definition of programming languages including specification of syntax and semantics. Prerequisite: CPS 340.
Limits, continuity, interpretations of the derivative, differentiation of elementary functions, applications of derivatives, antiderivatives, Riemann sums, definite integrals, fundamental theorem of calculus. This course is approved for offering in a distance learning format. Recommended: MTH 106, 107; or MTH 130. (University Program Group II-B)
Techniques of integration, applications of definite integrals, improper integrals, elementary differential equations, infinite series, Taylor series, and polar coordinates. Prerequisite: MTH 132.
Topics in discrete mathematics including sequences, graphs, mathematical induction, recursion, number theory, combinatorial counting, difference equations, algorithms, and Boolean Algebra. No credit in MTH 175 after credit in MTH 375 or MTH 332. Prerequisite: MTH 130 or 132 or 133.
Linear Algebra and Matrix Theory
Systems of linear equations, matrices, determinants, vectors, vector spaces, eigenvalues, linear transformations, applications and numerical methods. Prerequisite: MTH 132.
Vectors and surfaces in R3, vector-valued functions, functions of several variables, partial differentiation and some applications, multiple integrals, vector calculus. Prerequisites: MTH 133. Pre/Co-Requisites: MTH 223 or 232.
Introduction to Mathematical Proof
Study of several basic concepts in mathematics including logic, set theory, relations and functions, cardinality, number systems, sequences. Pre/Co-requisite: MTH 223 or 232.
Numerical Analysis I
Computational methods for solving non-linear equations and systems of linear equations. Interpolation, numerical differentiation and integration. Prerequisites: MTH 133, 223.
Modern Algebra I
Groups, rings, integral domains, fields, and fundamental homomorphism theorems. Prerequisite: MTH 332 or graduate status.
Electives,approved by an advisor, from the following:
Introduction to Multimedia Design
Introduction to multimedia concepts. Survey of multimedia applications in fields such as education, business and entertainment. Introduction to multimedia authoring tools. Hands-on projects.
File Manipulation Techniques
Creation and manipulation of program and data files, scientific and industrial applications of file-oriented systems, prominent computer languages having file processing capabilities. Prerequisite: CPS 181.
Concepts and operation of microprocessors and microcomputers to include input/output, mass storage, memory, and small read-only memory operating systems. Prerequisites: CPS 210, CPS 360.
Internship in Computer Science
Supervised work experience in computer science. Only 3 hours may count toward the major. Any additional hours must provide a significantly different educational experience. CR/NC only. Prerequisites: CPS 210 or ITC 291; permission of department chairperson.
Introduction to programming for windowing systems. Graphical User Interfaces, object-oriented programming, shared data and program libraries. Mixed-language programming. Relationships among windowing systems. Prerequisites: CPS 340 or ITC 320.
Systems Programming and Software
Systems concepts--filesystem, shell, system calls; software such as assemblers, linkers, loaders; systems programming in a modern programming environment such as UNIX. Prerequisites: CPS 340.
Introduction to Operating Systems
Operating systems as resource manager. Study of the strategies used to manage system resources such as devices, files, memory, processors. Prerequisites: CPS 340, CPS 360.
Introduction to Artificial Intelligence
Automated reasoning, search strategies, knowledge representation, game playing, expert systems, machine learning and perception; applications. Prerequisites: CPS 340.
Advanced Multimedia Design
Interactive multimedia projects will be designed using advanced authoring tools. Issues concerning representation, storage, compression, transmission, and manipulation of various multimedia components will be discussed. Prerequisites: CPS 282.
Special Topics in Computer Science
Selected topics in computer science not otherwise available in a course regularly offered. Topic(s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Pre/Co-requisites: See Course Search and Registration. Determined by the specific topics presented.
Simulation of Discrete Event Systems
Development of computer models for discrete systems using computer simulation languages. Performance evaluation of computer, industrial and engineering systems. Prerequisite: CPS 181; STA 282 or STA 382.
Physical and logical organizations of databases, database management systems, project involving a student-designed database. Prerequisites: CPS 340 and CPS 370; or ITC 441 and permission of instructor.
Digital Computer Design
Design of basic components of a general purpose computer such as CPU, memory, I/O systems. Instruction set design. CISC versus RISC debate. Parallel Architectures. Prerequisite: CPS 360.
Representation of line drawings, handwritings, and three-dimensional surfaces in computers. A plotter and graphics terminal are used. Prerequisites: CPS 181 or MTH 223.
Special Topics In Computer Science
Selected topics in computer science not otherwise available in a course regularly offered. Topic(s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Prerequisite: See Course Search and Registration. Determined by the specific topics presented.
Open to students with permission of instructor. May be taken for credit more than once, total credit not to exceed 6 hours.
Definition and solution of first, second, and higher order differential equations. Prerequisites: MTH 133, MTH 223.
Relation between set theoretic operations and computer operations, applications of graph theory, graphical algorithms, discrete algebraic structure. Prerequisites: MTH 133 or MTH 223; MTH 175 or MTH 332.
Numerical Analysis II
Continuation of MTH 438. Solutions to ordinary differential equations. Study of approximation theory and solutions to nonlinear systems of equations. Prerequisite: MTH 438.
An introduction to the theory, practical applications and algorithms of nonlinear programming. Prerequisites: MTH 233.
Theory of Numbers
Properties of integers, congruences, greatest common divisors and prime factorization, applications of number theory to computer science and cryptology. Prerequisite: MTH 332.
Advanced Calculus I
Rigorous development of calculus for functions of one variable. Sequences, limits, continuity, differentiation, integration, exponential and logarithmic functions, arc length, series. Credits will not count towards M.A. or Ph.D. degree requirements in mathematics. Prerequisites: MTH 233 and MTH 332, or graduate status.
Advanced Calculus II
Continuation of MTH 532. Rigorous development of calculus for functions of several variables. Limits, continuity, differentiation, and integration. Prerequisite: MTH 532.
Introduction to Point-Set Topology
Development of elementary point-set topology. Sets, functions, metric spaces, topological spaces, quotient surfaces, compactness, and connectedness. Prerequisite: MTH 332 or graduate status.
Introduction to the basic principles of combinatorics and graph theory with applications to problems of nonmathematical origin. Prerequisites: MTH 523.
Operations Research I
Mathematical theory and applications of mathematical programming. Linear programming duality, integer programming, mixed integer programming, and dynamic programming. Prerequisites: MTH 133
Operations Research II
Continuation of MTH 586. Theory and application of stochastic models in operations research. Inventory models, queuing theory. Markov chains, stochastic programming. Prerequisites: STA 382, MTH 586.
Elementary Statistical Analysis
An introduction to statistical analysis. Topics will include descriptive statistics, probability, sampling distributions, statistical inference, and regression. Greater emphasis than in STA 282 will be placed on probability theory and probability distribution. Credit may not be earned in both STA 282 and STA 382. Prerequisite: MTH 130 or 132 or 133.
Applied Statistical Methods I
Applications of statistical methods including the usage of computer packages. Topics include forecasting, simple and multiple regression, and analysis of variance. This course is approved for offering in a distance learning format. Prerequisites: STA 282 or STA 382; or graduate standing.
Mathematical Statistics I
Probability defined on finite and infinite samples spaces, conditional probability and independence, random variables, expectations, moment-generating functions, probability models, limit theorems. Prerequisite: MTH 233.
Mathematical Statistics II
Introductory topics from mathematical theory of statistics: population distributions, sampling distributions, point and interval estimation, tests of hypotheses. Prerequisite: STA 584.