Computer Science Curriculum
Mission
Computer Science studies the design of computational processes, computing systems, and virtual objects.
The Colby Department of Computer Science is committed to making computer science an integral part of a liberal arts education. Our goal is to provide Colby students with a strong background in computer science, including the integration of knowledge from other disciplines. Our graduates will have the ability and experience to enable and produce new and innovative discoveries.
The Department of Computer Science has the broader goal of enabling computational thinking throughout the college community. Computational thinking is the ability to decompose a problem or process and describe it at the level of computable operations. Computational thinking integrates abstraction, hierarchical design, information management, and an understanding of complexity.
Objectives
Objectives are broad statements that describe the career and professional accomplishments that the program is preparing graduates to achieve.
We expect that graduates of the Colby Computer Science program will
- exhibit the ability to learn and apply new concepts and adapt to new technologies and challenges,
- seek out opportunities for continuing education and intellectual engagement, and
- become leaders and innovators in their chosen professions.
Outcomes
Outcomes relate to the skills, knowledge, and behaviors that students acquire through courses and degree programs.
Graduates of Colby College with a major in computer science will possess
- proficiency in computational thinking,
- the ability to analyze systems at the three levels of computer science: theory, software, and hardware,
- proficiency in the design and implementation of algorithms using multiple programming languages,
- the ability to apply computational thinking to a diverse set of problems and disciplines,
- the ability to communicate effectively and collaborate with others, and
- the ability to adapt to new challenges and computational environments.
Degree Programs
- Major in Computer Science
- Major in Computer Science with a Concentration in Artificial Intelligence
- Major in Computational Biology
- Major in Environmental Computation
- Major in Computational Psychology
- Major in IC Theater and Dance
- Major in IC Music
- Minor in Computer Science
- Minor in Data Science
- Honors in Computer Science
- Independent Study in Computer Science
Students with a variety of interests may want to explore Computer Science, as it impacts and interacts with virtually every discipline. Many advances in the natural and social sciences, engineering, and the humanities would not have been possible without the exponential growth in computing power and the corresponding design of advanced algorithms by computer scientists. Students who become majors or minors, or take just a few courses, will expand their possibilities by knowing more about how to effectively use computers and computation.
Computer science offers a major in CS, a minor in CS, a minor in Data Science, and five interdisciplinary computing majors: IC-Theater, IC-Music, Environmental Computation, Computational Biology, and Computational Psychology. The interdisciplinary majors are designed to give students depth in both computer science and their focus discipline, preparing them for careers or interdisciplinary graduate programs with a computational focus, such as digital media, geographic information systems, and bioinformatics, computational neuroscience, or computational biology.
The initial sequence of CS courses (CS {151, 152, or 153}, CS 231, and CS 251/2) also complements many disciplines. Whether you are an artist or a biology major, you will benefit by knowing more about how to apply computing to you area of interest. The first CS course for most students will be CS 151, 152, or 153 Computational Thinking. Students with significant programming experience should speak with a professor about taking a placement exam and potentially starting with CS 231.
Students may count only CS 15X, CS 231, and CS 251/2 toward a CS major or minor and any Interdisciplinary major. CS majors or minors may not also obtain a minor in Data Science. CS majors, IC majors, or CS minors interested in Data Science should complete a Statistics minor. Mathematics or Statistics majors interested in Data Science should complete a CS minor.
Major in Computer Science
The major in computer science is designed to prepare students for either graduate study or a career in a computation-related field. Colby CS majors have been successful in a wide variety of career paths.
Students planning to attend graduate school in CS should strongly consider taking CS 376 and CS 378, undertaking an honors project, and strengthening their math background beyond the minimum required.
- CS 15X Computational Thinking
- CS 231 Data Structures and Algorithms
- CS 232 Computer Organization
- CS 251 Data Analysis and Visualization or CS252 Mathematical Data Analysis and Visualization
- CS 333 Programming Languages
- One of CS 375 Analysis of Algorithms, CS 376 Algorithm Analysis and Design, or CS 378 Theory of Computation
- In addition to the core, one CS course at the 200 level or higher and three CS courses at the 300 level or higher.
- At least two of the four electives must be part of a two-semester sequence, finishing with a 400-level course.
- A 200-level mathematics or statistics course.
- Students must complete their math requirement prior to taking CS 375.
- MA 274 is a pre-requisite for CS 376 and CS 378.
- MA 253 is a pre-requisite for CS 252.
Core Requirements
Electives
Math/Statistics Requirement
Interested students should look at the example CS Major timelines. As is apparent from the timelines, taking a CS 15X course in your first year is strongly recommended. Students can take only one of the CS 15X courses. CS 151, 152, and 153 all satisfy a Q (Quantitative) requirement for graduation, in addition to providing an introduction to the fundamental concepts of computer science.
Major in Computer Science with a Concentration in Artificial Intelligence
The Computer Science major with a concentration in Artificial Intelligence prepares students for graduate work or careers as tool builders in AI.
- Computer Science Core: identical to the Core Requirements for the CS Major
- Artificial Intelligence Math: one of
- MA 253, in which case students should take CS 252, or
- MA 274, in which case students may take CS 252 or CS 251
- Artificial Intelligence Core
- CS 310
- Neural Networks (i.e. CS 343 at Colby)
- Artificial Intelligence Sequence: One of the following sequences:
- Simulation: CS 346, CS 446
- Interactive Systems: CS 353, CS 453
- Neural Networks: CS 343, CS 443 (but if this is the sequence, either CS 321, CS 346, CS 353, or an AI course from abroad must also be taken to satisfy the AI Core requirement)
- Other AI sequences by permission of the faculty
- Foundational Coursework (some courses may be satisfied by AP or other placement)
- CS 151, CS 152, or CS 153
- BI 163 and BI 164
- MA 125 or MA 130
- Required CS courses
- CS 231
- CS 251/2
- Two of: CS 333, CS341, CS 361, CS 365, CS 441, or other approved courses
- Required Biology courses:
- BI 278
- BI 279
- One of: BI 320, BI 371, BC 378, or other approved courses
- Required Statistics course: SC 212
- Focus requirement: two additional courses in BI, CS, or SC at the 300-level or above, chosen in consultation with their advisor.
- Foundational Coursework (4 courses; some may be satisfied by AP or other placement)
- CS 15X
- CS 231
- ES 118
- One 200-level course (e.g. ES 233, ES 234, ES 242, ES 244, ES 265, ES 271, ES 276 or ES 283)
- Required Modeling and Analysis Courses (4 courses)
- CS 251/2
- One of CS 341, CS 346, CS 363, CS 365, or other approved CS course)
- ES 212 or ES 214
- SC 212 or MA 160
- Application Courses (5 courses)
- At least one, and up to two CS courses at the 300 level or above.
- At three, and up to four ES courses not also counted elsewhere to provide depth in an application area. For recommended application groups, see the catalog entry under Environmental Studies.
- One mathematics and statistics course out of: SC 321, MA 253, MA 262, MA 311, or MA 332.
- Culminating Experience
- ES 401, 402 (one credit for the year)
- One capstone selected from the following in consulation with the student's advisor:
- A CS 4XX course (each has a CS 3XX prerequisite)
- ES 493
- ES 494
- Foundational Courses (3 courses: some may be satisfied by AP or other placement)
- CS 15X
- CS 231
- PS 111
- Core Methods and Topics Courses (6 courses)
- CS 251/2
- PS 214
- PS 215
- At least three 200-level PS courses
- Applications Courses (3 courses)
- One of CS 341, CS 343, CS 346, CS 363, CS 365
- One additional 300- or 400-level CS course
- One 300-level PS course with an associated course in collaborative research
- Culminating Experience (1 or 2 courses)
- PS 416, or
- PS 483 and PS 484 (by invitation), or
- CS 483 and CS 484 (by invitation), or
- A 400-level CS course
- CS Coursework (5 courses; CS 15X may be satisfied by placement)
- CS 151 (preferred), CS 152, or CS 153
- CS 231
- CS 251/2
- CS 351, CS 353 (or approved alternative)
- CS 267, CS 269, CS 451, CS 453 (or approved alternative)
- Theater and Dance Coursework (5 courses)
- TD 113 The Dramatic Experience or TD 114 The Dance Experience
- TD 135 Introduction to Design
- TD 171 Acting I or two of TD 115, TD 116, TD 117, TD 119
- TD 281 Directing or TD 285 Choreography
- TD 235 Intermediate Design or TD 365 Adv. Topics in Design
- Culminating Experience (1 course/4 credits): a capstone project designed in consultation with the major advisors in both departments.
- CS Coursework (5 courses; CS 15X may be satisfied by placement)
- CS 151, CS 152, or CS 153
- CS 231
- CS 251/2
- One of CS 267, CS 269, CS 453 or approved alternative
- One of CS 351, CS 353, CS 363, CS 365 or approved alternatives
- Music Coursework (5 courses)
- MU 111
- MU 181
- MU 182
- MU 282
- Two semesters of applied lessons (same instrument, for credit)
- Culminating Experience (4 credits/1 course): MU 491 or MU 492 capstone project, developed in consultation with the major advisors in both departments.
- CS 151, 152, or 153 Computational Thinking
- CS 231 Data Structures and Algorithms
- CS 251/2 Data Analysis and Visualization
- One 3 or 4 credit 200-level or higher CS course
- One 3 or 4 credit 300-level or higher CS course
- A course numbered 400 or above, or
- an independent study or capstone course of at least 4 credits in the student's major department with a significant computing component, or
- two 300 level courses.
- Foundation Courses (3 courses: some may be satisfied by AP or other placement)
- CS 15X
- MA 160 or MA 165
- SC 212
- Core Courses (3 courses)
- CS 231
- CS 251/2
- SC 321
- Application Courses: one of the following
- CS 341, CS 343, CS 346, CS 363, CS 365, or
- MA 253, or
- SC 306, SC 308, SC 310, or other approved course
Note to students planning to study abroad. If you take a neural networks course abroad (e.g. a course at DIS), then it will fulfill the core neural networks requirement, but it will not serve as a pre-req for CS443 at Colby. That means you may take neural networks abroad (assuming the specific course is OK'd by the department), and then take CS343 and CS443 here.
Major in Computational Biology
The Computational Biology major is intended for students interested in industry or post-graduate work in that area. Computational biology is a broad term describing many areas where computation is used to model or analyze biological systems. These include: mathematical and computational modeling of cells, cell networks, individual organisms, and ecosystems; the analysis of genomes, their evolution, and the relationships between species and ecosystems; and understanding the expression of genomes in response to growth, stress, and other environmental factors.
Major in Environmental Computation
The interdisciplinary major in environmental computation provides an introduction to environmental studies as a discipline as well as training in computational techniques used in environmental policy and science. Students become familiar with quantitative tools used to investigate environmental problems. The major is designed to provide students with proficiency in computational thinking, the analysis and understanding of environmental systems, challenges, and solutions, and in the design and implementation of algorithms for modeling and analysis. Students gain experience applying computational thinking and statistical methods to a diverse spectrum of topics in environmental studies and are introduced to the complexity and inter-relatedness of coupled human and natural systems and diverse computational environments. Diverse electives allow students to explore environmental topics in depth, including agriculture and food, conservation science, energy and climate, environmental humanities, marine and freshwater conservation, and public health.
Major in Computational Psychology
The interdiscplinary major in computational psychology provides a strong foundation for students interested in applying advanced computational modeling an analysis techniques to problems in human pscyhology and cognitive development.
Major in IC Theater and Dance
The theater and dance-interdisciplinary computation major focuses on the growing relationship between computation and performance scenography and the multiple applications of software technologies to stage design. It offers a sequenced, stage design-based curriculum while also providing students with exposure to the theory and practice of dance, acting, choreography, and directing. Students should begin by taking Theater and Dance 113 or 114, and Computer Science 151 in their first year, then Theater and Dance 135 and Computer Science 231 (fall) and 251/2 (spring) in their second year. The remaining requirements may be taken in any other semester in consultation with the major advisors in theater and dance and computer science.
Major in IC Music
The music interdisciplinary computation major gives students the opportunity to pursue the creation of music using digital and advanced computational techniques. Students interested in this major should take the introductory CS and Music courses in their first year.
Minor in Computer Science
The minor in computer science is intended to give students the ability to apply computing and computation appropriately and effectively within their major discipline. The core and electives provide a background in both fundamental and applied CS, and the capstone experience explicitly ties together CS and the student's major discipline.
Core Requirements
Electives
Capstone Experience
The independent study/capstone option must be pre-approved by a computer science advisor.
Minor in Data Science
The data science minor equips students with the analytical tools and capacities needed to interact with real-world data in a research environment that is changing and growing very quickly.
A student majoring in economics or psychology who has completed the second semester of the respective statistics/methods sequence need not take Statistics 212. A student majoring in computer science, mathematical sciences, or mathematical sciences with a concentration in statistics may not minor in data science. A student minoring in data science may not minor in computer science nor in statistics.
Honors in Computer Science
Honors in computer science is for students who wish to pursue a topic more deeply than may be available in their regular coursework. Honors projects can be significant software projects or research in some area of computer science. Projects that have applications in or ties to other disciplines at Colby are strongly encouraged.
Students who with to pursue honors must have a grade point average of 3.6 in all computer science courses numbered 200 or higher and discuss potential projects with a CS advisor in the spring of their junior year.
The honors project itself consists of two semesters of independent study (CS 483-484), culminating in both a written paper and a colloquium presentation. Students who successfully complete the requirements and receive the recommendation of the department will graduate "With Honors in Computer Science".
Independent Study in Computer Science
An independent study is a course in which a student conducts an independent project under the direction of a faculty sponsor. Independent studies are typically part of a faculty research project or a student honors project. If you are interested in an independent study, please read this document and contact a faculty member to begin a discussion.