Undergraduate Program

Why Major in Computer Science?

Computing has become ubiquitous, impacting almost every aspect of modern life and playing an important role in many technological advances. You don’t need previous programming experience to do well in CS@Mines.

Students who enjoy solving puzzles, thinking logically, and looking for patterns are well-suited to computer science. Our curriculum reflects a mixture of theory and practice, including discrete structures, design and analysis of algorithms, principles of programming languages, computer architecture, operating systems, and software engineering.

Computing jobs are among the highest paid, and computing professionals generally report high job satisfaction. Graduates from our program have found employment with many different types of companies including technology, engineering, and financial companies.

98%
CS BS graduates with positive outcomes in 2018-19

$72,931
Average starting salary for CS BS graduates in 2018-19

Job Opportunities

The U.S. Bureau of Labor reports that the number of computing jobs has been increasing steadily for the last decade. Predictions for new jobs through 2024 also favor computing, and the number of students earning CS degrees is currently not keeping up with projected demand.

But it’s more than just jobs opportunities, it’s also happiness. A Wall Street Journal article on the 10 Best Jobs put Software Engineer in the first spot, with Computer Systems Analyst as number four.

Hear from our students, alumni and faculty why CS@Mines might be perfect for you!

The Computer Science program is accessible to students with or without prior programming experience. CS@Mines allows you to choose your path with the following options:

CS GENERAL

This curriculum allows students to tailor senior level electives toward personal and career interests in areas such as algorithmic robotics, applied algorithms and data structures, high performance computing, machine learning, networking, security and privacy, graphics, or mobile and web development.

Degree Requirements | Flowchart

CS + DATA SCIENCE

All fields are experiencing rapid growth in access to massive amounts of information. In partnership with the Department of Applied Mathematics & Statistics, CS + Data Science retains the CS Core and focuses electives to help students analyze and make meaning of large amounts of data, resulting in smarter decision making, reduction in costs, and increased productivity. Data Science is an emerging discipline at the intersection of computer science and statistics, focusing on the extraction of knowledge from data.

Degree Requirements | Flowchart

CS + COMPUTER ENGINEERING

Advances in engineering revolve around automation, computerization, and digitization. In partnership with the Department of Electrical Engineering, CS + Computer Engineering retains the CS Core and focuses electives to help students identify the way hardware and software concepts such as programming, digital circuit design, and embedded systems transform any tech field.

Degree Requirements | Flowchart

CS + ROBOTICS AND INTELLIGENT SYSTEMS

Many disciplines of engineering focus on the physical creation and kinematics of robots and intelligent systems. In partnership with the Department of Mechanical Engineering, CS + Robotics and Intelligent Systems retains the CS Core and focuses electives to help students bring life to systems and give machines the ability to operate autonomously.

Degree Requirements | Flowchart

CS + BUSINESS

Still need description

Degree Requirements | Flowchart

CS HONORS RESEARCH

This program provides the opportunity for undergraduate computer science majors to broaden their overall Mines experience with research and innovation, as well as explore computer science in more depth through scholarship. The program emphasizes experiential learning for motivated students who seek hands-on opportunities in order to become leaders in industry or want enhanced preparation for graduate school. These research experiences will broaden the understanding of the interdisciplinary work of computer science, and allow students to explore their field through scholarship. CS Research Honor students will work more closely with faculty than what occurs in the classroom.

Degree Requirements | Flowchart

The CS degree at Mines is designed to be accessible to students with or without prior programming experience. The Introduction to Computer Science course introduces students to the building blocks of CS and provides a brief introduction to procedural programming in Python. The second computing course, Programming Concepts, emphasizes development of programming skills in an object-oriented language. The third introductory course, Data Structures, provides an understanding of the classic data representation schemes, algorithms, and algorithm analysis that form the foundation for all advanced work in computing.   Required CS courses provide the fundamental skills and knowledge that are critical to success in computing. These courses reflect a mixture of theory and practice, including discrete structures, design and analysis of algorithms, principles of programming languages, computer architecture, operating systems, and software engineering. In the required Elements of Computing Systems course, students consolidate their understanding of CS by constructing a simulator for an entire modern computer from the ground up. The capstone field session course provides students an opportunity to work in teams to create software products for real clients. Elective courses in CS allow students to explore a variety of important computing topics, such as graphics and visualization, human computer interaction, artificial intelligence, database management, and web programming. Elective courses often relate to recent trends in computing, covering topics such as security, high performance computing, wireless sensor networks, and mobile applications. Computing is a broad field with applicability to most science and engineering domains. The CS minor is designed for students in other disciplines to receive a solid grounding in the basics, which should enable them to apply their computing skills to solve problems in other domains.

