School of Computing

Degree Modification Request Procedure

The School of Computing (SoC) recognizes that a one size fits all model for a CS degree is inappropriate. To this end, we allow quite a bit flexibility in the choice of the seven CS technical electives, as well as flexibility in the choice of Math/Science/Engineering electives, General Education requirements, and the capstone experience. That being said, we also understand that there are, under very specific circumstances, times when additional flexibility is in the best interest of our students and our program. In these very limited cases, a student may ask for a variance on the degree requirements for the Computer Science Bachelor's degree.

If you are seeking a degree modification please see the information below:

Allowed Substitutions:

Students may request course substitutions in the areas of CS required courses, CS electives, and Math/Science/Engineering electives. In all cases, a student must meet all University of Utah graduation requirements. Further, in most cases, students proposing a degree plan variance should plan to substitute an equal number of credit hours as the required course.

Criteria for Variance

Degree modifications are supported only in special circumstances where the modification produces a more valuable final degree in both the eyes of the student and those of the SoC.

Before considering petitioning for a variance, please review the Computer Science Learning Outcomes below. In order for a variance to be granted, the subject course must significantly support one or more of these outcomes. Further, the variance will only be considered in combination with the entire program of study, where, in the view of the SoC reviewing committee, the degree program substantially covers all learning outcomes.

Bachelors of Computer Science Learning Outcomes:

Petition Caveats

Please be aware of the following caveats before submitting your request:

  1. Petitions will be evaluated by the School of Computing Undergraduate Committee based on a holistic overview of the students entire academic profile. Variances will only be granted when the School of Computing believes that the change will a) improve the individual student's career, and b) maintain a degree that meets the rigor, depth, and breadth expected of a Bachelors degree in Computer Science from the University of Utah.

  2. Petitions made after the fact are much less likely to be accepted. Please request permission for variances before taking a course.

  3. Students with a strong academic career, as demonstrated by a high GPA and a broad range of foundational CS courses are much more likely to be considered for a variance.

  4. Petitions are unlikely to be accepted in the case where a substitute course is requested that is substantially covered by an existing CS course.

    Requests to substitute a class because of scheduling conflicts are unlikely to be granted.

  5. Courses which require strong CS technical skills are more likely to be accepted. This includes the use of computational methods to solve real world problems.

  6. When a petition is granted based on a proposed Program of Study, the variance will be contingent on the student completing the agreed plan. Any changes to the Program of Study will result in a re-evaluation of the variance with the possible revocation of the variance.

Petition Process

A petition should consist of a formal essay/write-up outlining the required information. The petition (not counting the attached syllabus or program of study) should be limited to one page.

  1. Introduction

    Concisely define what the variance that is being requested. For example:

    • I would like to substitute CS 6810 - Computer Architecture for the required course CS 3810.
    • I would like to substitute ENG xxxx - Name for a Math/Science elective.
    • I would like to substitute BUS yyyy - Name for a CS technical Elective.
  2. Variance Justification

    Describe how completing the proposed variance will complement your education and meet the spirit of a CS degree (see the outcomes above). Elaborate on why the material in the proposed course is not available in a Computer Science course. Further elaborate on how the proposed variance, in combination with all of your other courses and experiences, forms a strong foundation in Computer Science and meets the learning outcomes for a Bachelor's Degree in Computer Science.

    When the proposed course is intended to directly replace another course, explain how the suggested course meets the spirit of the required course.

  3. Program of Study

    List all the courses you have (or will have by the time of graduation) completed in the areas of CS, Math/Science/Engineering (in a tabular form). When in doubt about future electives indicate the probable course choice.

    List any other coursework or formal experiences that support your request.

  4. Course Syllabus

    Attach a syllabus for the requested course. If the syllabus does not include a list of specific assignments, you should request such a list from the instructor and attach it to the syllabus.

Please submit a single PDF document to the School of Computing Undergraduate Committee (care of professor H. James de St. Germain -

A Final Note:

Before moving forward with a variance request (or if such a request is denied), students should strongly consider the following alternative:

Your time at the University should not just be a matter of checking boxes. You should be seeking to expand your horizons, learn new things, maximize your learning, become an educated human being. Thus the SoC strongly encourages you to take whatever course has inspired you to read this web page simply for the sake of extra learning and education, not for degree credit.