The Major

The Bachelor of Science

The Bachelor of Science in Computer Science provides a solid foundation for students whose goals span a wide range of endeavors across the rapidly changing field of computing. The program is built upon a core of eight introductory computer science courses (total credits 29), four mathematics courses (total credits 14), and two approved laboratory science courses (total credits 8). These courses supply the essential theory, concepts, and techniques in the major areas of computer science. To complement the breadth in this core, majors must also complete eight additional upper-level courses. Students have flexibility to take a set of courses that is suited to their interests while maintaining the option to focus in a particular sub-discipline of computer science or maintain breadth in their choice of upper-level courses.

Computer Science majors also must fulfill the university’s Junior Year Writing requirement by taking CICS 305 Social Issues in Computing.  Double majors for whom CS is the secondary major may use the Junior Year Writing requirement course from their primary major to fulfill this requirement.  Students whose primary major is Computer Science must satisfy the Integrative Experience requirement of General Education. Currently, either COMPSCI 320 Software Engineering or COMPSCI 326 Web Programming satisfy this requirement, which will also count as one of the upper-level courses for the major.

Required Computer Science Courses

  • CICS 110 Foundations of Programming (or AP Exam)
  • CICS 160 Object-Oriented Programming
  • CICS 210 Data Structures
  • COMPSCI 198C Introduction to the C Programming Language
  • COMPSCI 220 Programming Methodology
  • COMPSCI 230 Computer Systems Principles
  • COMPSCI 240 Reasoning Under Uncertainty
  • COMPSCI 250 Introduction to Computation
  • CICS 305 Social Issues in Computing

Upper-Level Elective Courses

  • 311 Introduction to Algorithms
  • Three additional computer science electives numbered 300 or above (include one to satisfy the Integrative Experience requirement).
  • Three additional computer science electives numbered 400 or above.
  • One additional computer science elective numbered 300 or above, or an outside elective from an approved list.

Computer science courses numbered x90-x99 may be used as electives only with Undergraduate Program Director (UPD) approval. See the college website for further guidance as to exactly which courses may be used as electives.

Residency: At least five of the eight upper-level courses required for the Bachelor of Science in Computer Science must be taken at UMass Amherst.

Students may take upper-level electives relevant to specific sub-disciplines of computer science, such as:

  • Artificial Intelligence
  • Computer Architecture
  • Data Science
  • Information Retrieval
  • Machine Learning
  • Mobile, Embedded, and Health Sensing Systems
  • Natural Language Processing
  • Networking
  • Robotics, Vision and Graphics
  • Security and Privacy
  • Software Engineering
  • Software Systems
  • Theory of Computation

See the college website for recommendations of groups of courses relevant to specific areas.

Required Mathematics Courses

  • MATH 131 Calculus I
  • MATH 132 Calculus II
  • MATH 233 Multivariate Calculus or STATISTC 515 Statistics I
  • MATH 235 Introduction to Linear Algebra

Required Natural Sciences Lab Courses

Every BS-CS major must satisfy a laboratory science requirement by taking two majors-level science courses in the College of Natural Sciences that include a lab component (minimum of 8 total credits). Currently accepted courses are: CHEM 111 or 121, 112 or 122; GEOLOGY 101 or 103/131 or 105/131; PHYSICS 151 or 181, 152 or 182. For CS majors that will have taken BIOLOGY 151/152/153, all three courses satisfy both majors-level science courses (contact upd@cs.umass.edu).

The Bachelor of Arts

The Bachelor of Arts program in Computer Science will graduate computing professionals who have the necessary depth of expertise in computer science to have lifelong careers in the field, and who, at the same time, have sufficient exposure to a second discipline to be able to interact with professionals in that field in a knowledgeable manner, so as to apply advanced computer science techniques to problems in that second area. This degree is particularly appropriate for students who are interested in combining Computer Science with another discipline as a double major.

The degree requires 11 computer science courses, three math courses, and a four-course concentration. Computer Science majors also must fulfill the university’s Junior Year Writing requirement by taking CICS 305 Social Issues in Computing. Double majors for whom Computer Science is the secondary major may use the Junior Year Writing requirement course from their primary major to fulfill this requirement.  Computer Science primary majors also must fulfill the Integrative Experience requirement of General Education. Currently, this may only be done by taking either COMPSCI 320 Software Engineering or COMPSCI 326 Web Programming, which will also count as one of the upper-level courses for the major.

Required Computer Science Courses

  • CICS 110 Foundations of Programming (or AP exam)
  • CICS 160 Object-Oriented Programming
  • CICS 210 Data Structures

Three Core Courses Selected From

  • 220 Programming Methodology
  • 230 Computer Systems Principles*
  • 240 Reasoning About Uncertainty
  • 250 Introduction to Computation

*Note: Students interested in taking COMPSCI 230 must take COMPSCI 198C (a 1-credit introduction to C Programming) as a prerequisite.

Five Computer Science Electives

Five computer science electives at the 300-level or higher (not including 305). These must be chosen from regularly numbered computer science courses 300 or higher. Computer science courses numbered x90 through x99 may be used as electives only with Undergraduate Program Director (UPD) approval. See the college website for further guidance as to exactly which courses may be used as electives.

Four-course Outside Concentration

The BA in CS requires four concentration courses as part of the required curriculum. The intent is to provide BA students with an opportunity to build relationships between computing and another discipline by including courses with content that is not available in our CS curriculum. To be eligible for the concentration, courses must be 200-level or above and acceptable for program requirements of the major in the other discipline. Courses from more than one discipline can be acceptable with permission from the Undergraduate Program Director (UPD). One of the four can be the fourth 200-level CS core course or a sixth 300-level elective in computer science. No junior-year writing courses are eligible for use in the concentration.

Prior to senior year, students are required to propose their outside concentration for UPD approval. Consult with offering departments prior to registering for concentration courses to avoid misunderstandings that may delay graduation.

Residency: For the BA, at least three of the five Computer Science electives and five of the nine courses consisting of the five Computer Science electives and the four-course Outside Concentration must be taken at UMass Amherst.

Three Math Courses

Three math courses, including MATH 131-132 plus one additional approved math course. Appropriate candidates include RES-ECON 211, RES-ECON 212, STATISTC 240, STATISTC 501, STATISTC 515, or any other MATH course at the 200-level or higher. Equivalent courses or appropriate AP exam placements are acceptable in place of MATH 131-132.

Natural Science Courses

Students in the Bachelor of Arts program are required only to satisfy the general education science requirements.

Foreign Language Requirement

Students in the Bachelor of Arts program must fulfill the College of Information and Computer Sciences foreign language requirement. If a student is double-majoring with Computer Science as the secondary major, then the foreign language requirement associated with the primary major takes precedence.

CS Program Notes

No course taken on a Pass/Fail basis may be used for any major requirements, including computer science, mathematics, science courses, outside electives, and four-course outside concentration courses. Students must achieve a grade point average of at least 2.00 in all courses used for major requirements. Courses with grades below C may not be used as prerequisites and should be repeated for a new grade.