Computer Science Core

The flowchart below lists all required computer science courses numbered 200 and above with arrows indicating prerequisites. This is not intended as a list of all required courses but rather an indication of the breadth and depth of material covered as part of the Computer Science degree. Overall, all Computer Science majors must take at least 31 credit hours of computer science courses, not including CSCI-101. CS Core Curriculum flowchart The Computer Science core consists of the following 12 courses:

  • CSCI-101 Introduction to Computer Science
  • CSCI-261 Programming Concepts
  • CSCI-262 Data Structures
  • CSCI-274 Intro to Linux
  • CSCI-306 Software Engineering
  • CSCI-341 Computer Organization
  • CSCI-358 Discrete Mathematics
  • CSCI-370 Advanced Software Engineering
  • CSCI-400 Principles of Programming Languages
  • CSCI-406 Algorithms
  • CSCI-442 Operating Systems

Computer Science Electives

Depending on the track, students must take 3.0-12.0 credit hours of elective computer science courses. Any 400-level CSCI course or MATH307 or EENG383 meet this requirement.

Free Electives

Unlike the Computer Science Electives, the free elective hours are not restricted to courses within the department but rather may be use for minors or majors with other departments or simply to take classes that you find interesting. Depending on the track, students must take 9.0-18.0 credit hours of free electives.

Flowcharts

The requirements for your major may be dependent upon the year you enter Colorado School of Mines and are reflected in the corresponding bulletin. Sample flowcharts indicating a generic schedule for a Computer Science major’s four year career are available. However, the information represented in the sample flowcharts are recommendations. For specific course requirements, please refer to the appropriate catalog. The current as well as past catalogs are available at catalog.mines.edu.

Minors, ASIs and Double Majors

If you plan to obtain two BS degrees, be sure to review the Multiple Degrees section of Undergraduate Degree Requirements in the catalog. If you plan to obtain a minor or ASI from another department, you should review these general requirements.

The Department of Computer Science is pleased to offer students the opportunity to earn both a Bachelor of Science (BS) and a Master of Science (MS) degree simultaneously.

Features of the Combined Program

  • The CS@Mines Combined Program is for students who earn a bachelor’s degree at Colorado School of Mines. Students planning an MS in CS will be required to complete (or show knowledge of) the following foundational courses in CS:
    • CSCI 261: Programming Concepts
    • CSCI 262: Data Structures
    • CSCI 306: Software Engineering
    • CSCI 341: Computer Organization
    • CSCI 358: Discrete Mathematics
  • Students may be able to complete a Non-Thesis or Thesis MS in one additional year. Normally a Master’s degree requires 30 credit hours and takes two years to complete. Under the Combined Program, students will count two courses (CSCI406, and/or CSCI442 along with one additional CSCI 400 level course) toward both degrees, therefore only 24 additional credit hours are needed to complete the degree. Students must earn a B- or better to double count the courses.
  • Students selecting the Non-Thesis coursework option will be required to complete 30 credit hours of coursework. Student selecting the Non-Thesis project option will complete 24 credits of coursework and 6 credits of project credit.
  • Students selecting the Thesis option will be required to complete 21 credit hours of coursework and 9 credit hours of research credits.
  • Additional degree requirements can be found in the CS Graduate Catalog.

