Skip to main content area Skip to sub-navigation
Skip to main content

Computer Science Major

A liberal arts education helps students appreciate complexities of the real world and understand the interdisciplinary nature of problems. Computer science is at the heart of this enterprise; it leads to new ways of thinking, new ways of exploring multidisciplinary terrain, and new ways of understanding facets of the natural world. It is much more than a training ground for hackers or a pathway to a lucrative career.

Studying Computer Science at Colorado College allows students to learn this fascinating field while still having the flexibility in their schedule to discover and explore other interests. A typical computer science course has class in the morning with either lab sessions or professor office hours in the afternoon.

For more on the history of Computer Science and its role in a liberal arts education, click here.

The Department of Mathematics and Computer Science offers a BA degree in Computer Science and includes the following courses:

Computational Thinking: This course is designed for students who have never programmed and takes them from zero to Python programmers in 3.5 weeks. The course is recommended as both the entry into the computer science major or minor, and for anyone interested in learning programming skills that are valuable in many fields.

Computer Science 1 and 2: This course sequence introduces fundamental ideas in computer science including programming skills, data structures, and analysis of basic algorithms. Students learn the Java language and the basics of object-oriented programming.

Computer Organization: This course covers the technical foundations of modern computer technology. Topics include the C programming language, machine-level representations of data and code, and the basics of computer networking.

Software Design: Working code is critical, but for code to be truly useful over time it also needs to be well designed so it can be extended and maintained. Most software is developed in teams and teams need to have a well-defined development process to ensure that they both build the right system and build the system right.

300-Level Electives: After completing the introductory sequence (including both Computer Organization and Software Design), students can choose from a variety of elective courses. Recent offerings have included Artificial Intelligence, Computer Graphics, Database System, Parallel Programming, Programming Languages, Web Programming.

Senior Project: All students demonstrate their computer science skills by working on a year-long team project under the supervision of a faculty member. This is typically done in the senior year and culminates in a project presentation and report.

Theory of Computation and Analysis of Algorithms: These are the two culminating courses in the major. Theory of Computation covers abstract models of computation, including discussions of computability and complexity. Analysis of Algorithms covers both specific solutions to common computational problems as well as theoretical analyses of the hardness of problems in general.

Mathematical Foundations: There are strong links between Computer Science and Mathematics. To guarantee a solid mathematical background, students are required to take Calculus 1 and 2 and either Discrete Mathematics or Number Theory. Other math courses that are broadly relevant in computing include linear algebra, statistics and graph theory.