The Colorado School of Mines (CSM) is renowned for its robust engineering programs, with the Computer Science department being a standout. A crucial aspect of understanding and navigating through the CSM Computer Science curriculum is familiarizing oneself with the CS flowchart. This visual guide maps out the various courses, their prerequisites, and the sequence in which they should be taken, ensuring students stay on track towards their degree.

Before delving into the CS flowchart, it's essential to understand the two primary degree paths offered by CSM: the Bachelor of Science in Computer Science (BSCS) and the Bachelor of Arts in Computer Science (BACS). The BSCS is more rigorous and focused on technical aspects, while the BACS offers more flexibility for students interested in a broader range of subjects. Now, let's explore the CS flowchart in detail.

Bachelor of Science in Computer Science (BSCS)
The BSCS program at CSM is designed to equip students with a strong foundation in computer science fundamentals, along with specialized knowledge in areas like software engineering, computer networks, or data science. The CS flowchart for BSCS helps students plan their coursework effectively.

CSM's BSCS program requires a total of 128 credit hours, including a combination of core courses, technical electives, and general education courses. The core curriculum covers essential topics such as programming, data structures, algorithms, computer organization, and operating systems.
Core Courses

Core courses form the backbone of the BSCS program. They include:
- CS 131: Introduction to Programming - An introduction to programming concepts using Java.
- CS 132: Data Structures and Algorithms - Covers fundamental data structures and algorithmic techniques.
- CS 220: Computer Organization and Assembly Language - Explores the architecture of modern computers and assembly language programming.
- CS 240: Operating Systems - Covers the design and implementation of operating systems.
These core courses lay the groundwork for advanced studies in computer science. They are typically taken in the first two years of the program and have specific prerequisites that must be met.

Technical Electives
After completing the core curriculum, students can choose from a variety of technical electives to specialize their degree. Some popular options include:
- CS 310: Software Engineering - Teaches software development best practices and project management.
- CS 350: Computer Networks - Covers the design and analysis of computer networks.
- CS 415: Machine Learning - Introduces students to the fundamentals of machine learning and data mining.

Students must choose their technical electives carefully, as they often have specific prerequisites and may require approval from an academic advisor.
Bachelor of Arts in Computer Science (BACS)




















The BACS program at CSM offers students the flexibility to explore both computer science and other fields of interest. The CS flowchart for BACS helps students balance their course load between computer science and general education requirements.
The BACS program requires a total of 120 credit hours, including a combination of computer science core courses, technical electives, and general education courses from various disciplines. The core curriculum for BACS is similar to that of BSCS, but with fewer required technical electives.
Core Courses
Like the BSCS program, the BACS core curriculum covers essential computer science fundamentals. However, BACS students have more flexibility in choosing their technical electives, allowing them to explore other interests.
General Education Courses
BACS students must complete a significant number of general education courses, providing them with a well-rounded education. These courses can be chosen from various disciplines, such as mathematics, natural sciences, social sciences, humanities, and arts.
CSM's BACS program encourages students to pursue a minor or double major in another field, further expanding their academic horizons. This interdisciplinary approach prepares students for a wide range of careers in technology, business, and beyond.
In conclusion, understanding and navigating the CS flowchart is crucial for students pursuing a degree in computer science at the Colorado School of Mines. By familiarizing themselves with the CS flowchart, students can plan their coursework effectively, ensuring they stay on track towards their degree while maximizing their academic potential. As they progress through their studies, students should regularly consult the CS flowchart and seek guidance from academic advisors to make informed decisions about their course selections.