Undergraduate Program in Computer Science
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 ).
|CSCI-101||Introduction to Computer Science|
|CSCI-370||Advanced Software Engineering|
|CSCI-400||Principles of Programming Languages|
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.
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/