University Catalog for Undergraduate Students

Undergraduate Program

computer science

 On This Page...

Undergraduate Program Description

The Computer Science Department offers major programs in the 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, Bioinformatics, and Scientific Computation, and a concentration in Computer Science for students in the Carroll School of Management. 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 Maloney Hall, Room 559, 617-552-3975.

The requirements for the major programs in Computer Science are being changed. The change consists of both the university-wide transition from a course-based to a credit-based system of requirements and the replacement of two required courses, CS 245 Discrete Mathematics and CS 385 Theory of Computation with two new courses, CS 243 Logic and Computation and CS 244 Randomness and Computation. Therefore, the description of the major requirements below lists two separate sets of requirements. Majors and prospective majors should read the requirements carefully and the instructions below in order to plan their program.

top

College of Arts and Sciences

Bachelor of Arts in Computer Science: Class of 2014 and Following

The curriculum for the Bachelor of Arts degree in Computer Science is based on current recommendations offered by the Association for Computing Machinery (ACM) for liberal arts institutions. The program is designed to provide a solid foundation in the fundamentals of computer science. At the same time, it provides 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 14 three-credit courses along with one one-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 12 credits). The seven required core courses are the following:

  • CS 101 Computer Science I
  • CS 102 Computer Science II
  • CS 243 Logic and Computation
  • CS 244 Randomness and Computation
  • CS 271 Computer Systems
  • CS 272 Computer Organization/CS 273 Computer Organization Lab (this combination counts as one course)
  • CS 383 Algorithms

All these courses are three credits with the exception of CS 273, which is a one-credit lab.

Computer Organization (CS 272) has a required one-credit corequisite lab (CS 273). The remaining twelve credits will typically be earned from four courses: at least nine of the credits must be earned from courses at the CS 300 level. The remaining credits may be earned through any CS courses numbered CS 200 or above.

CS 243 and CS 244 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 CS 383 Algorithms. CS 243 and CS 244 are required prerequisites for many 300-level CS 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: MT 101, MT 103, MT 105, or MT 202. Realistically, most students will need to complete a prerequisite calculus course (e.g., MT 100 before MT 101, or MT 102 before MT 103), so this calculus requirement will usually be met by enrolling in a two-semester sequence.

Bachelor of Arts in Computer Science: Class of 2013

The curriculum for the Bachelor of Arts degree in Computer Science is based on current recommendations offered by the Association for Computing Machinery (ACM) for liberal arts institutions. The program is designed to provide a solid foundation in the fundamentals of computer science. At the same time, it provides practical, hands-on experience with computing systems, as the current technology job market dictates.

Bachelor of Arts students complete a 10-course computer science component, supplemented by a mathematics component rooted in Calculus and Discrete Mathematics. For most students, the program requires completion of thirteen courses.

Computer Science Component

A minimum of ten courses in computer science are required for completion of the Bachelor of Arts in Computer Science. The ten Computer Science courses are grouped into two categories: six required core courses and four electives. The six required core courses are:

  • CS 101 Computer Science I
  • CS 102 Computer Science II
  • CS 271 Computer Systems
  • CS 272 Computer Organization with required CS 273 Computer Organization Lab
  • CS 383 Algorithms
  • CS 385 Theory of Computation

All these courses are three credits with the exception of CS 273, which is a one-credit lab.

Of the four electives, at least three must be numbered CS 300 and above. The fourth elective may be any course numbered CS 200 or above.

CS 243 and CS 244 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 CS 383 Algorithms. CS 243 and CS 244 are required prerequisites for many 300-level CS electives.

Mathematics Component

At least two mathematics courses are required for completion of the Bachelor of Arts major: one semester of Calculus at the level of Calculus II or higher and one semester of Discrete Mathematics. Students ordinarily complete the calculus requirement with any one of the following courses: MT 101, MT 103, MT 105, or MT 202. Realistically, most students will need to complete a prerequisite calculus course (e.g., MT 100 before MT 101, or MT 102 before MT 103), so this calculus requirement will usually be met by enrolling in a two-semester sequence. Students must complete the Discrete Mathematics requirement with the one-semester course CS/MT 245 Discrete Mathematics. Double majors in mathematics may satisfy the Discrete Mathematics requirement by taking MT 445. It is especially important that Discrete Mathematics be completed no later than the end of junior year, since this material is a prerequisite for the two required courses, CS 383 Algorithms and CS 385 Theory of Computation as well as CS 366 Principles of Programming Languages.

Class of 2013: Students in this class who have taken Discrete Mathematics should have taken CS 385 in the fall of 2010 and complete the major requirements listed above.  Students who have not taken Discrete Mathematics should instead have taken CS 244 in the spring of 2011 and CS 243 in the fall of 2011, but otherwise follow the requirements listed above.

