Computer Science Major BS
The computer science major is a solid, flexible program, focused on establishing a firm foundation computing principles, 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 and 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.
At the time of graduation, all students will have the following skills.
- Apply knowledge of computing and mathematics appropriate to computer science.
- Analyze problems and identify and define the computing requirements appropriate to its solution.
- Design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
- Apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
- Apply principles of design and development in the construction of software systems of varying complexity.
- Use current techniques, skills, and tools necessary for computing practice.
- Function effectively on teams to accomplish a common goal.
- Understanding of professional, ethical, legal, security, and social responsibilities.
- Communicate effectively with a range of audiences.
- Analyze the local and global impact of computing on individuals, organizations, and society.
- Recognition of the need for continuing professional development, as well as the ability to engage it.
Program Application Requirements
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 mathematics and calculus in order to explore the theoretical foundations of computing. Mathematics and programming prerequisites should be completed early in the major.
Programming skills erode when left unused for long periods of time. As a consequence, programming classes taken more than five years ago will not be applied to meet the requirements for this major.
Since programming ability is crucial for success in computer science, the ICS Department invites students who may have programmed recently for one-on-one sessions with their advisor to discuss their programming background.
Waiver exams are used to help students evaluate their skills and to place them appropriately in the introductory programming sequence.
Acceptance to the Program
To be eligible for acceptance to the Computer Science major, students must submit a College of Arts and Sciences Undergraduate Program Declaration Form when the following is completed:
- Minimum cumulative GPA of 2.5 for ICS 141, ICS 240 and MATH 215 or transfer equivalents;
- Two writing courses as defined to meet general education requirements; and
- Prerequisite courses (see below) with a grade of C- or better.
Students who do not meet the above requirements or are on academic probation will not be accepted to the major. Students not accepted to the major will not be allowed to take advanced courses in the discipline.
Major Prerequisites (22 credits)
- MATH 120 Precalculus
- MATH 210 Calculus I
- MATH 215 Discrete Mathematics
- ICS 140 Programming Fundamentals
- ICS 141 Programming with Objects
- ICS 240 Introduction to Data Structures
Students get introduced to programming in ICS 140 Programming Fundamentals in the Python programming language. Next in the programming sequence are ICS 141 Programming with Objects and ICS 240 Elementary Data Structures, both using 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 (36 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. The upper-division courses (300- or 400-level) should be completed in the middle of the degree, except for ICS 499 Software Engineering and Capstone Project, which is taken in one of the last two semesters. To graduate, students must complete at least 32 credits of upper division coursework in the major.
Required courses include the following:
- ICS 232 Computer Organization and Architecture
- ICS 311 Database Management Systems
- ICS 340 Algorithms and Data Structures
- ICS 365 Organization of Programming Languages
- ICS 372 Object-Oriented Design and Implementation
- ICS 440 Parallel and Distributed Algorithms
- ICS 460 Networks and Security
- ICS 462 Operating Systems
- ICS 499 ICS Capstone Project
The remaining requirements may be fulfilled in one of two ways:
- Do a minor in field approved by the advisor, or
- Complete 8 credits of elective coursework as described below.
Students are encouraged to consult his/her advisor early in the program to make a decision on the above choices.
Recommended fields for a minor include Applied Mathematics, Biology, Chemistry, Computer Forensics, Physics, Project Management, and Technical Communication.
Elective courses allow concentrated work in an area of choice. Choices include theoretical computing topics, computer security, internships, and advanced mathematics. Students are encouraged to choose a set of elective courses that form a cohesive package.
Electives for the computer science major must be distributed as follows:
- At least 4 credits from one upper-division ICS course other than ICS 321, ICS 350I (internship), ICS 370, ICS 381, and ICS 390.
- At least 4 credits from an upper-division MATH course or an ICS course or an upper-division ICS course other than ICS 321, ICS 370, ICS 381, and ICS 390.
The contents of ICS 490 Special Topics in Information and Computer Sciences vary from semester to semester. Any specific offering of ICS 490 will state whether it may be applied as an elective.
No student may be enrolled in an ICS or CFS course unless he/she has completed all course prerequisites with a grade of C- or better.