Computer Science Major
Why study computer science 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
Career outlook
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.
Career options
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
- Consultant
- Database Manager
- Programmer
- Software Designer
- Systems Analyst
- Systems Programmer
Program Overview
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 Major
( Total: 49 semester hours )
(40 hours)
Required Courses I
3
CPS 180 Principles of Computer Programming
Algorithm development and problem solving methods. Design and development of computer programs in a structured programming language. Corequisite: MTH 130. (University Program Group II-B)
3
CPS 181 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.
3
CPS 210 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.
3
CPS 240 Object-Oriented Programming
Introduction and analysis of the object-oriented programming paradigm and concepts. Design of classes and objects in problem solving. Use of object libraries. Prerequisites: A grade of C or higher in CPS 181.
3
CPS 340 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; MTH 223.
3
CPS 360 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.
3
CPS 410 Software Engineering
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.
3
CPS 450 Programming Language Concepts
Formal definition of programming languages including specification of syntax and semantics. Prerequisite: CPS 340.
3
CPS 470 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.
4
MTH 132 Calculus I
Limits, continuity, interpretations of the derivative, differentiation of elementary functions, applications of derivatives, antiderivatives, Riemann sums, definite integrals, fundamental theorem of calculus. Prerequisite: MTH 130. (University Program Group II-B)
3
MTH 175 Discrete Mathematics
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.
3
MTH 223 Linear Algebra and Matrix Theory
Systems of linear equations, matrices, determinants, vectors, vector spaces, eigenvalues, linear transformations, applications and numerical methods. Prerequisite: MTH 132.
3
STA 382 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.
Electives in CPS or ITC numbered at 280 or above