Bachelor of Science in Computer Science: Class of 2014 and Following

The curriculum for the Bachelor of Science major in Computer Science is based on requirements specified by the Computer Science Accreditation Board (CSAB). The program 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 12-course (equivalent to 36 credits) computer science component, supplemented by a mathematics component and a natural science component.

Computer Science Component

A minimum of 38 credits in computer science are required for completion of the Bachelor of Science major in Computer Science. The computer science credits are grouped into two categories, eight required CS courses (totaling 26 credits) and four elective courses (totaling at least 12 credits).

The eight required core courses are:

  • CS 101 Computer Science I
  • CS 102 Computer Science II
  • CS 243 Logic and Computation
  • CS 244 Randomness and Computation
  • CS 271 Computer Systems
  • CS 272 Computer Organization/CS 273 Computer Organization Lab (this combination counts as one course)
  • CS 372 Computer Architecture/CS 373 Computer Architecture Lab (this combination counts as one course)
  • CS 383 Algorithms

Computer Organization (CS 272) has a required corequisite lab (CS 273); Computer Architecture (CS 372) has a required corequisite lab (CS 373). All these courses are three credits with the exception of CS 273 and CS 373, which are 1-credit labs.

Of the 12 credits of electives, at least nine must be from courses numbered CS 300 or above. The remaining three credits must be earned from one course in the social and ethical issues cluster: CS 260-CS 269.

CS 243 and CS 244 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 CS 383 Algorithms. CS 243 and CS 244 are required prerequisites for many 300-level CS electives.

Mathematics Component

At least 12 credits of mathematics are required for completion of the Bachelor of Science major:

  • MT 103 Calculus II (Math/Science Majors) or MT 105 Calculus II – AP (Math/Science Majors)
  • MT 202 Multivariable Calculus
  • Two MT electives from among MT 210 Linear Algebra, MT 216 Algebraic Structures, or any MT course 300 or higher

Since many students will need to complete MT 102 before taking MT 103, this calculus requirement will often be met by enrolling in a two-semester sequence.

Science Component

Students are required to complete a two-semester sequence in a laboratory science for science majors, and one additional non-overlapping science elective of at least three credits. Students may complete the lab science requirement in several ways. Eligible introductory sequences are:

  • Biology (BI 200/201/BI 204 OR BI 200/BI 303/BI 204)
  • Chemistry (CH 109/111/113, CH 110/112/114 or CH 117/119/121, CH 118/120/122)
  • Physics (PH 203/209, PH 204/210, PH 211/213, PH 212/214)
  • Earth and Environmental Sciences
      Option 1: GE 132/13 followed by GE 220/221 or GE 250/251 or GE 264/265 or GE 285/286
      Option 2: two of GE 210/211, GE 202/212, GE 203/213, GE 204/214, GE 205/215, GE 206/216, GE 207/217, GE 208/218 followed by GE 220/221

Students fulfilling the Science Component with the BI 304, BI 305 sequence may wish to consider completing the requirement with Computational Biology (CS/BI 507).

The biology, chemistry and earth and environmental sequences are eight credits so an additional four credits are required. The physics sequences are ten credits so an additional three credits are required.

Bachelor of Science in Computer Science: Class of 2013

The curriculum for the Bachelor of Science major in Computer Science is based on requirements specified by the Computer Science Accreditation Board (CSAB). The program 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 12-course computer science component, supplemented by a mathematics component and a natural science component.

Computer Science Component

A minimum of 12 courses in computer science are required for completion of the Bachelor of Science major in Computer Science. The 12 computer science courses are grouped into two categories, seven required core courses and five electives. The seven required core courses are:

  • CS 101 Computer Science I
  • CS 102 Computer Science II
  • CS 271 Computer Systems
  • CS 272 Computer Organization with required CS 273 Computer Organization Lab
  • CS 372 Computer Architecture with required CS 373 Computer Architecture Lab
  • CS 383 Algorithms
  • CS 385 Theory of Computation

Of the five electives, at least four must be numbered CS 300 or above and one must be from the social and ethical issues cluster CS 260-CS 269.

All these courses are three credits with the exception of CS 273 and CS 373 which are 1-credit labs.


CS 243 and CS 244 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 CS 383 Algorithms. CS 243 and CS 244 are required prerequisites for many 300-level CS electives.

Mathematics Component

At least five mathematics courses are required for completion of the Bachelor of Science major:

  • MT 103 Calculus II (Math/Science Majors) or MT 105 Calculus II—AP (Math/Science Majors)
  • Discrete Mathematics (CS/MT 245 or MT 445)
  • MT 202 Multivariable Calculus
  • MT 426 Probability
  • One MT elective from among MT 210 Linear Algebra, MT 216 Algebraic Structures, or any MT course 300 or higher.

