UMass SealUniversity of Massachusetts Amherst - 2007/08 Guide to Undergraduate Programs
[ Home ][ Undergraduate Admissions, Expenses, & Financial Aid ][ Academic Information ][ Schools & Colleges ]
[ Departments & Programs ][ Other Academic Opportunities & Services ][ General Information ][ Site Index ]
Department & Program Listings
[ Departments & Programs A-D ]
[ Departments & Programs E-L ]
[ Departments & Programs M-R ]
[ Departments & Programs S-Z ]
[ Departments & Programs - Show All ]

Computer Science

Computer Science | Courses | Faculty

100 Computer Science Building

Degree: Bachelor of Science

Contact: Brian Levine, Undergraduate Program Director
Office: 100 Computer Science Building
Phone: (413) 545-2744

Chair of Department: Professor Andrew G. Barto. Undergraduate Program Director: Professor Jack Wileden. Distinguished University Professors Croft, Kurose, Towsley; Professors Adrion, Allan, Barrington, Clarke, Grupen, Immerman, Lehnert, Lesser, Moss, Osterweil, Rissland, Zilberstein; Associate Professors Berger, Brock, Jensen, Levine, Mahadevan, McCallum, Moll, Shenoy, Siegelmann, Sitaraman, Smaragdakis, Weems; Assistant Professors Corner, Diao, Fu, Ganesan, Kulp, Learned-Miller, McGregor, Miklau, Venkataramani, Verts, Wang; Lecturer Constantine; Research Faculty Manmatha, Smith, Woolf.

The Field

The Computer Science Department offers an undergraduate program leading to the Bachelor of Science degree (a Bachelor of Arts degree is not currently offered). Students admitted to the Computer Science major learn from and interact with faculty who are doing state-of-the-art research in computer science. Many Computer Science majors become involved in such research themselves during their junior and senior years. Students graduating with a Computer Science degree are well prepared to assume responsible and challenging positions in the computing profession or to continue their computer science education at the graduate level.

The Major

The Computer Science undergraduate program is intended to provide a solid foundation for students whose goals span a wide range of endeavors within the rapidly changing computing field. The Computer Science undergraduate program is built around a core of 11 computer science courses (total credits 40), 5 mathematics courses (total credits 17), and 2 approved 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 achieved by this core, majors must also complete at least three advanced technical elective courses in computer science or some related area.

Computer Science majors also must fulfill a Junior Year Writing requirement by taking CMPSCI 305 Social Issues in Computing.

Required Computer Science Courses

121 Introduction to Problem Solving with Computers
187 Programming with Data Structures
201 Architecture and Assembly Language
250 Introduction to Computation
287 Programming Language Paradigms
305 Social Issues in Computing
311 Introduction to Algorithms
320 Introduction to Software Engineering
377 Operating Systems
383 Artificial Intelligence

At least two from the following:
401 Formal Language Theory
410 Compiler Techniques
445 Information Systems
453 Computer Networks
535 Computer Architecture

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

One of the following courses (or another upper-level mathematics course approved by the academic adviser).
MATH 233 Multivariate Calculus (if not selected as a required Mathematics course)
MATH 331 Ordinary Differential Equations for Scientists and Engineers
MATH 411 Introduction to Abstract Algebra I
MATH 421 Complex Variables
MATH 441 Introduction to Mathematics of Finance
MATH 451 Numerical Analysis I
MATH 456 Mathematical Modeling
MATH 523 Introduction to Modern Analysis
MATH 551 Introduction to Scientific Computing
STATISTC 501 Methods of Applied Statistics
STATISTC 515 Statistics I (if not selected as a required Mathematics course)

Required Natural Sciences Courses

Two of the three General Education Science courses must be introductory courses (with labs) intended for majors in some department in the College of Natural Sciences and Mathematics (8 total credits). Currently accepted courses are: BIOLOGY 100, 101; CHEM 111, 112, 121, 122; GEO-SCI 101, 103/131, 105/131; PHYSICS 151/153, 152/154, 181/183, 182/184. Other courses may be approved by the Computer Science Undergraduate Program Director.

Computer Science Electives

Three further elective courses are required. At least one elective must be an advanced computer science course, numbered 400 or higher. Other electives from Mathematics or Electrical and Computer Engineering may be approved.

