Computer Science Major
The computer science major is a solid, flexible program, focused on establishing a firm foundation in 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.
- Understand 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.
- Recognize the need for continuing professional development, as well as the ability to engage in it.
Declare Your Program
To be eligible for acceptance to the Computer Science major, students must submit a College of Sciences Undergraduate Program Declaration Form when the following is completed:
- Have minimum cumulative GPA of 2.5 for ICS 141, ICS 240 and MATH 215 or transfer equivalents;
- Complete the General Education Writing Requirement (GELS Goal I, Part I)
- Complete prerequisite courses 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.
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 without recent transcripted credits in programming courses for one-on-one sessions with their advisor to discuss their programming background.
Students may take waiver exams for introductory courses to help determine their appropriate placement in the introductory programming sequence.
Students get introduced to programming in ICS 140 Computational Thinking with Programming in the Python programming language. Next in the programming sequence are ICS 141 Programming with Objects and ICS 240 Elementary Data Structures, both using the Java programming language. Mathematics courses should be taken concurrently with these courses. 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 as is demonstrating competency through passing departmental waiver exams.
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 (preferably the final semester). To graduate, students must complete at least 32 credits of upper division coursework in the major.
The remaining requirements may be fulfilled in one of two ways:
- Do a minor (or previous bachelor's degree)in field approved by the advisor, or
- Complete 8 credits of elective coursework as described below.
Students are encouraged to consult their advisors 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. Students with a previous Bachelor's degree should talk to their advisor about whether that degree can be used in lieu of a minor.
Elective courses allow concentrated work in an area of choice. Choices include practical and theoretical advanced 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 350I (internship) or ICS 370
- At least 4 credits from an upper-division MATH course or an upper-division ICS course other than ICS 370
The contents of ICS 490 Special Topics in Information and Computer Sciences and of ICS 492 Seminar of Emerging Technologies vary from semester to semester, and may be taken more than once (with different topics for elective credit. 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 they have completed all course prerequisites with a grade of C- or better.
Courses required for your specific program are listed in the right column on this page. They include prerequisite, foundation, core and elective courses. Contact your advisor with questions concerning your degree plan.