Computer Science
The Computer Science Department offers major programs in the Morrissey College of Arts and Sciences leading to the degrees of Bachelor of Arts and Bachelor of Science as well as a minor and a Concentration in Bioinformatics. The department also offers a Data Science Minor. For further information, contact the Computer Science Department at 245 Beacon Street, Third Floor Suite 324, 617-552-3975.
Bachelor of Arts in Computer Science
The curriculum for the Bachelor of Arts degree in Computer Science is based on current recommendations of the Association for Computing Machinery (ACM) for liberal arts institutions. The program is designed both to provide a solid foundation in the fundamentals of computer science and to provide practical, hands-on experience with computing systems, as the current technology job market dictates.
Bachelor of arts students complete a 34-credit computer science component, supplemented by a mathematics component rooted in calculus. For most students, the program requires completion of fourteen 3-credit courses along with one 1-credit lab.
Computer Science Component
The 34 credits required for completion of the Bachelor of Arts major are grouped into two categories, seven required core courses (totaling 22 credits) and four electives (totaling at least 12 credits). The seven required core courses are the following:
- CSCI1101 Computer Science I
- CSCI1102 Computer Science II
- CSCI2243 Logic and Computation
- CSCI2244 Randomness and Computation
- CSCI2271 Computer Systems
- CSCI2272 Computer Organization and Lab
- CSCI3383 Algorithms
All of these courses are 3 credits with the exception of CSCI2272, which is 4 credits. The remaining 12 credits will typically be earned from four courses with 3 credits earned through any CSCI courses numbered CSCI2000 or above and at least 9 of the credits earned from courses at the CSCI3000 level or above.
Logic and Computation and Randomness and Computation (CSCI2243 and CSCI2244) provide students with mathematical fundamentals necessary for Computer Science. It is necessary that these courses be completed no later than the end of junior year, since this material is a prerequisite for the required course Algorithms (CSCI3383). CSCI2243 and CSCI2244 are also required prerequisites for many 3000-level CSCI electives.
Students enrolled in the computer science BS, BA, or Minor programs must maintain a grade point average (GPA) of 1.67 or above in the CSCI courses counted toward their program's requirements. This policy applies to students who declare any CSCI major or minor after the spring 2023 semester.
Mathematics Component
Mathematics courses required for completion of the bachelor of arts major:
- MATH1103 Calculus II (Math/Science majors)Â
- MATH2210 Linear Algebra
Many students will need to complete a prerequisite calculus course (e.g., MATH1102 (Calculus I for Science Majors) before MATH1103, so this calculus requirement is often satisfied by enrolling in a two-semester sequence.
Bachelor of Science in Computer Science
The curriculum for the Bachelor of Science major in Computer Science is designed to provide an extensive background in computer science and is well suited for students considering graduate study or students planning to pursue careers in science or engineering.
Bachelor of Science students must complete a 38-credit computer science component, supplemented by a mathematics component and a natural science component.
Computer Science Component
The Bachelor of Science major in Computer Science requires a minimum of 37 credits in computer science. The computer science credits are grouped into two categories: seven required CSCI courses (totaling 22 credits) and five elective courses (totaling at least 15 credits).
The seven required core courses are:
- CSCI1101 Computer Science I
- CSCI1102 Computer Science II
- CSCI2243 Logic and Computation
- CSCI2244 Randomness and Computation
- CSCI2271 Computer Systems
- CSCI2272 Computer Organization and Lab
- CSCI3383 Algorithms
All of these courses are 3 credits with the exception of CSCI2272, which is 4 credits.
Of the 15 credits of electives, 3 credits must be earned from one course in the social and ethical issues cluster (CSCI2260–2267) and at least 12 credits must be from courses numbered CSCI3000 or above.
Logic and Computation, and Randomness and Computation (CSCI2243 and CSCI2244) provide students with mathematical fundamentals necessary for Computer Science. It is necessary that these be completed no later than the end of junior year, since this material is prerequisite for the required course Algorithms (CSCI3383). CSCI2243 and CSCI2244 are also required prerequisites for many 3000-level CSCI electives.
Students enrolled in the computer science B.S., B.A., or Minor programs must maintain a grade point average (GPA) of 1.67 or above in the CSCI courses counted toward their program's requirements. This policy applies to students who declare any CSCI major or minor after the spring 2023 semester.
Mathematics Component
At least 12 credits of mathematics are required for completion of the Bachelor of Science major:
- MATH1103 Calculus II (Math/Science majors)Â
- MATH2202 Multivariable Calculus
- MATH2210 Linear Algebra
- Any MATH course 3000 or higher, other than MATH4426 Probability.
Since many students will need to complete MATH1102 before taking MATH1103, this calculus requirement will often be met by enrolling in a two-semester sequence.
Science Component
A two-semester sequence in a laboratory science for science majors. The sequences that fulfill this requirement can be chosen from among Biology, Chemistry, Physics or Earth and Environmental Sciences.
Biology:
- BIOL2000 Molecules and Cells, BIOL2010 Ecology and Evolution and BIOL2040 Investigations in Molecular Cell Biology Lab, or
- BIOL2000 Molecules and Cells, BIOL3030 Introduction to Physiology and BIOL2040 Investigations in Molecular Cell Biology Lab;
Chemistry:
- CHEM1109/1111/113 General Chemistry I and CHEM1110/1112/1114 General Chemistry II or
- CHEM1117/1119/1121 Honors Modern Chemistry I and CHEM1118/1120/1122 Honors Modern Chemistry II;
Physics:
- PHYS2200/2050 Introductory Physics I (Calculus) and PHYS2201/2051 Introductory Physics II (Calculus);
Earth and Environmental Sciences:
Option #1
- Exploring the Earth EESC1132/1133
Then any two of the following 2-credit Environmental Systems courses:
- EESC2202/2212 Ecosystems
- EESC2203/2213 Water Resources
- EESC2204/2214 The Critical Zone
- EESC2205/2215 Climate Change
- EESC2206/2216 Oceans
- EESC2207/2217 Earthquakes
- EESC2208/2218 Quantitative Methods
Option #2
- Exploring the Earth EESC1132/1133
Then any 2000, 3000, or 4000 level class in EESC (note the prerequisites)
Option #3
Any two of the following 2-credit Environmental Systems courses:
- EESC2202/2212 Ecosystems
- EESC2203/2213 Water Resources
- EESC2204/2214 The Critical Zone
- EESC2205/2215 Climate Change
- EESC2206/2216 Oceans
- EESC2207/2217 Earthquakes
- EESC2208/2218 Quantitative Methods
Then any 2000, 3000, or 4000 level class in EESC (note the prerequisites)
Departmental Honors
Junior and senior Computer Science majors with at least a 3.3 GPA in CSCI courses are eligible to join the Departmental Honors Program. To graduate with the Departmental Honors designation, eligible students must maintain at least a 3.3 GPA in CSCI courses and complete a senior thesis. Thesis requirements are to have a thesis proposal approved by a faculty advisor and by the Honors Committee by the end of junior year. Students in the Departmental Honors Program must;
- Complete two sections of CSCI4961 Honors Thesis during their senior year with grades of B+ or higher;
- Submit a written honors thesis by the last day of class in the second semester of senior year, and
- Give a 30-minute presentation of their thesis at the end of their senior year.
Students participating in the Honors Program are required to take both sections of CSCI4961 Honors Thesis. One section of CSCI4961 Honors Thesis may count as a CSCI 3000-level elective.
The Computer Science Minor Program
The minor program in Computer Science is designed to provide an introduction to computer science, primarily for mathematics and science majors. It is also suitable for students with a strong secondary interest in computer science and good analytical skills.
18 credits are required for completion of the minor.
The requirements for a Minor in Computer Science are:
- CSCI1101 Computer Science I
- CSCI1102 Computer Science II
- Two electives numbered 2000 or higher and one of them must be CSCI2243 (Logic and Computation) or CSCI2271 (Computer Systems). Courses from the social and ethical issues cluster (CSCI2260–2267) are not accepted as one of the 2000-level required courses.
- Two electives numbered 3000 or higher
The minor also requires students to do a Math course, MATH1103 Calculus II (Math/Science majors). Many students will need to complete a prerequisite calculus course (e.g., MATH1102 (Calculus I for Science Majors) before MATH1103, so this calculus requirement is often satisfied by enrolling in a two-semester sequence.
Students can declare a minor in computer science after they have taken CS2 or enrolled in the course (following the add/drop deadline). The minor must be declared before the end of the student's sophomore year.
Students pursuing a minor in computer science should carefully consider the prerequisites of 3000-level courses when selecting 2000-level electives. Several 3000-level electives specify CSCI2243 Logic and Computation and/or CSCI2271 Computer Systems as prerequisites. The 3000-level CSCI electives are in high demand, so minors should be prepared for a wide variety of 3000-level electives.
The Computer Science Minor Program
The Data Science Minor at Boston College is an interdisciplinary program emphasizing human-centered applications of data analysis and modeling for the common good. The minor is open to all undergraduate students at Boston College.Â
18 credits are required for completion of the minor. The requirements for a Minor in Data Science are:
- CSCI1090 Data Science PrinciplesÂ
- MATH2250 Mathematical Foundations of Data Science
- CSCI2291 Data Science: Methods and Applications
- Two electives from the approved Data Science minor elective list
- CSCI4900 Data Science Capstone
Students can apply to the minor in data science after they have taken CSCI1090 and Math2250. Students must apply to the minor before the end of sophomore year.
Interdisciplinary Concentration in Bioinformatics
The Bioinformatics Concentration is offered to students majoring in Biology, Mathematics, or Computer Science. Please note that courses in this concentration may overlap with major or minor requirements. In addition, a semester of bioinformatics research within a lab can be substituted for either one of the three additional computer science courses or the computational biology course. Students wishing to pursue this option should visit the Biology Department (Higgins 355) for course approval.
Course Requirements (for a Total of Seven Courses)
- BIOL2000 Molecules and Cells or BIOL3150 Introduction to Genomics (fall/spring)
- One of the following statistics courses:
- BIOL2300 Biostatistics
- MATH4426 Probability
- CSCI2244 Randomness and Computation
- BIOL4200 Introduction to Bioinformatics (spring)
- A computational biology course, such as:
- BIOL6160 Graduate Bioinformatics
- BIOL4802 Research in Evolutionary Genomics*
- Undergraduate Research in a Computational Biology lab
- Any three computer science courses at the level of CSCI1101 or above, such as:
- CSCI1101 Computer Science 1 (recommended)
- CSCI1102 Computer Science 2 (recommended)
- CSCI2227 Introduction to Scientific Computation*
- CSCI3345 Machine Learning*
- CSCI3383 Algorithms*
*Prerequisites apply
Information for First-Year Majors and Non-majors
The Computer Science majors are for students who enjoy using computers and who wish to gain a deeper understanding of computing technology. Both B.S. and B.A. majors are designed to provide a solid foundation in the fundamentals of computer science. At the same time, they provide practical, hands-on experience, as the current technological job market dictates. Students are prepared for a variety of careers such as software development, network administration, technical support, and systems analysis. In addition, knowledge of computing technology is becoming increasingly important for people entering business, law, and the healthcare fields.
First-Year Computer Science Majors
First-year students considering majoring in Computer Science should plan to complete the program's calculus requirement (MATH1102 or higher) during their first year. Most will enroll in MATH1100 in fall semester and continue with MATH1103 in spring semester. Students who either carry advanced mathematics placement or who have completed a year of calculus in high school, should enroll directly in MATH1103 (or a more advanced course) in the fall semester. First-year students wishing to double major in Computer Science and Mathematics should take the calculus sequence recommended for the Mathematics major.
First-year students with prior programming experience are encouraged to take CSCI1101 Computer Science I. Students who have had no programming experience should consider beginning with Principles of Computer Science (CSCI1080) in their first semester. First-year students who have achieved a score of 4 or higher on the Computer Science AP examination or students entering with significant programming backgrounds should speak with the Undergraduate Program Director about course placement.
First-Year Non-majors
The department periodically offers introductory 3-credit courses in computer science: CSCI1080, CSCI1101, and CSCI2227.
CSCI1080 and CSCI1101 are the introductory programming courses. One of these is required of all Computer Science majors and minors and is a prerequisite for all advanced computer science courses. The skills needed to write computer programs come easily to some people and less easily to others. Students who have little or no programming experience and are apprehensive about their ability should consider enrolling in CSCI1080 before enrolling in CSCI1101.
CSCI2227 is an introduction to programming with an orientation to scientific applications, using MATLAB as the programming language.
Transfer Credits and Placement for Computer Science Courses
The Computer Science Department will accept transfer credits from other schools with documentation (for example, syllabi) sufficient for us to determine course equivalence. Before taking an external course, check Ï㽶Ðã's academic policies. AP, IB, and GCE scores are used to make placement decisions, but not for course credit. Specifically, students who score a 5 on the Computer Science A exam, or a 4 or 5 on the Computer Science AB exam, or who have significant programming experience should consult with the Chairperson of the Department or Undergraduate Program Director about starting the Computer Science course sequence with CSCI1102.
Course Availability
Most introductory courses (e.g., CSCI1101 and CSCI1102) are available every semester. CSCI1080 is offered every fall. All courses that are required for the major are offered at least once each academic year. Most advanced electives are offered only in alternate years; hence, student schedules should be designed carefully.
Course Credit Information
All Computer Science courses are prefixed by the letters CSCI and are registered as courses in the Morrissey College of Arts and Sciences. However, some courses are cross-listed with other departments.
Students enrolled in the computer science B.S., B.A., or Minor programs must maintain a grade point average (GPA) of 1.67 or above in the CSCI courses counted toward their program's requirements. This policy applies to students who declare any CSCI major or minor after the spring 2023 semester.