Admission Criteria

  • Current Mines undergraduate students are encouraged to apply for the combined program once they have taken five or more 200-level or higher Computer Science classes at Mines, excluding CSCI274, CSCI370, CSCI499. Classes transferred from other universities will not be considered.

  • Students should have an overall GPA of at least 2.5 and a GPA of 3.2 for courses in computer science. The calculation of GPA in computer science will be based on all 200-level or above CSCI courses except those excluded above (i.e., CSCI274CSCI370 and CSCI499). If a course is taken multiple times, all of the grades will be included into the GPA calculation.
  • Interested students with a lower GPA must include in their statement of goals/personal statement a section explaining why they should be admitted to the program.

Application Procedure

  • Complete the Online Application and indicate that you are a current Mines student.
  • Application Fee: For current Mines undergraduates, the application fee is only $25.
  • Entry Term: The entry term should be the semester that you intend to being taking graduate-level coursework (500-level or higher courses), regardless of when you plan to complete your BS degree.
  • GRE is not required: Combined degree applicants are not required to submit GRE scores. The application field can be left blank.
  • Letters of recommendation are not required: Combined degree applicants are not required to submit letters of recommendation. The system currently requires letters of reference, even though our department does not. You will need to enter a first and last name for the recommender (doesn’t have to be real, you could use ‘a’ for first name and ‘b’ for last name). You should also specify that the recommender will not be submitting online.
  • Transcripts: Students must submit a transcript. An unofficial transcript downloaded from Trailhead is sufficient.
  • Statement of Goals:
    • MS Non-Thesis (coursework or project tracks) who meet the GPA requirements do not need to write a unique “Statement of Goals” for the application. To ensure that your application will be correctly processed, the Statement of Goals should be: “I am currently a Mines undergraduate. I meet the gpa requirements. I would like to apply for the Combined B.S./M.S. program in computer science.” Also, please indicate if you are requesting a specific faculty advisor.
    • MS Thesis applicants should write a Statement of Goals explaining your research interests and if you are requesting a specific faculty advisor.
    • Students who do not meet the GPA requirements must submit an essay to explain why they have a low GPA and to provide convincing arguments for their ability to do graduate level work.

Taking 500-level Courses

  • Students should apply and be admitted to the CS graduate program before taking 500-level courses. You must be admitted by Census Day of the semester you being taking graduate courses to place them on your graduate transcript.
  • Undergraduate students must complete the 500-level Course Form (available at the Registrar’s office) to register for graduate courses. You are encouraged to meet with the CS Graduate Program Manager to complete the form and discuss the registration process. Schedule an advising appointment here!
  • If prior consent is not received or if the student has not been admitted as a combined program student, all 500-level graduate courses taken as an undergraduate Combined Degree Program student will be applied to the student’s undergraduate degree transcript. If these are not used toward an undergraduate degree requirement, they may, with program consent, be applied to a graduate degree program as transfer credit.
  • Some courses within Computer Science are co-taught as 400/500 level (e.g., CSCI474/CSCI574). Since there are a limited number of graduate courses offered each semester, students who want to pursue the combined master’s should enroll in these courses at the 500 level. Students are not allowed to enroll in both instances of a cross-listed course.

Financial Aid

  • Courses taken as an undergraduate student but applied directly toward a graduate degree are not eligible for undergraduate financial aid or the Colorado Opportunity Fund. You are encouraged to meet with Financial Aid to discuss any possible repercussions.
  • Upon completion of their undergraduate degree requirements, a Combined Degree Program student is considered enrolled full-time in his/her graduate program. Once having done so, the student is no longer eligible for undergraduate financial aid, but may now be eligible for graduate financial aid.
  • To complete their graduate degree, each Combined Degree Program student must register as a graduate student for at least one semester.

Timeline

  • If possible, students should apply during Spring semester of their junior year, in order to begin taking 500-level courses during the Fall semester of the senior year.
  • To be able to earn the MS degree in five years, students will need to carry a heavier load during Spring semester of the junior year and both semesters of the senior year. Note that there is no requirement to finish in five years, so students may follow a more typical schedule and take an extra semester to complete their degree.
  • The timeline for completing the degree will vary depending on whether students select the thesis or non-thesis option. These are described below.

MS Non-Thesis Coursework

