The CS degree at Mines is designed to be accessible to students with or without prior programming experience.  A distinguishing feature of the Computer Science program at Mines is an optional focus in three additional emphasis areas: Computer Engineering, Data Science, and Robotics and Intelligent Systems.  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, software engineering, and database management. 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, mobile applications, and web programming. Elective courses often relate to recent trends in computing, covering topics such as security, high performance computing, and wireless sensor networks.

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.

Program Educational Objectives (Bachelor Of Science In Computer Science)

In addition to contributing toward achieving the educational objectives described in the Mines' Graduate Profile, the Computer Science Program at Mines has established the following program educational objectives:

Students will demonstrate technical expertise within computer science by:

  • Designing and implementing solutions to practical problems in science and engineering,
  • Using appropriate technology as a tool to solve problems in computer science, and
  • Creating efficient algorithms and well-structured computer programs.

Students will demonstrate a breadth and depth of knowledge within computer science by:

  • Extending course material to solve original problems,
  • Applying knowledge of computer science to the solution of problems, and
  • Identifying, formulating and solving computer science problems.

Students will demonstrate an understanding and appreciation for the relationship of computer science to other fields by:

  • Applying computer science to solve problems in other fields,
  • Working in cooperative multidisciplinary teams, and
  • Choosing appropriate technology to solve problems in other disciplines.

Students will demonstrate an ability to communicate computer science effectively by:

  • Giving oral presentations,
  • Completing written explanations,
  • Interacting effectively in cooperative teams,
  • Creating well-documented programs, and
  • Understanding and interpreting written material in computer science.