About the Computer Science Major
A liberal arts education helps students appreciate the 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 a class in the morning with either lab sessions or professor office hours in the afternoon.
The Department of Mathematics and Computer Science offers a BA degree in Computer Science.
Included 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.
Advanced Python
This is a second course in Python programming. Building on Computational Thinking or other prior programming skills, the course will allow you to develop your programming skills further, in preparation for Computer Science 1 and 2.
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 Thinking
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 Systems, Parallel Programming, Programming Languages, and Web Programming.
Senior Project
All students demonstrate their computer science skills by working on a block-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.