Computers are a big part of modern-day society, so it’s no wonder you’re interested in learning more about them. Intrigued by how your iPad or cell phone works? Do you ponder cybersecurity issues? Or wonder how Google Maps really knows exactly where your house is? At CMU, we’ll prepare you for a career in computer programming, networks, database management, multimedia design or simply helping others navigate emerging technologies. Connect with the Computer Science Society while on campus and you’ll be building your network of tomorrow today.
Points of Pride
- CMU's information technology major was the first in the state of Michigan. Specialized labs provide hands-on learning that prepares students for successful careers in the fast-paced field of information technology.
- Apply your coding skills and develop cutting-edge technology with an international team of scholars in CMU's Software Engineering and Information Technology Institute. Associated with institutes in Japan and Korea, you'll work on international projects, gain internships and independent study credit, and get hands-on job experience in the global marketplace.
Put Your Degree to Work
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
Computer Science Student Outcomes
Graduates of the computer science program will have an ability to:
1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
3. Communicate effectively in a variety of professional contexts.
4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
Computer Science Program Educational Objectives
Graduates of the computer science program are expected to engage in the following activities within the first five years after graduation:
1. Graduates will contribute to their chosen profession, developing a reputation for solving complex problems.
2. Graduates will engage in lifelong learning activities in computer science or related fields.
3. Graduates will conduct themselves in a professional, responsible and ethical manner in their chosen profession.
4. Graduates will demonstrate a commitment to teamwork, communicating effectively with others from diverse backgrounds.
Total: 62-66 semester hours
Required Courses I
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: Quantitative and Mathematical Sciences)
Introduction to Data Structures
Continuation of CPS 180; Abstract Data Types using core programming library classes (such as stacks, queues, linked lists, and binary trees); Recursion; Sorting and Searching. Prerequisite: CPS 180; Recommended: MTH 132, 175 or 217.
Computer Organization and Communications
Introduction to computer organization, machine representation of information, models of computer architecture, remote application programming interfaces. Pre/Co-requisite: CPS 181; Recommended: MTH 132.
Object-Oriented Programming, Analysis and Design
Detailed coverage of the object-oriented programming paradigm and concepts, design patterns, distributed objects, graphical user interfaces and event handling. Software design in teams. Prerequisite: CPS 181 with a C or better.
Computational Analysis and Simulation
Modeling and simulation via computing and numerical calculations. Emphasis will be on implementing algorithms in a high-level programming language and the associated implications. Prerequisites: CPS 181; MTH 132.
Social Issues of Computing and Professional Practice
Surveys the central ethical, legal and social issues intrinsic to the discipline of computing. Introduces common professional development schemes used in the computing industry. Prerequisites: 26 hours completed. Recommended: ENG 201.
Advanced Data Structures and Algorithms
Theory of and advanced techniques for representing information: lists, trees, graphs. Analysis of algorithms: sorting, searching and hashing techniques. Prerequisites: CPS 181; CPS 210 or EGR 396. Pre/Co- requisite: MTH 223 or 232. Recommended: CPS 240.
Computer Design and Architecture
Design and analysis of digital circuits, processor datapath, instruction set architecture, cache memory, pipelined instruction execution, 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.
Programming Language Concepts
Formal definition of programming languages including specification of syntax and semantics. Prerequisites: CPS 240, 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, 360.
CPS 498/ITC 498
Senior Design I
Senior design course for CPS/ITC programs. This course integrates design methods and software engineering techniques in the context of a realistic information processing system-based project. Identical to ITC 498. Credit may not be earned in more than one of these courses. Prerequisites: Senior standing; declared CPS/ITC major; pass all required 300 level courses in major.
Introduction to Databases and Applications
Database concepts, data models, relational databases, query language SQL, simple database programming. Design and develop databases for various applications using database management systems. Prerequisite: CPS 181 or CPS 285.
Required Courses II - Mathematics Requirements
Limits, continuity, interpretations of the derivative, differentiation of elementary functions, applications of derivatives, antiderivatives, Riemann sums, definite integrals, fundamental theorem of calculus. Satisfies Mathematics Competency. This course may be offered in an online or hybrid format. Prerequisites: MTH 107, 109; or MTH 130; or placement. (University Program Group II-B: Quantitative and Mathematical Sciences)
Topics in discrete mathematics including logic, Boolean Algebra, sequences, mathematical induction, recursion, set theory, relations, functions, and combinatorial counting, with applications to computer science. No credit in MTH 175 after credit in MTH 375 or MTH 332. MTH 175 and MTH 332 cannot be taken in the same semester. Prerequisite: MTH 130 or 132.
Linear Algebra and Matrix Theory
Systems of linear equations, matrices, determinants, vectors, vector spaces, eigenvalues, linear transformations, applications and numerical methods. Prerequisite: MTH 132.
Elementary Statistical Analysis
An introduction to statistical analysis. Topics will include descriptive statistics, probability, sampling distributions, statistical inference, and regression. Credit may not be earned in more than one of these courses: STA 282, STA 382, STA 392. Satisfies Mathematics Competency. Quantitative Reasoning. Recommended: MTH 130 or 132 or 133. (University Program Group II-B: Quantitative and Mathematical Sciences)
Required Courses III - Science Requirements
Select at least two of the following:
Only BIO 101 or BIO 111 may count in this requirement, not both.
Only GEL 100 or GEL 130QR may count in this requirement, not both.
Only PHY 130QR or PHY 145QR may count in this requirement, not both.
Only PHY 131 or PHY 146 may count in this requirement, not both.
PHY courses must be taken with the appropriate lab course.
The study of living organisms. Fundamental principles of biology are integrated with local and global issues of current interest. No credit toward Biology major or minor. May be used toward satisfying the requirements of Integrated Science major or minor for students seeking certification in Elementary education only. Credit may not be earned in more than one of: BIO 101, BIO 105, BIO 110, and 165. Satisfies University Program Group II laboratory requirement. This course may be offered in a hybrid or online format. (University Program Group II-A: Descriptive Sciences)
Foundations of Evolution and Diversity
Basic principles of evolution and the application of these principles to the history and diversity of life. Satisfies University Program Group II laboratory requirement. (University Program Group II-A: Descriptive Sciences)
General Chemistry I
Introductory course covering fundamental concepts of chemistry including atoms, properties of matter, reactions and stoichiometry, electronic structure, chemical bonding, molecular structure, thermochemistry, gas laws. Satisfies University Program Group II laboratory requirement. Recommended: High school algebra or MTH 107; high school chemistry or CHM 120. (University Program Group II-B: Quantitative and Mathematical Sciences)
General Chemistry II
Continuation of CHM 131 including solutions, kinetics, equilibrium, weak acids and bases, thermodynamics, and electrochemistry. Prerequisite: CHM 131. Recommended: a grade of C or better in CHM 131.
Of Earth and Us: Introduction to Environmental Science
Explore environmental systems through examination of major issues facing humanity today. Topics include water availability and quality, climate change, sustainable resource management, pollution, and biodiversity. Satisfies University Program Group II laboratory requirement. Quantitative Reasoning. (University Program Group II-B: Quantitative and Mathematical Sciences)
Introduction to Earth Systems
An introductory exploration of the Earth system in the context of global change. Topics include the rock cycle, geologic time, climate change, and plate tectonics. Satisfies University Program Group II laboratory requirement. Credit may not be earned in both GEL 100 and 130QR, 101, 102, or 105. (University Program Group II-A: Descriptive Sciences)
Introduces geologic materials and processes from a quantitative perspective. Students will investigate, graph, and calculate rates of processes including earthquakes, volcanic eruptions, and groundwater flow. Satisfies University Program Group II laboratory requirement. Credit may not be earned in both GEL 130QR and 100, 101, 102, or 105. Quantitative Reasoning. (University Program Group II-B: Quantitative and Mathematical Sciences)
College Physics I
Mechanics, heat, kinetic theory, and sound. The mathematics used is algebra and trigonometry. The sequences PHY 130-131, PHY 170-171 satisfy minimum requirements for medical and dental schools. Quantitative Reasoning. Recommended: A high school math background that includes a good foundation in algebra and trigonometry, or MTH 109. (University Program Group II-B: Quantitative and Mathematical Sciences)
College Physics II
A continuation of PHY 130 that covers the topics of electricity, magnetism, optics and modern physics. Prerequisite: PHY 130.
University Physics I
Normally the first physics course for majors and minors. Mechanics of single and many-particle systems, conservation laws, statistical concepts, and gravitational interaction. Quantitative Reasoning. Pre/Co- Requisite: MTH 132.
University Physics II
Temperature and thermodynamics, electromagnetic interaction, electrical circuits, electromagnetic radiation, and optics. Not open to those with credit in PHY 131. Prerequisite: PHY 145. Pre/Co-requisite: MTH 133.
College Physics Laboratory I
Experimental techniques of physics introduced by studying quantitative situations through error analysis, graphical analysis, small computer calculations, and fitting data to model functions. Laboratory experience for PHY 130. Satisfies University Program Group II laboratory requirement. Pre/Co-requisite: PHY 130. (University Program Group II-B: Quantitative and Mathematical Sciences)
College Physics Laboratory II
Laboratory experience for PHY 131. Introductory experimental techniques and instrumentation for electrical, optical, and nuclear phenomena. Prerequisite: PHY 170. Pre/Co-Requisite: PHY 131.
University Physics Laboratory I
Laboratory experience for PHY 145. Introduction to experimental techniques and the treatment of experimental data. Satisfies University Program Group II laboratory requirement. Pre/Co-requisite: PHY 145. (University Program Group II-B: Quantitative and Mathematical Sciences)
University Physics Laboratory II
Laboratory experience for PHY 146. Introduction to electrical measurements and instrumentation. Introduction to techniques of optical measurements. Prerequisite: PHY 175. Pre/Co-Requisite: PHY 146.
Electives in CPS or ITC numbered at 280 or above