The Major
Loading...
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 six introductory computer science courses (total credits 24), 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 as specified in one of eleven defined subplans. The General Computer Science subplan allows the most flexibility, and each of ten specific subplans specify required, semielective, and elective courses targeted toward particular areas of computer science.
Computer Science majors also must fulfill the university’s Junior Year Writing requirement by taking CMPSCI 305 Social Issues in Computing.
Students whose primary major is Computer Science must satisfy the Integrative Experience requirement of General Education. Currently, CMPSCI 320 Software Engineering satisfies this requirement, which will also count as one of the upper-level courses for the major.
Required Computer Science Courses
121 Introduction to Problem Solving with Computers
187 Programming with Data Structures
220 Programming Methodology
230 Computer Systems Principles
240 Reasoning Under Uncertainty
250 Introduction to Computation
305 Social Issues in Computing
Upper-Level Elective Courses
The General Computer Science subplan requires the following three courses:
311 Introduction to Algorithms
377 Operating Systems
383 Artificial Intelligence
plus five additional computer science electives numbered 300 or above, including at least three numbered 400 or above. At least five of the eight upper-level courses required for the major must be taken at the university. See the departmental website for further guidance as to exactly which courses may be used as electives.
Each of the following ten specific subplans also specifies eight upper-level courses, divided into required, semielective, and elective courses:
Artificial Intelligence
Computer Architecture
Networking
Programming Languages and Compilers
Robotics, Vision and Graphics
Search and Data Mining
Security and Privacy
Software Engineering
Software Systems
Theory of Computation
See the departmental website for an exact specification of each subplan.
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 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 (8 total credits). Currently accepted courses are: BIOLOGY 110 or 151 or 100, 152 or 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.
The Bachelor of Arts
The Bachelor of Arts 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 CMPSCI 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 the Integrative Experience requirement of General Education. Currently, this may only be done by taking CMPSCI 320 Software Engineering, which will also count as one of the upper-level courses for the major.
Required Computer Science Courses
121 Introduction to Problem Solving with Computers (or AP exam)
187 Programming with Data Structures (or equivalent)
Three Core Courses Selected From
220 Programming Methodology
230 Computer Systems Principles
240 Reasoning About Uncertainty
250 Introduction to Computation
Five Computer Science Electives
Five computer science electives at the 300-level or higher (not including 305). These must be chosen from the department's regularly numbered courses 300 or higher. Experimental classes (numbered x90 through x99) may be used as electives only with Undergraduate Program Director (UPD) approval. Courses taken outside the CS Department (including non-CS courses in special cases) may be used by petition.
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 used in the degree requirements of the major in the other discipline. Courses from more than one discipline can be acceptable with permission from the UPD. One of the four can be the fourth 200-level CS core course or a sixth 300-level CS elective in computer science. No junior-year writing courses are eligible for use in the concentration.
After sophomore year, students are required to announce their plans for the outside concentration and strongly advised to get pre-approval from the UPD when registering for concentration courses to avoid misunderstandings that may delay graduation.
Three Math Courses
Three math courses, consisting of either MATH 127-128 or MATH 131-132 plus one additional math course to be approved by the department. 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 127-128 or MATH 131-132. MATH 131 and 132 are in general better preparation for most CS classes. Students who take MATH 128 and plan to enroll in CMPSCI 240 or CMPSCI 250 should consult with an advisor for recommendations of a third math course that will provide additional preparation.
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 Natural 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.
Notes: No course taken on a Pass/Fail basis may be used for any major requirements, including computer science, mathematics, and science courses. Students must achieve a grade point average of at least 2.000 in all courses used for major requirements. Normally, courses with grades below C should be repeated for a new grade, as they may not be used as prerequisites. Also, at least five of the eight upper-level courses required for the major must be taken at the university. Finally, some required courses have begun to be offered only recently. Students, particularly those already in the major, should consult the department website and departmental advisers to determine whether they should follow the old or new graduation rules, and how their prior work will be evaluated toward the new requirements.
Admission to the Major
Although some first-year students and transfers are admitted directly into the Computer Science major when they apply to the university, students already on campus must apply to enter the program. Applications may be made at any time and will be processed within one semester. A few applicants are accepted immediately, but most are given a grade target for their current or next semester and admitted if they reach this target. Applicants should consult with the department to make sure they are taking appropriate courses to prepare for the major, such as CMPSCI 121 and 187. At the present time, the selection criteria for the major do not exclude any qualified students. Application forms are available at the department’s main office, room 100 in the Computer Science Building.