Students complete coursework only for this non-thesis Master’s degree.

MS Non-Thesis Project

Students take 6 credits of CSCI700 to fulfill the MS project requirement. It is recommended that the 6 credits consist of two consecutive semesters of 3 credits each. At most 6 hours of CSCI700 will be counted toward the Masters non-thesis degree. Deliverables include a report and a presentation to a committee of two CS faculty including the Advisor (at least one committee member must be a CS faculty member). Deliverables must be successfully completed in the last semester in which the student registers for CSCI700. A student must receive two “pass” votes (i.e., a unanimous vote) to satisfy the project option.

MS Thesis

Students take 9 credits of CSCI707 to fulfill the MS thesis requirement. At the conclusion of the MS (Thesis Option), the student will be required to make a formal presentation and defense of her/his thesis research. A student must “pass” this defense to earn an M.S. degree.

For more information about projects in this program, click here.

Overview:

The Department of Computer Science offers a discipline-specific research honors program for our majors. This program provides the opportunity for undergraduate computer science majors to broaden their overall Mines experience with research and innovation, as well as explore computer science in more depth through scholarship. The program emphasizes experiential learning for motivated students who seek hands-on opportunities in order to become leaders in industry or want enhanced preparation for graduate school. These research experiences will broaden the understanding of the interdisciplinary work of computer science, and allow students to explore their field through scholarship. CS Research Honor students will work more closely with faculty than what occurs in the classroom.

The program is open to any student who has demonstrated strong academic performance and has an aspiration to make an impact through research and innovation. The CS Research Honors program offers depth and breadth of knowledge in areas such as machine learning, cybersecurity, and robotics. The courses and projects that honor students select concentrate on the impact of analytical investigation, creativity, leadership, and innovation. The CS Research Honors program aims to foster professional development while offering students the opportunity to be involved in a community of scholars. Students who successfully complete the CS Research Honors program will graduate with a BS in Computer Science “with honors.”

CS faculty will post available undergraduate research honors projects for the following academic year each February. Students should list the projects of interest in their application, as well as whether they are open to others. To participate in the program, it is recommended (not required) that students have a cumulative 3.5 GPA.

Program Requirements:

–          3 credits of GPGN 350: Science and Communication Skills (a research methods/communications course that students can take before committing to this Honors program)

–          6 credits of honors courses at the 500 level; these courses count as CSCI 400-level electives in the CS degree program

–          6 credits of honors thesis (taken over two semesters of CSCI480); counts as CSCI 400-level electives in the CS degree program

–          Completion of an honors thesis (including a formal proposal and defense)

–          Presentation of a research poster at the department’s annual C-MAPP Award Event (in January) and the Undergraduate Research Fair (in April)

–          NOTE: students can participate in this program without taking extra classes

Program Benefits:

–          Receive honors distinction on transcripts and distinction at graduation

–          Opportunity to work closely with a faculty member and his/her research team

–          Opportunity for extra connections (e.g., meet with department’s industrial partners)

–          Opportunity to attend international research conferences via travel scholarship

–          Opportunity for summer research experience at Mines or other collaborating universities

–          Invitation to special events for honor students (e.g., seminars, professional development)

–          Stronger application to graduate school via an amplified research experience

–          Increased visibility to be awarded graduate research assistantship

Program Application (due in April 2020 for Fall 2020 admittance):

A complete Research Honors Application must include a short essay that details your motivation to participate in the honors program and a resume which includes your current GPA. In the essay, specify which posted research projects are of interest. Submit your application to Carol McEvoy (cmcevoy@mines.edu) by 5:00pmMT on Thursday, April 30th, 2020.  The department head will notify you of your acceptance prior to the start of the Fall semester, and you’ll be able to update your major to include the Research Honors track at that time.

For the most up-to-date information, please consult the catalog.    

AREA OF SPECIAL INTEREST IN COMPUTER SCIENCES

  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-358: Discrete Mathematics & Algebraic Structures
  • CSCI-406: Design & Analysis of Algorithms

OR

  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems

MINOR IN COMPUTER SCIENCES

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-406: Design & Analysis of Algorithms
  • Two 400-level CSCI classes (or CSCI358 or MATH307 or EENG383)

OR

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems
  • Two 400-level CSCI classes (or MATH307 or EENG383)

MINOR IN COMPUTER ENGINEERING

The Computer Engineering minor combines key software and hardware concepts, such as programming skills and digital circuit design, to create hardware-software systems that are used in embedded systems. Students must take at least 18 credits from the classes below. At least 9 of which must be 300-level or above.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems
  • EENG-281 Intro to Electrical Circuits, Electronics and Power or EENG 282: Electrical Circuits
  • EENG-284: Digital Logic
  • EENG-383: Microcomputer Architecture
  • PHGN215/317 may be substituted for EENG281/284 with approval

*If a student is in a major that does not require CSCI261, the student must take only three of the CSCI courses.

MINOR IN DATA SCIENCE

The Data Science minor is an emerging discipline at the intersection of computer science and statistics, focusing on the extraction of knowledge from data. This minor introduces students to necessary skills in data analysis, manipulation, and storage.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-303: Introduction to Data Science
  • CSCI-403: Database Management
  • CSCI-470: Intro to Machine Learning
  • MATH-201: Probability and Statistics for Engineers

OR

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-303: Introduction to Data Science
  • MATH-201: Probability and Statistics for Engineers
  • MATH-334: Intro to Probability
  • MATH-335: Intro to Mathematical Statistics

MINOR IN ROBOTICS AND INTELLIGENT SYSTEMS

The Robotics and Intelligent Systems minor focuses on the software needed to operate robots and other intelligent systems. The software processes information to achieve objectives, learn from past experience, adapt to a changing environment, and interact smoothly with people.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-404: Artificial Intelligence
  • CSCI-473: Human-Centered Robotics
  • MATH-201: Probability and Statistics
  • MEGN441: Introduction to Robotics

A complete list of undergraduate courses can be found in the Computer Science Undergraduate Catalog by clicking on the “Courses” tab.

Curriculum

The Computer Science program is accessible to students with or without prior programming experience.
CS@Mines allows you to choose your path with the following options:

CS General

This curriculum allows students to tailor senior level electives toward personal and career interests in areas such as algorithmic robotics, applied algorithms and data structures, high performance computing, machine learning, networking, or security and privacy, graphics, or mobile and web development.

Degree RequirementsFlowchart

CS + Data Science

All fields are experiencing rapid growth in access to massive amounts of information. In partnership with the Department of Applied Mathematics & Statistics, CS + Data Science retains the CS Core and focuses electives to help students analyze and make meaning of large amounts of data, resulting in smarter decision making, reduction in costs, and increased productivity. Data Science is an emerging discipline at the intersection of computer science and statistics, focusing on the extraction of knowledge from data.

Degree Requirements | Flowchart

CS + Computer Engineering

Advances in engineering revolve around automation, computerization, and digitization. In partnership with the Department of Electrical Engineering, CS + Computer Engineering retains the CS Core and focuses electives to help students identify the ways hardware and software concepts such as programming, digital circuit design, and embedded systems transform any tech field.

Degree Requirements | Flowchart

CS + Robotics and Intelligent Systems

Many disciplines of engineering focus on the physical creation and kinematics of robots and intelligent systems. In partnership with the Department of Mechanical Engineering, CS + Robotics and Intelligent Systems retains the CS Core and focuses electives to help students bring life to systems and give machines the ability to operate autonomously.

Degree Requirements | Flowchart

Degree Overview

The CS degree at Mines is designed to be accessible to students with or without prior programming experience. The Introduction to Computer Science course introduces students to the building blocks of CS and provides a brief introduction to procedural programming in Python. The second computing course, Programming Concepts, emphasizes development of programming skills in an object-oriented language. The third introductory course, Data Structures, provides an understanding of the classic data representation schemes, algorithms, and algorithm analysis that form the foundation for all advanced work in computing.

