Skip to main content

Secondary navigation:

Undergraduate Program

computer science

Table of Contents

 

Contacts

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

College of Arts and Sciences

Bachelor of Arts in Computer Science

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 Science in Computer Science

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. Non-overlapping AP and IB credit can be used to meet the requirement of the additional three-credit science elective.  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 or 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

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.

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.

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.

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 or 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.

Students are encouraged to take additional Computer Science courses.

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., and Wordpress. No prior programming experience is required.

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

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 with the exception of CS 327, Computer Architecture which is offered only in alternate years. 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 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.

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.