Published annually, the Course Catalog sets out the requirements of the academic programs--the majors, minors, and concentrations. Each Bryn Mawr student must declare her major before the end of her sophomore year. Students may also declare a minor or a concentration, but neither is required for the A.B. degree. Students must comply with the requirements published in the Course Catalog at the time when they declare the major, minor and/or concentration.
The Course Catalog also sets out the College requirements. Students must comply with the College requirements published at the time they enter Bryn Mawr College.
Students may complete a major or minor in Computer Science or a minor in Computational Methods.
Computer Science consists of the science of algorithms (theory, analysis, design and implementation) as well the design and implementation of computer systems. As such it is an interdisciplinary field with roots in mathematics and engineering and applications in many other academic disciplines. The department at Bryn Mawr is founded on the belief that Computer Science should transcend from being a subfield of mathematics and engineering and play a broader role in all forms of human inquiry.
The Computer Science Department is supported jointly by faculty at both Bryn Mawr and Haverford Colleges. The department welcomes students who wish to pursue a major in Computer Science. Additionally, the department also offers a minor in Computer Science, a concentration in Computer Science (at Haverford College) and a minor in Computational Methods (at Bryn Mawr College). The department also strives to facilitate double majors and evolving interdisciplinary majors. Students can further specialize their majors by selecting elective courses that focus on specific disciplinary tracks or pathways within the discipline.
All majors, minors and concentrations offered by the department emphasize foundations and basic principles of information science with the goal of providing students with skills that transcend short-term trends in computer hardware and software.
Major in Computer Science
Students are encouraged to prepare a major course plan in consultation with their academic adviser in Computer Science. The requirements for a major in computer science are:
Three introductory courses:
- CMSC B110 (or H105): Introduction to Computing, or CMSC B113: Computer Science I, or BIOL B115: Computing through Biology
- CMSC B206 (or H106 or H107): Data Structures
- CMSC/MATH B/H231: Discrete Mathematics
Four core courses:
- Any two of
- CMSC B/H240: Principles of Computer Organization
- CMSC B/H245: Principles of Programming Languages
- CMSC B246: Systems Programming
- Any one of
- CMSC B330: Algorithms: Design & Practice
- CMSC B340: Analysis of Algorithms
- Any one of
- CMSC B355/H356: Operating Systems
- CMSC B/H350: Compiler Design
Plus four electives in Computer Science (at least three must be 300-level or above) and senior seminar CMSC B399. Note that CMSC H340 does not fulfill the writing requirement and cannot be used in place of CMSC B340. All requirements must be completed with merit grades.
NOTE: For Class of 2021 the requirements for the Major are slightly different from above- three introductory courses (same as above), three core courses (2 of 240, 246, 246 PLUS 1 of 330/340B), five electives (4 out of 5 must be 300-level or above).
Students can specialize in specific disciplinary tracks or pathways by carefully choosing their elective courses. Such pathways can enable specialization in areas such as: computational theory, computer systems, computer graphics, computational geometry, artificial intelligence, information visualization, computational linguistics, etc. Students should ensure that they have completed at least three courses in computer science by the end of their sophomore year (we highly recommend CMSC 110/113, 206 and 231).
Minor in Computer Science
Students in any major are encouraged to complete a minor in computer science. Completing a minor in computer science enables students to pursue graduate studies in computer science, in addition to their own major. The requirements for a minor in computer science at Bryn Mawr are (Haverford equivalents are not listed, please see above): CMSC 110/113 or BIOL 115, CMSC 206 and CMSC 231, any two of CMSC 240, 245, 246, 330, 340 or 345, and one elective chosen from any course in computer science, approved by the student's adviser in computer science. All requirements must be completed with merit grades.
Minor in Computational Methods
This minor is designed to enable students majoring in any discipline to learn computational methods and applications in their major area of study. The requirements for a minor in computational methods are (Haverford equivalents are not listed, please see above): CMSC 110/113 or BIOL 115, CMSC 206 anc CMSC 231; one of CMSC 245, 246, 330, 340 or 345; any two additional computational courses depending on a student's major and interests (there are many such courses to choose from in various departments). All requirements must be completed with merit grades.
Students can declare a minor at the end of their sophomore year or soon after. Students should prepare a course plan and have it approved by at least two faculty advisers. Students minoring in computational methods are encouraged to propose senior projects/theses that involve the application of computational modeling in their major field of study.