Undergraduate Program in Computer Science

"The computer was born to solve problems that did not exist before." - Bill Gates

Computer Science at CSM

The CS degree at CSM 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 (does not include CSCI-101 ).

Core Curriculum CSCI-358 CSCI-261 CSCI-403 CSCI-406 CSCI-262 CSCI-341 CSCI-306 CSCI-442 CSCI-370 CSCI-400 CSCI Elective CSCI Elective CSCI Elective CSCI Elective
The Computer Science core consists of the following 11 courses:
CSCI-101Introduction to Computer Science
CSCI-261Programming Concepts
CSCI-262Data Structures
CSCI-306Software Engineering
CSCI-341Computer Organization
CSCI-358Discrete Mathematics
CSCI-370Advanced Software Engineering
CSCI-400Principles of Programming Languages
CSCI-403Database Management
CSCI-442Operating 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.


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 bulletin. The current bulletin as well as past bulletins are available through the Registrar's site.

Minors, ASIs and double majors

If you plan to obtain two BS degrees, be sure to review the Multiple Degrees section of http://bulletin.mines.edu/undergraduate/undergraduateinformation/undergraduatedegreerequirements/

If you plan to obtain a minor or ASI from another department, you should review these general requirements: http://bulletin.mines.edu/undergraduate/undergraduateinformation/minorasi/

© 2013 Colorado School of Mines | | Equal Opportunity | Privacy Policy | Directories | Mines.edu | rss