Required CS courses provide the fundamental skills and knowledge that are critical to success in computing. These courses reflect a mixture of theory and practice, including discrete structures, design and analysis of algorithms, principles of programming languages, computer architecture, operating systems, and software engineering. In the required Elements of Computing Systems course, students consolidate their understanding of CS by constructing a simulator for an entire modern computer from the ground up. The capstone field session course provides students an opportunity to work in teams to create software products for real clients.

Elective courses in CS allow students to explore a variety of important computing topics, such as graphics and visualization, human computer interaction, artificial intelligence, database management, and web programming. Elective courses often relate to recent trends in computing, covering topics such as security, high performance computing, wireless sensor networks, and mobile applications.

Computing is a broad field with applicability to most science and engineering domains. The CS minor is designed for students in other disciplines to receive a solid grounding in the basics, which should enable them to apply their computing skills to solve problems in other domains.

Computer Science Core

The flowchart below lists all required computer science courses numbered 200 and above with arrows indicating prerequisites. This is not intended as a list of all required courses but rather an indication of the breadth and depth of material covered as part of the Computer Science degree.

Overall, all Computer Science majors must take at least 12 credit hours of computer science courses, not including CSCI-101.

CS Core Curriculum flowchart

The Computer Science core consists of the following 11 courses:

  • CSCI-101 Introduction to Computer Science
  • CSCI-261 Programming Concepts
  • CSCI-262 Data Structures
  • CSCI-306 Software Engineering
  • CSCI-341 Computer Organization
  • CSCI-358 Discrete Mathematics
  • CSCI-370 Advanced Software Engineering
  • CSCI-400 Principles of Programming Languages
  • CSCI-403 Database Management
  • CSCI-406 Algorithms
  • CSCI-442 Operating Systems

Computer Science Electives

In addition to the core courses listed above, students must take at least 12 credit hours of elective computer science courses. Any 400-level course with a prefix of CSCI will meet this requirement.

Free Electives

Also in addition to the core course requirements, students must also earn an additional 19 hours of free electives. Unlike the Computer Science Electives, the free elective hours are not restricted to courses within the department but rather may be use for minors or majors with other departments or simply to take classes that you find interesting.

Flowcharts

The requirements for your major may be dependent upon the year you enter Colorado School of Mines and are reflected in the corresponding bulletin. Sample flowcharts indicating a generic schedule for a Computer Science major’s four year career are available. However, the information represented in the sample flowcharts are recommendations. For specific course requirements, please refer to the appropriate catalog. The current as well as past catalogs are available at catalog.mines.edu.

Minors, ASIs and Double Majors

If you plan to obtain two BS degrees, be sure to review the Multiple Degrees section of Undergraduate Degree Requirements in the catalog.

If you plan to obtain a minor or ASI from another department, you should review these general requirements.

BS + MS in Computer Science

The Department of Computer Science is pleased to offer students the opportunity to earn both a Bachelor of Science (BS) and a Master of Science (MS) degree simultaneously.

Features of the Combined Program

  • The CS@Mines Combined Program is for students who earn a bachelor’s degree in Computer Science (CS) OR a bachelor’s degree in another program with a minor degree in CS. Students earning a minor in CS should complete the following courses in order to be prepared for the graduate program: CSCI 261, CSCI 262, CSCI 341, CSCI 306, and CSCI 358.
  • Students may be able to complete a Non-Thesis or Thesis M.S. in at least one additional year to the B.S. Normally a Master’s Degree requires 36 credit hours and takes two years to complete. Under the Combined Program, students will count two courses(CSCI406 and CSCI442) toward both degrees, so only 30 additional credit hours are needed to complete the degree.
  • Students selecting the Non-Thesis option will be required to complete 30 credit hours of coursework.
  • Students selecting the Thesis option will be required to complete 18 credit hours of coursework and a thesis (12 credit hours).
  • There are two required graduate-level courses: CSCI564 (Advanced Architecture) and CSCI561 (Theory of Computation). The remaining courses are all electives.
  • No more than 6 credits of elective courses may be taken outside the Department.
  • No more than 9 credits of 400-level course work may count toward graduate degree requirements (i.e., at most one 400-level course in addition to CSCI406 and CSCI442). Only CSCI406 and CSCI442 may be double counted.

