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.

top

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 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 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/CSCI2273 Computer Organization Lab
  • CSCI3383 Algorithms

Computer Organization (CSCI2272) has a required one-credit co-requisite lab (CSCI2273). All these courses are three credits with the exception of CSCI2273. The remaining twelve credits will typically be earned from four courses with at least nine of the credits earned from courses at the CSCI3000 level. The remaining three credits may be earned through any CSCI courses numbered CSCI2000 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 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. Realistically, most students will need to complete a prerequisite calculus course (e.g., MATH1100 before MATH1101, or MATH1102 before MATH1103), so this calculus requirement is usually satisfied by enrolling in a two-semester sequence.

top

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 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 38 credits 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:

  • CSCI1101 Computer Science I
  • CSCI1102 Computer Science II
  • CSCI2243 Logic and Computation
  • CSCI2244 Randomness and Computation
  • CSCI2271 Computer Systems
  • CSCI2272 Computer Organization/CSCI2273 Computer Organization Lab
  • CSCI3372 Computer Architecture/CSCI3373 Computer Architecture Lab
  • CSCI3383 Algorithms

Computer Organization (CSCI2272) has a required co-requisite lab (CSCI2273); Computer Architecture (CSCI3372) has a required co-requisite lab (CSCI3373). All these courses are three credits with the exception of CSCI2273 and CSCI3373, which are 1-credit labs.

Of the twelve credits of electives, at least nine must be from courses numbered CSCI3000 or above. The remaining three credits must be earned from one course in the social and ethical issues cluster: CSCI2260–2267.

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 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
  • Two MATH electives from among MATH2210 Linear Algebra, MATH2216 Algebraic Structures, or any MATH course 3000 or higher

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

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 (BIOL2000/2010/2040 or BIOL2000/3030/2040)
  • Chemistry (CHEM1109/1111/1113, CHEM1110/1112/1114 or CHEM1117/1119/1121, CHEM1118/1120/1122)
  • Physics (PHYS2203/2209, PHYS2204/2210 or PHYS2211/2213, PHYS2212/2214)
  • Earth and Environmental Sciences

Option 1: EESC1132/1133 followed by EESC2220/2221 or EESC2250/2251 or EESC2264/2265 or EESC2285/2286
Option 2: Two of EECS2210/2211, EESC2202/2212, EESC2203/2213, EESC2204/2214, EESC2205/2215, EESC2206/2216, EESC2207/2217, EESC2208/2218 followed by EESC2220/2221

top

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 their junior year. They must complete two sections of CSCI4961 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 CSCI4961 Honors Thesis. One section of CSCI4961 Honors Thesis may count as a CSCI 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.

Eighteen credits are required for completion of the minor which are completed with the following courses:

  • CSCI1101 Computer Science I
  • CSCI1102 Computer Science II
  • CSCI2271 Computer Systems or CSCI2272 Computer Organization with required CSCI2273 Computer Organization Lab
  • One elective course numbered 2000 or above
  • Two elective courses numbered 3000 or above

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

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
  • BIOL4200 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 BIOL4200. If this option is used, no other course may be substituted by research.
  • BIOL5240 Computational Foundations of Bioinformatics
  • BIOL5610 Molecular Evolution
  • MATH2226 Probability for Bioinformatics (students may also substitute MATH4426 Probability or BIOL2300 Biostatistics or BIOL2310 Biostatistics Honors)
Elective Requirements
  • Any one additional biology course at the level of BIOL2200 or above. BIOL2200 is recommended. Students with high school AP Biology may take BIOL3040 Cell Biology, BIOL3050 Genetics, BIOL3150 Intro to Genomics, BIOL4140 Microbiology, or BIOL4400 Molecular Biology instead.
  • Any three computer science courses at the level of CSCI1101 or above. CSCI1101 and CSCI1102 are recommended. Upper-level courses well-suited to the concentration include CSCI1127 Introduction to Scientific Computation, CSCI3345 Machine Learning, and CSCI3383 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 BIOL2000 or above, and the BIOL4200, BIOL5240, and BIOL5610 courses can double-count to fulfill biology electives. Computer science majors will naturally fulfill the three CSCI course requirements in their primary coursework. Computer science students taking the B.S. option will also naturally fulfill the Probability requirement through MATH4426.

Example Course Choices for a Biology Major

A biology major wishing to complete the bioinformatics concentration would typically choose BIOL4200, BIOL5240, and BIOL5610 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 CSCI1101, CSCI1102, MATH2226, and any additional CSCI course at a level above CSCI1101. 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 CSCI courses as part of their major requirements. Beyond this, the student would be required to take five additional courses. These would be BIOL4200, BIOL5240, BIOL5610, a probability/statistics course, and one biology elective. Typically, this elective would be BIOL2000, though students with high school AP Biology might take BIOL3040 or BIOL3050 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 15 credits beyond CSCI1021, including three required courses and six credits of elective courses.

The three required courses are:

  • CSCI1101 Computer Science I
  • CSCI1102 Computer Science II

and one of:

  • CSCI2271 Computer Systems OR
  • CSCI2272 Computer Organization with required CSCI2273 Computer Organization Lab (this combination counts as one course)

The six elective credits must consist of:

  • Three credits at the level of CSCI2000 or higher
  • Three credits at the level of CSCI3000 or higher

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 (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 (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 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 offers six introductory 3-credit courses in computer science: CSCI1021, CSCI1074, CSCI1101, CSCI1127, CSCI1157, CSCI2227 and CSCI2254.

CSCI1021 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).

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.

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

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

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

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

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

top

Course Availability

Most introductory courses (e.g., CSCI1021, CSCI1074, CSCI1101, CSCI1102, and CSCI1157) are available every semester. All courses that are required for the major are offered at least once each academic year with the exception of CSCI3327, 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.

top

Course Credit Information

All Computer Science courses are prefixed by the letters CSCI 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 (CSCI1021, CSCI1157, CSCI2257, and CSCI2258) are cross-listed with the Operations and Strategic Management Department in the Carroll School of Management. CSCI2260 is also cross-listed with the Operations Management Department but it is not primarily management-oriented.

top