Since many students will need to complete MT 102 before taking MT 103, the calculus requirement will often be met by enrolling in a 2-semester sequence.

Class of 2013: Students in this class who have taken Discrete Mathematics should have taken CS 385 in the fall of 2010 to complete the major requirements listed above. Students who have not taken Discrete Mathematics should instead have taken CS 244 in the spring of 2011 and CS 243 in the fall of 2011, but otherwise follow the requirements listed above.

Science Component

Students are required to complete twelve credit hours of science courses for science majors. Course work must include one two-semester sequence in a laboratory science for science majors. Students may complete this requirement in several ways. Eligible introductory sequences are:

  • Biology (BI 200/201/BI 204 OR BI 200/BI 303/BI 204)
  • Chemistry (CH 109/111/113, CH 110/112/114 or CH 117/119/121, CH 118/120/122)
  • Physics (PH 203/209, PH 204/210, PH 211/213, PH 212/214)
  • Earth and Environmental Sciences
      Option 1: GE132/133 followed by GE 220/221 or GE250/GE251 or GE264/GE265 or GE285/286
      Option 2: two of GE201/211, GE202/212, GE203/213, GE204/214, GE205/215,GE206/216, GE207/217, GE208/218 followed by GE 220/221

Students fulfilling the Science Component with the BI 304, BI 305 sequence may wish to consider completing the requirement with Computational Biology (CS/BI 507).

The biology, chemistry, and geology/geophysics sequences are eights credits so an additional four credits are required. The physics sequences are ten credits so an additional two credits are required.

top

Departmental Honors

Junior and Senior Computer Science majors with at least a 3.3 GPA in CS 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 CS 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 their junior year. They must complete two sections of CS 397 Honors Thesis during their senior year with grades of B+ or higher. They must submit a written honors thesis by the last day of class in the second semester of their senior year, and they must make an oral presentation of their thesis at the end of their senior year.

Students participating in the Honors Program are required to take both sections of CS 397 Honors Thesis. One section of CS 397 Honors Thesis may count as a CS elective.

top

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.

Six courses are required for completion of the minor:

  • CS 101 Computer Science I
  • CS 102 Computer Science II
  • CS 271 Computer Systems or CS 272 Computer Organization with required CS 273 Computer Organization Lab (counts as one course)
  • One elective course numbered 200 or above
  • Two elective courses numbered 300 or above

All these courses are three credits with the exception of CS 273, which is a 1-credit lab. CS 272 has a required corequisite, CS 243. CS 243 will count at the CS 200 level elective for students choosing to take CS 272.

top

Interdisciplinary Concentration in Bioinformatics

Bioinformatics is an interdisciplinary field of study combining aspects of Biology, Mathematics, and Computer Science. Undergraduates enrolled in degree programs in any one of these three disciplines can obtain the designation of a Concentration in Bioinformatics by completing the following courses:

Core Requirements:

  • BI 420 Introduction to Bioinformatics NOTE: Students have the option to substitute a semester of undergraduate research (e.g., in the labs of Profs. Chuang, Clote, or Marth) in place of BI 420. If this option is used, no other course may be substituted by research.
  • BI 524 Computational Foundations of Bioinformatics
  • BI 561 Molecular Evolution
  • MT 226 Probability for Bioinformatics (students may also substitute MT 426 Probability or BI 230 Biostatistics or BI 231 Biostatistics Honors)
Elective Requirements
  • Any one additional biology course at the level of BI 200 or above. BI 200 is recommended. Students with high school AP Biology may take BI 304 Cell Biology, BI 305 Genetics, BI 315 Intro to Genomics, BI 414 Microbiology, or BI 440 Molecular Biology instead.
  • Any three computer science courses at the level of CS 101 or above. CS 101 and CS 102 are recommended. Upper-level courses well-suited to the concentration include CS 127 Introduction to Scientific Computation, CS 345 Machine Learning, and CS 383 Algorithms.
  • One elective course may be substituted by a semester of research in bioinformatics (e.g., in the labs of Profs. Chuang, Clote, or Marth). Students wishing to pursue this option should see Kristen Adrien in the Biology Department (Higgins 355) for course approval.

Courses that count towards a student's primary major can be used to simultaneously count towards the bioinformatics core or elective requirements as well. For example, the basic requirements for the biology major will automatically fulfill the required elective course requirement at the level of BI 200 or above, and the BI 420, BI 524, and BI 561 courses can double-count to fulfill biology electives. Computer science majors will naturally fulfill the three CS course requirements in their primary coursework. Computer science students taking the B.S. option will also naturally fulfill the Probability requirement through MT 426.