Admission Criteria

  • Students may not apply for the combined program until they have taken five or more Computer Science classes at CSM (classes transferred from other universities will not be considered). This requirement may be met by any 200-level or above course with a CSCI prefix (e.g., CSCI261, CSCI306, CSCI442, CSCI498 etc.) except CSCI370, CSCI499 and CSCI 274. CSCI 274 is only a one-credit hour course. Since CSCI370 (Advanced Software Engineering) is based almost exclusively on team work, it may not be counted as one of the five courses. Independent study courses (i.e., CSCI499) have varying requirements and are therefore also not included.
  • Students earning a minor in Computer Science should complete the following courses in order to be prepared for the graduate program: CSCI 261, CSCI 262, CSCI 341, CSCI 306, and CSCI 358.
  • Students should have an overall GPA of at least 2.5 and a GPA of 3.2 for courses in the major. The calculation of GPA in the major will be based on all 200-level or above CSCI courses except those excluded above (i.e., CSCI370, CSCI499 and CSCI 274). If a course is taken multiple times, all of the grades will be included in the gpa calculation.
  • Interested students with a lower GPA must write an essay to explain why they should be admitted to the program. See Application Procedure below.

Application Procedure

  • Complete the Online Application.
  • For online applications from CSM undergraduates, the application fee is only $25.
  • Indicate whether you intend to pursue the Non-Thesis or Thesis M.S. in Mathematical & Computer Sciences. Note that you may change from Non-Thesis to Thesis (or vice versa) if you change your mind.
  • Students are not required to take the GRE or submit letters of recommendation. The system currently requires letters of reference, even though our department does not. You will need to enter a first and last name for the recommender (doesn’t have to be real, you could use ‘a’ for first name and ‘b’ for last name). You should also specify that the recommender will not be submitting online.
  • Students must submit a transcript.
  • Students who meet the gpa requirements do not need to write a unique “Statement of Goals” for the application. To ensure that your application will be correctly processed, the Statement of Goals should be: “I am currently a CS major at CSM. I meet the gpa requirements. I would like to apply for the Combined B.S./M.S. program.”
  • Students who do not meet the gpa requirements must submit an essay to explain why they have a low gpa and to provide convincing arguments for their ability to do graduate level work.
  • Students may apply as early as the first semester, Junior year. Admission must be granted no later than the end of registration, last semester Senior year. Be sure to check the application cut-off dates on the Graduate School website.
  • Since you are not allowed to “officially” work on both degrees at the same time, you must enter a date for “expected BS completion date” on the Educational Information page of the online application. Then enter an Intended Entry semester for the graduate program that is after that date.

Taking 500-level Courses

  • Students should not take 500-level courses until they are admitted into the program. You must be admitted by Census Day of the semester you begin to take graduate courses.
  • Students taking 500-level courses during their senior year will need to obtain approval from their advisor and the course instructor. You should check the box for Graduate Credit only. If you have been accepted into the program prior to taking any graduate courses, those credits should automatically transfer to your MS degree as soon as you receive your undergraduate degree.
  • If a student takes 500-level courses prior to obtaining their BS degree, his or her account will have a hold that says Graduate CSM BS Degree (Need Proof of CSM BS Degree). This hold will remain until the start date of the graduate program. Note that students must turn in an undergraduate transcript upon graduation, and there will be a delay before they are able to register for graduate courses.
  • If prior consent is not received or if the student has not been accepted by OGS as a combined program student, all 500-level graduate courses taken as an undergraduate Combined Degree Program student will be applied to the student’s undergraduate degree transcript. If these are not used toward an undergraduate degree requirement, they may, with program consent, be applied to a graduate degree program as transfer credit.
  • Some courses within Computer Science are co-taught as 400/500 level (e.g., CSCI474/CSCI574). Since there are a limited number of graduate courses offered each semester, students who want to pursue the combined master’s should enroll in these courses at the 500 level.

