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
With plenty of job openings and high salaries, technology positions make attractive careers. Employment of computer and information technologists is projected to grow 15 percent from 2012 to 2022, faster than the average for all occupations. Due to the wide variety of job types, entry-level salaries can vary from $34,000 to $75,000, and students entering this field have the opportunity for frequent promotions and significant pay increases throughout their career.
U.S. Bureau of Labor Statistics sample data
|Job||Median Pay||Job Growth through 2022|
|Computer network architect||$91,000 per year||15% (20,900 more jobs)|
|Computer scientist||$102,190 per year||15% (4,100 more jobs)|
|Computer programmer||$74,280 per year||8% (28,400 more jobs)|
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
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. 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.
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.
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
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. Prerequisite: 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, 360.
Limits, continuity, interpretations of the derivative, differentiation of elementary functions, applications of derivatives, antiderivatives, Riemann sums, definite integrals, fundamental theorem of calculus. This course may be offered in an online or hybrid format. Recommended: MTH 107, 109; or MTH 130. (University Program Group II-B: Quantitative and Mathematical Sciences)
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.
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. Quantitative Reasoning. Prerequisite: MTH 130 or 132 or 133. (University Program Group II-B: Quantitative and Mathematical Sciences)
Electives in CPS or ITC numbered at 280 or above