Skip Navigation
Text:
Increase font size
Decrease font size

    Suggested Program of Study for the Bachelor of Science in Computer Science

    The following suggested program of study for B.S. majors satisfies graduation requirements that were in place as of August 2009. (Downloadable/printable PDF version)

    Suggested Plan of Study for all Years

    Year Fall Semester Spring Semester
    F
    I
    R
    S
    T

    ENGL 101
    General Education Curriculum 12
    General Education Curriculum 2
    MATH 2313
    First-Year Seminar or COMP 1101

    ENGL 102
    General Education Curriculum 3
    General Education Curriculum 4
    MATH 232
    COMP 401
    S
    O
    P
    H
    O
    M
    O
    R
    E

    General Education Curriculum 5
    General Education Curriculum 6
    PHYS 116
    MATH 233
    COMP 410

    General Education Curriculum 7
    General Education Curriculum 8
    PHYS 117
    MATH 381 or STOR 2154
    COMP 4114

    J
    U
    N
    I
    O
    R

    General Education Curriculum 9
    General Education Curriculum 10
    COMP 5507
    CS Distribution Requirement 15,7
    CS Distribution Requirement 2

    Free Elective
    Non-CS Elective 16
    MATH 5477
    CS Distribution Requirement 3
    CS Distribution Requirement 4

    S
    E
    N
    I
    O
    R

    Non-CS Elective 2
    Non-CS Elective 3
    Free Elective
    Free Elective
    CS Distribution Requirement 5

    Non-CS Elective 4
    Free Elective
    Free Elective
    STOR 4357
    CS Distribution Requirement 6

     

    Notes on the First/Sophomore Years

    1. COMP 110 (Introduction to Programming) is a required prerequisite for COMP 401 (Foundation of Programming). However, we assume most computer science students will have acquired a sufficient knowledge of programming basics prior to enrolling at UNC to skip COMP 110 and start with COMP 401. Students who are able to begin their programming education with COMP 401 may do so 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 meritorious course such as a First-Year Seminar as an elective in the first year. (In either case, note that neither COMP 110 nor a First-Year Seminar are required courses in the major.)

    Students with no programming experience should begin their program of study with COMP 110.

     

    2. “General Education Curriculum” refers to a set of courses that are selected according to the following College-specified requirements:

    Foundations Requirements

    ENGL 101 and 102
    Foreign Language - 4
    Quantitative Reasoning (QR) - 1
    Lifetime Fitness (LFIT) - 1

    Approaches Requirements

    Physical and Life Sciences (PL/PX) - 2

    Social and Behavioral Sciences*

    Historical Analysis (HS) - 1
    Social Science/Historical Analysis (SS/HS) - 2

    Humanities/Fine Arts

    Visual and Performing Arts (VP) - 1
    Literary Arts (LA) - 1
    Philosophical Reasoning (PH) - 1

    *From at least two departments

    Connections Requirements**

    Communication Intensive (CI) - 1
    Quantitative Intensive (QI) - 1
    Experiential Education (EE) - 1
    US Diversity (US) - 1
    North Atlantic World (NA) - 1
    Beyond the North Atlantic World (BN) - 1
    World Before 1750 (WB) - 1
    Global Issues (GL) - 1

      **Courses that satisfy a Connections requirement may also satisfy one of the Approaches requirements, other Connections requirements, a requirement in the student’s major and/or minor fields, or Supplemental Education requirements.

    Students are encouraged to consult the Undergraduate Bulletin or a General College advisor for the precise definition of the General Education Curriculum.

     

    3. Courses listed in boldface in the suggested program indicate the courses whose completion is required for admittance into the Computer Science major. In order to graduate students must complete the following nine courses with a grade of C or better in each course:

      PHYS 116 Mechanics
      PHYS 117 Electromagnetism and Optics
      MATH 231 Calculus of Functions of One Variable I
      MATH 232 Calculus of Functions of One Variable II
      MATH 233 Calculus of Functions of Several Variables
      MATH 381 or STOR 215 Discrete Mathematics
      COMP 401 Foundations of Programming
      COMP 410 Data Structures
      COMP 411 Machine Organization

    Students may not declare the Computer Science major until they have completed these nine courses with a grade of C or better in each course. Students who earn a grade of C- or lower in any of these courses must retake the course* and receive a grade of C or better in order to declare the Computer Science major. Students in this situation are strongly advised to consult with a General College advisor to assess their suitability for the Computer Science major.

      * Note that the permission of a Dean is required in order to take a course for a second time.

     

    4. The nine required first-year/sophomore courses should be taken in the order listed in the Program of Study and no later than the semester listed. If this ordering and minimal scheduling of courses is not followed, students will be unable to declare the Computer Science major during the nominal major declaration period in the second semester of their sophomore year.

    The only exceptions to the ordering of first-year/sophomore courses are Discrete Mathematics (either MATH 381 or STOR 215) and MATH 233, which may be taken in any order, and COMP 410 and COMP 411 which may be taken in any order, subject to the following provisos:

    • Students who receive a grade lower than a B in COMP 401 should take COMP 410 first to gain additional maturity in programming before taking COMP 411.
    • Discrete Mathematics (MATH 381 or STOR 215) is a co-requisite for COMP 410. Hence if one takes COMP 411 before COMP 410 they will likely have to take MATH 381 or STOR 215 before MATH 233.

     

    Notes on the Junior/Senior Years

    5. "CS Distribution Requirements" refer to a set of 6 courses that are selected from the following list:

    Theory Group:
    (At least 1 course)

    MATH 566 - Numerical Analysis
    COMP 455 - Models of Languages & Computation

    Systems Group:
    (At least 1 course)

    COMP 431 - Internet Protocols and Services
    COMP 530 - Introduction to Operating Systems
    COMP 541 - Digital Logic and Computer Design
    COMP 535 - Introduction to Computer Security

    Programming Languages Group:
    (At least 1 course)

    COMP 520 - Compilers
    COMP 524 - Programming Language Concepts
    COMP 523 - Software Engineering Laboratory

    Applications Group:
    (At least 1 course)

    COMP 426 - Advanced WWW Programming - NOTE: COMP 416 IS *NOT* A PREREQUISITE FOR THIS COURSE
    COMP 521 - Files and Databases
    COMP 575 - Introduction to Graphics
    COMP 580 - Enabling Technology
    COMP 585 - Serious Games

    Interdisciplinary Group:
    (At most 1 course)

    MATH >520 - Any MATH course numbered greater than 520
    STOR 415, 445, 515 - Appropriate courses from Statistics and Operations Research
    LING 540 - Appropriate courses from Linguistics
    INLS 484, 509, 512 - Appropriate courses from Information & Library Science

    Other computing-related courses than those listed in the Interdisciplinary Group can be counted as an Interdisciplinary course with the (advance) approval of the Director of Undergraduate Studies in the Department of Computer Science.

    Note that of the six required Distribution courses, at least one course must be selected from each of the Theory, Systems, Programming Languages, and Applications groups. Students are not required to take any courses from the Interdisciplinary Group. However, if courses are selected from the Interdisciplinary Group, at most one of these courses may be counted towards satisfying the Distribution requirement.

    Note further that not all courses are offered every semester. Students should consult the Undergraduate Bulletin and/or the Directory of Classes for the current schedule of course offerings.

     

    6. "Non-CS Electives" refer to a set of 4 courses taken outside of Computer Science. The four courses are selected according to the following general requirements:

    Humanities/Fine Arts 1 course
    Social Sciences 1 course
    Natural Science 1 course
    Elective 1 course

    The fourth elective can be any non-computing related course taken outside of Computer Science, Mathematics, Operations Research, Statistics, and Applied Math. None of these electives may be taken Pass/Fail.

     

    7. In order to graduate, students must amass a GPA of 2.0 or higher in the nine required junior/senior courses in the major (i.e., COMP 550, MATH 547, STOR 435, and the six required Distribution courses). In addition, students may not receive any grade lower than a C- in any of these nine courses.

     

    8. The ordering of the specific required courses listed in the junior and senior years (i.e., COMP 550, MATH 547, STOR 435 and the courses taken to satisfy the Distribution requirement) is merely suggestive. These courses may be taken in any order. (Note however, that COMP 550 is a prerequisite course for some of the courses in the Distribution list.)

     

    9. Not shown in this schedule is one 1-hour Physical Education Activity that is required of all UNC students. This course may be taken at any time.

    Document Actions