Example Course Choices for a Biology Major

A biology major wishing to complete the bioinformatics concentration would typically choose BI 420, BI 524, and BI 561 as electives within the standard biology major. Beyond this, the student would be required to take four additional courses to complete the Bioinformatics Concentration. Typically, these courses would be CS 101, CS 102, MT 226, and any additional CS course at a level above CS 101. This additional course could also be substituted by a semester of bioinformatics research within a lab.

Example Course Choices for a Computer Science Major

A computer science major wishing to complete the bioinformatics minor would naturally complete the three CS courses as part of their major requirements. Beyond this, the student would be required to take five additional courses. These would be BI 420, BI 524, BI 561, a probability/statistics course, and one biology elective. Typically, this elective would be BI 200, though students with high school AP Biology might take BI 304 or BI 305 instead. This elective could also be substituted by a semester of bioinformatics research in a lab.

top

Computer Science Concentration for Carroll School of Management Students

The concentration in Computer Science emphasizes technical and theoretical issues in computing. Graduates are prepared to enter technical computer software development positions as well as positions in information technology management.

The Computer Science concentration consists of five courses beyond CS 021, including three required courses and two electives courses.

The three required courses are:

  • CS 101 Computer Science I
  • CS 102 Computer Science II

and one of:

  • CS 271 Computer Systems
  • CS 272 Computer Organization with required CS 273 Computer Organization Lab (this combination counts as one course)

The two elective courses are:

  • One elective, CS 200 or higher
  • One elective, CS 300 or higher

All these courses are three credits with the exception of CS 273, which is a 1-credit lab.

CS 272 has a required corequisite, CS 243. CS 243 will count at the CS 200 level elective for students choosing to take CS 272

Students are encouraged to take additional Computer Science courses.

top

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 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 (MT 101 or higher) during their first year. Most will enroll in MT 100 in fall semester and continue with MT 101 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 MT 101 (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 CS 101 Computer Science I or CS 102 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., CS 074) 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 CS 102).

First Year Non-Majors

The department offers six introductory 3-credit courses in computer science: CS 021, CS 074, CS 101, CS 127, CS 157, CS 227 and CS 254.

CS 021 is designed to teach students about the role of information systems in management. Students learn to use technology as a tool for problem solving by developing increasingly sophisticated models in Excel. The other module provides an introduction to management viewed through the lens of technology. Students examine the role of technology in organizational competitiveness and across a variety of functional areas of the firm (e.g., marketing, finance, operations).

CS 074 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.

CS 101 is the introductory programming course. It 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 CS 101 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 CS 074 before enrolling in CS 101.

CS 157 is an introduction to programming with an orientation to management applications. This course is taught using the Visual Basic programming language and is required for Information Systems concentrators in the Carroll School of Management.

CS 227 (formerly CS 127) is an introduction to programming with an orientation to scientific applications, using MATLAB as the programming language. It is the first course in the minor in Scientific Computation.

CS 254 (formerly CS 054) is an introduction to web-based applications. Students begin by learning basic web page creation with HTML and server side scripting with PHP. We cover assignments, conditionals, loops and arrays. Next we investigate XML followed by, database design, and database access techniques. Sample projects might include movie rentals, shopping-cart based sales, and student registration systems. The course is currently taught using HTML5, MySQL, and JavaScript. No prior programming experience is required.

top

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 Professor Edward Sciore, Chairperson of the Department or Professor Katherine Lowrie, Undergraduate Program Director about starting the Computer Science course sequence with CS102.

top

Course Availability

Most introductory courses (e.g., CS 021, CS 074, CS 101, CS 102, and CS 157) are available every semester. 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.

top

Course Credit Information

All Computer Science courses are prefixed by the letters CS and are registered as courses in the College of Arts and Sciences. However, because the department serves both the College of Arts and Sciences and the Carroll School of Management, some courses are considered to be primarily management-oriented. These courses (CS 021, CS 157, CS 257, and CS 258) are cross-listed with the Operations and Strategic Management Department in the Carroll School of Management. CS 260 is also cross-listed with the Operations Management Department but it is not primarily management-oriented.

top

Preparation for Graduate School

Students considering graduate school should be aware that they need to take the Computer Science Graduate Record Exam (GRE) by the fall of their senior year. Consequently, students should take the following courses, which cover material used heavily in the GRE, by the end of the junior year: CS 272/CS 273 Computer Organization with lab, CS 243 Logic and Computation, CS 244 Randomness and Computation, CS 383 Algorithms and CS 366 Principles of Programming Languages. In addition, the following courses are also strongly recommended: CS 362 Operating Systems, CS 363 Networks and CS 372/CS 373 Computer Architecture with Lab.

top