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 minor and concentration programs in Computer Science and Bioinformatics. The Information Systems Department offers a program in Information Systems. Consult their listing under the Carroll School of Management for a program description. For further information, contact the Computer Science Department at St. Mary’s Hall, Second Floor South, 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 or CSCI1103 Computer Science I Honors
- 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 especially important that these 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.
Mathematics Component
One semester of calculus at the level of Calculus II or higher is required for completion of the bachelor of arts major. Students will ordinarily complete the calculus requirement with any one of the following courses: MATH1101, MATH1103, MATH1105, or MATH2202. Many students will need to complete a prerequisite calculus course (e.g., MATH1100 before MATH1101 or MATH1102 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 or CSCI1103 Computer Science I Honors
- 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 especially important 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.
Mathematics Component
At least 12 credits of mathematics are required for completion of the bachelor of science major:
- MATH1103 Calculus II (Math/Science majors) or MATH1105 Calculus II–AP (Math/Science majors)
- MATH2202 Multivariable Calculus
- MATH2210 Linear Algebra
- Any MATH course 3000 or higher, other than MATH 4426 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. In order 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 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 or CSCI1103 Computer Science I Honors
- CSCI1102 Computer Science II
- Two electives numbered 2000 or higher (only one of: CSCI2257 Database Systems and Applications or CSCI2267 Technology and Culture may count toward this requirement)
- Two electives numbered 3000 or higher
Students pursuing a minor in computer science should 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.
Students wishing to pursue a minor emphasizing computer science should consider the foundations sequence:
- CSCI2243 Logic and Computation and
- CSCI2244 Randomness and Computation (to be taken after CSCI2243)
Students wishing to pursue application development or applications of computer science in management may wish to consider:
- CSCI2254 Web Application Development and
- CSCI2257 Database Systems and Applications
Students wishing to pursue applications in data science may wish to consider:
- CSCI2244 Randomness and Computation (to be taken after CSCI2243),
- CSCI3346 Data Mining, or
- CSCI3345 Machine Learning
Students wishing to pursue applications in security may wish to consider:
- CSCI2201 Computer Security,
- CSCI2243 Logic and Computation, and
- CSCI3381 Cryptography
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*
- CSCI3346 Data Mining*
- 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 health care fields.
First Year Computer Science Majors
First year students considering majoring in Computer Science should plan to complete the program's calculus requirement (MATH1101 or higher) during their first year. Most will enroll in MATH1100 in fall semester and continue with MATH1101 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 MATH1101–1102 (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.
Freshmen with some prior programming experience or strong technical skills are encouraged to take CSCI1101 Computer Science I or CSCI1103 Computer Science I Honors or CSCI1102 Computer Science II in their first semester. Those students who have had no programming experience may consider beginning with an introductory computer course (e.g., CSCI1074) in their first year. First year students who have achieved a score of 4 or higher on the Computer Science A.P. examination or students entering with significant programming backgrounds, should speak with the Computer Science Chairperson or Undergraduate Program Director about proper course placement (e.g., directly taking CSCI1102).
First Year Non-majors
The department periodically offers introductory 3-credit courses in computer science: CSCI1074, CSCI1075, CSCI1101, CSC1103, and CSCI2227.
CSCI1074 is a survey of Computer Science for students who know little about computing. How do computer hardware and software really work? How is information (text, music, images, numbers) represented in computer files, CDs, digital cameras, and iPods; how do computers manipulate this digitally encoded information; and how is it all sent around the Internet? Students will learn the answers to these questions through weekly hands-on computer exercises.
CSCI1075 is a gentle introduction to computer programming for non-majors. Students will learn about computers and computer software by working with a small personal robot. Students will learn the Python programming language, and write Python programs to control their robot's behavior, explore its environment, and perform various tasks. As we get our robots to do more and more, we learn how software is designed and written to solve real problems.
CSCI1101 and CSCI1103 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. Therefore, students who wish to take more than one course in computer science will need to take either CSCI1101 or CSCI1103 at some point. 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 CSCI1074 before enrolling in CSCI1101 or CSCI1103.
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 BC'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, CSCI1103, and CSCI1102) are available every semester. CSCI1074 and CSCI1075 are offered periodically. 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 the Information Systems department in the Carroll School of Management.