Computer Science Major B.S.
The computer science major is a solid, flexible program, focused on establishing a firm foundation in the theory of computing, the development of effective problem-solving and mathematical skills, and the systematic application of theory to the design and development of software. This program also provides preparation for graduate school in computer science. A minimum of 16 semester credits of major requirements must be completed at Metropolitan State.
Program Educational Objectives
The program is designed to help graduates achieve the following career and professional objectives. The program's graduates will:
- have the flexibility, versatility and problem solving skills that can be applied to any problem domain, so they will be productively employed in the computing field in roles such as Computer Programmer, Software Developer, Software Engineer, and Software Systems Analyst;
- be successfully employed of accepted into well-established graduate schools;
- have strong writing and presentation skills; and
- have a sense of societal and ethical responsibility in their professional endeavors.
Program Outcomes
At the time of graduation, all students will have the following skills.
- A good foundation in the field through a set of core courses in the discipline, including programming and data structures, hardware and software architecture, software system design and computing theory.
- A good foundation in essential mathematical tools such as discrete mathematics and calculus.
- The ability to work in groups and communicate well via written and oral presentations.
- Knowledge of the ethical and societal issues in computing.
- A strong knowledge in an object-oriented language and a working knowledge in at least one other language.
Competence in standard programming practices is essential to an in-depth study of the science of computing. Although many of the activities of computer professions are not programming-related, the language of computing is founded on programming. In addition, computer science has its roots in the discipline of mathematics. At a minimum, computer science students must have an understanding of discrete math and calculus in order to explore the theoretical foundations of computing. Additional mathematical study is highly recommended. Math and programming prerequisites should be completed early in the major.
Admission to the Major
Students interested in pursuing a major in computer science must apply to the program. To be eligible for admission to the major, students must be admitted to the university and meet minimum application requirements. This includes the completion of two writing courses as defined to meet general education requirements and a minimum cumulative GPA of 2.5 on a 4.0 scale for ICS 141, ICS 240 and MATH 215. Students on academic probation are not admitted to this program.
Major Requirements
Major Prerequisites (24 credits)
- MATH 120 Precalculus or MATH 115 College Algebra
- MATH 116 Trigonometry
- MATH 210 Calculus I
- MATH 215 Discrete Mathematics
- ICS 140 Programming Fundamentals
- ICS 141 Programming with Objects
- ICS 240 Programming with Elementary Data Structures
Students learn to program in ICS 140 Programming Fundamentals, ICS 141 Programming with Objects and ICS 240 Programming with Elementary Data Structures, using the Java programming language. Mathematics courses should be taken concurrently. Students should note individual course prerequisites and enroll in the proper sequence of courses. The prerequisite courses should be completed before upper-division (300-level) classes are taken in the major. Transfer credit for the major prerequisite courses is common.
Required Core Courses (28 credits)
These courses are designed to deepen student understanding of the discipline of computer science. The study of computer hardware, operating systems and software design processes provides the understanding of the operation of the computer necessary for the development of robust, efficient systems. The capstone and software design classes provide students with the project management, teamwork, presentation and business writing experiences that employers have identified as keys to professional success. In addition, students address ethical issues and professional responsibilities in the capstone course. Courses in mathematics and computing theory provide preparation for graduate or theoretical study. The upper-division courses (300--400-level) should be completed in the middle of the degree, except for ICS 499 ICS Capstone Project, which is taken in one of the last two semesters.
Required courses include the following:
Math Requirement
Choose one of the following math courses
- MATH 211 Calculus II
- MATH 251 Introduction to Probability and Statistics
- MATH 315 Linear Algebra and Applications
- MATH 340 Mathematical Modeling
- MATH 360 Operations Research
Note: Any chosen course cannot also be counted as an elective.
Computer Science Requirements
- ICS 340 Data Structures
- ICS 362 Computer Organization and Architecture
- Programming competency in C or C++.
This may be satisfied by doing appropriate course work, by taking a competency test administered by the department, or by successfully completing ICS 365 Comparative Programming Languages. ICS 365 meets the Group 1 Electives requirement as well.
- ICS 370 Software Design Models
- ICS 441 Foundations of Computing Theory
- ICS 462 Operating Systems
- ICS 499 ICS Capstone Project
Electives (12 credits)
Elective courses allow concentrated work in an area of choice. Choices include theoretical computing topics, networking, project management, internships and advanced mathematics. Students are encouraged to choose a set of elective courses which form a cohesive package. A maximum of four lower-division elective credits may be accepted with advisor's permission. Courses taken to meet required core courses, except ICS 365 may not also count as electives.
Electives for the computer science major must be distributed as follows:
Group 1. At least one of the following:
- ICS 365 Comparative Programming Languages
- ICS 425 Client/Server Architectures
- ICS 441 Foundations of Computing Theory
- ICS 460 Computer Networks
- ICS 470 Software Engineering
- Any upper-division (300-level or higher) math course
Group 2. Any of the following:
- Additional Group 1 (above) electives
- Any other upper-division ICS courses or ICS 225 (see Group 3 below for exceptions)
- CFS 280 or above, other than CFS 499
- ICS internship (3 credits)
- MATH 251 Introduction to Probability and Statistics
- DSCI 420 Project Management
Group 3. This area is not required; however a maximum one of the following can be included as an elective.
Other Electives
The contents of ICS 490 Special Topics in Information and Computer Sciences and ICS 492 Emerging Technology vary from semester to semester. These electives may be applied to Group 1 or Group 2 elective requirements only with prior advisor approval.





