Computer Science Major, B.S.

Department of Computer Science

Brooks Computer Science Building, 201 S. Columbia Street, CB# 3175

(919) 590-6000

Diane Pozefsky, Director of Undergraduate Studies

Jodie Turnbull, Student Services Manager

The bachelor of science with a major in computer science is the preferred degree both for graduate study in computer science and for technical careers in software development, computational science, networking, information systems, and electronic commerce. Graduates of the program are well-suited for professional employment in traditional computer and communications industries, as well as in such diverse industries as financial services and consulting practices in which computing and information management are central to the operation of the enterprise. Students who desire a more in-depth knowledge of computing have the option of receiving a bachelor’s degree and a master’s degree in as few as five years.

Department Programs



Graduate Programs


In addition to the program requirements listed below, students must

  • attain a final cumulative GPA of at least 2.0
  • complete a minimum of 45 academic credit hours earned from UNC-Chapel Hill courses
  • take at least half of their major course requirements (courses and credit hours) at UNC-Chapel Hill
  • earn a minimum of 18 hours of C or better in the major core requirements (some majors require 21 hours).

For more information, please consult the degree requirements section of the catalog.

Core Requirements
COMP 455Models of Languages and Computation3
COMP 550Algorithms and Analysis3
MATH 547Linear Algebra for Applications3
or MATH 577 Linear Algebra
STOR 435Introduction to Probability3
Five additional three-or-more credit hour COMP courses numbered 426 or higher (excluding courses for honors thesis, internships, independent study, and COMP 690). 115
Additional Requirements 2
COMP 283Discrete Structures3
or MATH 381 Discrete Mathematics
COMP 401Foundation of Programming H4
COMP 410Data Structures3
COMP 411Computer Organization4
MATH 231Calculus of Functions of One Variable I3
MATH 232Calculus of Functions of One Variable II3
MATH 233Calculus of Functions of Several Variables H3
PHYS 116Mechanics H4
or PHYS 118 Introductory Calculus-based Mechanics and Relativity
A second science course chosen from:4
Introduction to Astronomy: The Solar System
and Introduction to Astronomy Laboratory: Our Place in Space H
Principles of Biology
and Introductory Biology Laboratory H
Molecular Biology and Genetics H
Cellular and Developmental Biology H
General Descriptive Chemistry I
and Quantitative Chemistry Laboratory I
General Descriptive Chemistry II
and Quantitative Chemistry Laboratory II H
Introductory Geology
and Introductory Geology Laboratory
Electromagnetism and Optics H
Introductory Calculus-based Electromagnetism and Quanta
Electronics I
Electronics II
B.S. majors in computer science must fulfill all Foundations, Approaches, and Connections requirements.
Total Hours58

Honors version available. An honors course fulfills the same requirements as the nonhonors version of that course. Enrollment and GPA restrictions may apply.


Any single offering of COMP 590 may be counted toward this requirement without prior approval. Additional offerings of COMP 590 may be counted toward this requirement with the approval of the director of undergraduate studies. Graduate level courses (600 or higher) other than COMP 790 may be counted towards this requirement. COMP 790 courses are generally seminar courses that are not appropriate for this requirement and may only be counted with the approval of the director of undergraduate studies.


A grade of C or better is required in each of COMP 283 (or MATH 381), COMP 401, COMP 410, COMP 411; MATH 231, MATH 232, MATH 233; PHYS 116 or PHYS 118; and the second science course.

Computer science (COMP) course descriptions.

Sample Plan of Study

Sample Plans can be used as a guide to identify the courses required to complete the major and other requirements needed for degree completion within the expected 8 semesters. The actual degree plan may differ depending on the course of study selected (second major, minor, etc.). Students should meet with their academic advisor to create a degree plan that is specific and unique to their interests. The Sample Plans represented in this catalog are intended for first-year students entering UNC–Chapel Hill in the fall term. Some courses may not be offered every term.

The following is a suggested plan of study for B.S. majors.

Plan of Study Grid
First YearHours
ENGL 105 English Composition and Rhetoric 3
Foreign language level 2 and 3 (Foundations) 6
COMP 110 Introduction to Programming H 3
COMP 401 Foundation of Programming H 4
MATH 231 Calculus of Functions of One Variable I (quantitative reasoning Foundations course) 3
MATH 232 Calculus of Functions of One Variable II (Quantitative intensive Connections course) 3
Additional General Education and elective courses 8
Hours 30
Sophomore Year
COMP 283 Discrete Structures 3
COMP 410 Data Structures 3
COMP 411 Computer Organization 4
MATH 233 Calculus of Functions of Several Variables H 3
PHYS 116
Mechanics H
or Introductory Calculus-based Mechanics and Relativity
The second science course (see requirement course list) 4
Three additional Approaches and Connections courses 9
Hours 30
Junior Year
COMP 455 Models of Languages and Computation 3
COMP 550 Algorithms and Analysis 3
MATH 547 Linear Algebra for Applications 3
Two courses numbered COMP 426 or greater 6
Three additional Approaches and Connections courses 9
Electives 6
Hours 30
Senior Year
STOR 435 Introduction to Probability 3
Three courses numbered COMP 426 or greater 9
Connections and free elective courses (four courses) 12
Electives 6
Hours 30
Total Hours 120

Honors version available. An honors course fulfills the same requirements as the nonhonors version of that course. Enrollment and GPA restrictions may apply.