Financial Aid

  • Courses taken as an undergraduate student but applied directly toward a graduate degree are not eligible for undergraduate financial aid or the Colorado Opportunity Fund.
  • Upon completion of their undergraduate degree requirements, a Combined Degree Program student is considered enrolled full-time in his/her graduate program. Once having done so, the student is no longer eligible for undergraduate financial aid, but may now be eligible for graduate financial aid.
  • To complete their graduate degree, each Combined Degree Program student must register as a graduate student for at least one semester.

Timeline

  • If possible, students should apply during Spring semester of their junior year, in order to begin taking 500-level courses during the Fall semester of the senior year.
  • To be able to earn the MS degree in five years, students will need to carry a heavier load during Spring semester of the junior year and both semesters of the senior year. Note that there is no requirement to finish in five years, so students may follow a more normal schedule and take an extra semester to complete their degree.
  • The timeline for completing the degree will vary depending on whether students select the thesis or non-thesis option. These are described below.

MS Project Track

Students are required to take 6 credits of CSCI700 to fulfill the MS project requirement. (It is recommended that the 6 credits consist of two consecutive semesters of 3 credits each.) At most 6 hours of CSCI700 will be counted toward the Masters non-thesis degree. Deliverables include a report and a presentation to a committee of two EECS faculty including the Advisor (at least one committee member must be a CS faculty member). Deliverables must be successfully completed in the last semester in which the student registers for CSCI700. A student must receive two “pass” votes (i.e., a unanimous vote) to satisfy the project option.

MS Thesis Defense

At the conclusion of the MS (Thesis Option), the student will be required to make a formal presentation and defense of her/his thesis research. A student must “pass” this defense to earn an M.S. degree.

You may want to review the detail requirements in this sample timeline. For students in the combined program to complete the degree in five years, items listed in the sample timeline as 1st Semester and 2nd Semester should be completed during the senior year.

Minors and Areas of Special Interest

For the most up-to-date information, please consult the catalog.

Area of Special Interest in Computer Sciences

  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-358: Discrete Mathematics & Algebraic Structures
  • CSCI-406: Design & Analysis of Algorithms

OR

  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems

Minor in Computer Sciences

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-306: Software Engineering
  • CSCI-406: Design & Analysis of Algorithms
  • Two 400-level CSCI classes

OR

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems
  • Two 400-level CSCI classes

Minor in Computer Engineering

The Computer Engineering minor combines key software and hardware concepts, such as programming skills and digital circuit design, to create hardware-software systems that are used in embedded systems. Students should choose 18 credits from the classes below.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-341: Computer Organization
  • CSCI-442: Operating Systems
  • EENG-281 Intro to Electrical Circuits, Electronics and Power or EENG 282: Electrical Circuits
  • EENG-284: Digital Logic
  • EENG-383: Microcomputer Architecture

*If a student is in a major that does not require CSCI261, the student must take only three of the CSCI courses.

Minor in Data Science

The Data Science minor is an emerging discipline at the intersection of computer science and statistics, focusing on the extraction of knowledge from data. This minor introduces students to necessary skills in data analysis, manipulation, and storage.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-303: Introduction to Data Science
  • CSCI-403: Database Management
  • CSCI-470: Intro to Machine Learning
  • MATH-201: Probability and Statistics for Engineers

OR

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-303: Introduction to Data Science
  • MATH-201: Probability and Statistics for Engineers
  • MATH-334: Intro to Probability
  • MATH-335: Intro to Mathematical Statistics

Minor in Robotics and Intelligent Systems

The Robotics and Intelligent Systems minor focuses on the software needed to operate robots and other intelligent systems. The software processes information to achieve objectives, learn from past experience, adapt to a changing environment, and interact smoothly with people.

  • CSCI-261: Programming Concepts
  • CSCI-262: Data Structures
  • CSCI-404: Artificial Intelligence
  • CSCI-473: Human-Centered Robotics
  • MATH-201: Probability and Statistics
  • MEGN441: Introduction to Robotics
Courses

A complete list of undergraduate courses can be found in the Computer Science Undergraduate Catalog by clicking on the “Courses” tab.