Notes: Computer Science majors are not permitted to use any course taken on a Pass/Fail basis to fulfill the Computer Science core requirements (including Mathematics, Science, and Computer Science concentration sequences). All courses used to satisfy the Computer Science Undergraduate Program requirements must be passed with a grade of C or better. (Courses passed with C- prior to Fall 2006 may be used.) Students receiving a grade of less than C in any such course must see the Computer Science Undergraduate Program Director as soon as possible. Finally, at least five Computer Science courses numbered 311 or higher must be taken at the university or Five Colleges.

Admission to the Major

While some freshmen are admitted directly into the Computer Science major when they apply for admission to the University, the major is restricted for students already on campus who wish to enter the program. Students who are interested in the major may apply at any time and will receive an answer within one semester. Admission criteria for the major are based principally upon the applicant’s performance in courses that are required in the early stages for the Computer Science degree including CMPSCI 121, 187, 201, and MATH 131-132. At the present time, the requirements for joining the major do not exclude any qualified students. An application form may be obtained from the Computer Science departmental office in room 100 Computer Science Building and should be returned there when completed.

The Minor

The Computer Science Department offers a minor in Computer Science. While the minor is most appropriate for students in math, science, engineering, or business, it is open to all students at the university. The nine courses that make up the minor provide a coherent introduction to the science of computing. These courses are: MATH 131-132; CMPSCI 121, 187, 201, 250, 287, and two additional regular computer science courses, numbered 300 or higher, except CMPSCI 305 or courses designated to be for non-majors. Note: A grade of C or better is required in all courses used to satisfy the minor, including the preliminary courses. (C- grades received prior to Fall 2006 are acceptable.) For more information on the minor, contact the Computer Science Undergraduate Program Director.

Career Opportunities

Students graduating with a Computer Science degree are well prepared for a professional career in industry or for graduate study. Most graduates of the program pursue careers in software development, networking, or information management. Such positions are available in companies spanning a wide variety of fields, including medicine, defense, and finance. Some students pursue graduate degrees in computer science after completing their undergraduate studies, and occasionally graduates go on to M.B.A. programs or to medical school.

Introductory Courses

An increasing number of undergraduates, whatever their major, are finding it necessary to have the ability to use and/or program modern computing equipment. For these students the Department offers CMPSCI 105 Computer Literacy, CMPSCI 120 Introduction to Problem Solving with the Internet, and CMPSCI 145 Representing, Storing, and Retrieving Information, in addition to CMPSCI 121 Introduction to Problem Solving with Computers and the other courses for majors.

Students seeking a broad introduction to the use and programming of computers will be interested in CMPSCI 105, which stresses the concepts and use of “applications programs” such as word processors, spreadsheets, and databases as well as computer programming for problem solving. CMPSCI 120 provides an introduction to practical problem solving on the Internet. This course requires some prior experience with computers. The Internet concepts and techniques that are presented in the course can be useful for students in any major. CMPSCI 145 gives a general introduction to the ways computers represent, store, and retrieve information. Finally, CMPSCI 121 provides the most in-depth material on problem solving and programming using the computer. CMPSCI 121 or equivalent is a prerequisite to all upper-level Computer Science courses.

Some students entering the university will have already done work that can be applied to the Computer Science requirements. This work may be completed in high school, at another college or university, or through private study. Exemption from Computer Science requirements may be granted by the Undergraduate Program Director, according to guidelines described below. Acceptance of credits to be applied to the university General Education requirements can be granted only by the Office of Transfer Affairs.

The most common exemptions are for CMPSCI 121 and 187, the introductory programming and data structures courses. Automatic exemption from 121 and 187 is granted for a score of 4 or 5 on the AB Computer Science Advanced Placement exam, and in this case, 8 graduation credits are also awarded. Exemption from 121 is granted for a score of 3 on either the AB or A exams. In this case, 4 graduation credits are awarded. These exams are usually taken by students who have had several semesters of programming in high school.

Students who have done well in a good high school programming course, or who have supplemented their course work with private study, may qualify to take CMPSCI 187 without taking CMPSCI 121.

Some students will be able to demonstrate competence in the material of other courses, such as CMPSCI 201 Architecture and Assembly Language. Exemption for requirements such as these may be granted by the Undergraduate Program Director in consultation with the faculty. Similarly, transfer students should have their records evaluated by the Undergraduate Program Director to determine which of the Computer Science requirements they have satisfied.

Computer Science | Courses | Faculty