Notes on the Suggested Plan of Study

A first formal course in computer programming (such as COMP 110) is a prerequisite for COMP 401. Students with no programming experience should begin their program of study with COMP 110. Students who are unsure if their background preparation enables them to begin their studies with COMP 401 are encouraged to consult a departmental advisor.

Students who are able to begin with COMP 401 may take it in their first semester and either advance the suggested program of study by one semester (giving themselves an extra free elective in their junior/senior years) or take another appropriate course such as a first-year seminar. In either case, neither COMP 110 nor a first-year seminar is a required course in the major.

This plan of study further assumes that students will place out of foreign language 1. If this is not the case, then the student should start with foreign language 1 (and have one fewer free elective in the senior year).

Special Opportunities in Computer Science

Honors in Computer Science

Students are eligible for graduation with honors if they complete the following requirements:

  • A cumulative grade point average of 3.3 or better
  • A grade point average of 3.3 or better from among the set of COMP, MATH, PHYS, and STOR courses taken to fulfill the graduation requirements for the major
  • Graduation with honors requires the completion of two semesters of research (COMP 691H and COMP 692H). As part of COMP 692H, students must submit a written honors thesis and complete an oral public presentation of the thesis. Graduation with highest honors in computer science is possible for those students whose honors project and thesis are judged by a faculty committee to be particularly distinguished.

Students interested in pursuing honors in computer science are encouraged to contact the director of undergraduate studies.

Experiential Education

When arranged in advance with a supervising faculty member, COMP 293 can be used to earn credit for appropriate work experience in the summer. COMP 293 satisfies the experiential education requirement. COMP 495 and COMP 691H can also be used to satisfy the experiential education requirement. Another possibility is through study abroad (see below).

Assistantships and Internships

In addition to their classroom experiences, undergraduates may enhance their learning experience as research assistants or teaching assistants. Students also can participate in nationally recognized research programs or use the department's facilities to pursue self-directed research with a faculty member.

Work-study students can gain valuable work experience as assistants on the department’s computer services staff. The department also encourages students to pursue internship experiences. Carolina’s proximity to Research Triangle Park means that computer science majors have many internship and postgraduation opportunities available in their own backyard.

Study Abroad

Study abroad opportunities with priority for computer science students are offered through University College London (UCL) and the National University of Singapore (NUS) School of Computing.

UCL can accept UNC–Chapel Hill students for either a semester or yearlong exchange. For semester-only programs, UCL recommends registering for spring semester rather than fall as it better matches their academic calendar. Many courses satisfying the computer science B.S. requirements can be completed at UCL. UCL is located in the heart of London and is just a few blocks away from UNC–Chapel Hill’s European Study Center in Winston House.

NUS can accept UNC–Chapel Hill students for fall or spring semester, or a yearlong exchange. This exchange allows Carolina students to enroll directly into the NUS School of Computing and choose their courses from among the full offering. On a case-by-case basis, students may also be able to take other courses at NUS outside of the School of Computing. Study abroad at NUS is eligible for the Phillips Ambassadors Scholarship. Please see for more information.

Specific course equivalences for both schools are posted on the department’s Web site. Students interested in taking a course not listed should contact the director of undergraduate studies before registering for courses at the school.

Application for both programs is through the University’s Study Abroad Office. Application to the UCL programs and the NUS fall and yearlong programs takes place early in the spring of each year. Application for the NUS spring program takes place early in the fall of each year. Applicants for exchange participation must have completed at least one year of study at UNC–Chapel Hill and must have declared a computer science or precomputer science major. Study abroad satisfies the experiential education General Education requirement of the undergraduate curriculum.

Undergraduate Awards

The department awards two yearly prizes to computer science majors. In conjunction with SAS Institute, the department annually presents the Charles H. Dunham Scholarship. The Dunham scholarship includes a cash award to the student and a summer internship at SAS and is awarded in the spring semester to a student in their junior year. The department also annually presents the Stephen F. Weiss Award for Outstanding Achievement in Computer Science, which includes a cash prize. The Weiss award is presented to a student in the fall of the senior year.

Dual Bachelor’s–Master’s Degree Program

Students in the B.S. degree program with a GPA of 3.2 or better after five or more semesters of study have the option of applying to the dual B.S.–M.S. program at UNC–Chapel Hill to pursue graduate coursework leading to the degree of master of science. Such students must complete the requirements for the bachelor of science degree within eight semesters. Upon completion of the B.S. degree, students then enroll as a graduate student to continue work towards the master of science degree.

The requirements for the master of science degree can be found in the Graduate Catalog. Generally, the master’s degree requires 30 additional hours of computer science coursework. Up to nine credit hours of computer science coursework taken while an undergraduate can be applied to the master’s degree if the coursework is not also used to satisfy the graduation requirements for the bachelor’s degree. The requirements for the master’s can be completed in as few as two additional semesters, for a total of 10 semesters of study.

Students interested in the dual-degree program should have completed (or be on track to complete) seven computer science courses at the 400 level or higher by the end of their sixth semester. Students must formally apply for admission to the combined B.S.–M.S. program, and it is expected that the application process would take place in the student’s sixth semester. Students applying in their sixth semester of study will be notified of the outcome of their application by the end of their sixth semester.

Students interested in the dual-degree program are strongly advised to consult the director of undergraduate studies in the Department of Computer Science in their sophomore year to discuss eligibility and an appropriate plan of study.