The School of Computing (SoC) recognizes that a one size may not fit all when it comes to a degree in computer science. Occasionally, flexibility in meeting the degree requirements is in the best interest of students, and in such limited cases, a student may request that the degree requirements be modified.
Students may request course substitutions in the areas of CS core courses, CS electives, and Math/Science* electives. In all cases, a student must meet the 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.
For courses taken at other institutions and transferred to the University of Utah, follow the instructions here: Transferring Courses Toward CS Degree Requirements .
Modifications to required courses are considered only when a student already has an equivalent university course completed or, in very rare circumstances, where a student has already acquired the skill, understanding, and expertise of the required course through other means. In either case, a more advanced substitute course is required.
The SoC offers a wide breadth of CS electives to choose from. In the rare case where an outside course addresses topics uncovered by offered electives and supports the learning outcomes of the CS degree, a student can petition to have such a course accepted in lieu of a CS elective.
In most cases, advanced math courses automatically satisfy this requirement. If there is a course that does not have Calculus II as a co- or pre-requisite, yet it meets the spirit of the Math/Science requirement, a student can petition to have the course substitute for the elective.
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, review the learning outcomes of the CS degree. In order for a variance to be granted, the substituted course must significantly support one or more of these outcomes. Furthermore, the variance is considered in combination with the student's overall degree plan, where in the view of the reviewing committee, the entire program substantially covers all learning outcomes.
Take into account the following before submitting your request:
Petitions are evaluated by the School of Computing Undergraduate Committee based on a holistic overview of the student's entire academic profile. Variances are granted only when the committee determines 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 degree in computer science from the University of Utah.
Petitions made after the fact are much less likely to be accepted. Please request permission for variances before taking a course.
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.
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 very unlikely to be granted.
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.
When a petition is granted based on a proposed program of study, the variance is contingent on the student completing the agreed upon plan. Any changes to the agreed upon course plan results in a re-evaluation of the variance with the possible revocation of the variance.
A petition should consist of a formal letter outlining the required information given below. Each section should be titled. The petition should of course be titled, have your name, uid, and the current date.
Variance Request (one paragraph)
Concisely define the variance that is being requested. For example, "I would like to substitute CS 6810: Computer Architecture for the required course CS 3810." Also declare the semester/year that you plan to graduate.
Justification (less than one page)
Describe how completing the proposed variance complements your education and supports the learning outcomes of the CS degree. Elaborate on why the material in the proposed course is not available in a course that already satisfies the degree requirements. Elaborate further 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 degree learning outcomes.
When the proposed course is intended to directly replace another course, explain how the suggested course meets the spirit of the required course.
Appendix: Program of Study (new page, one page)
In a tabular form (ordered by department, then date), list all CS and Math/Science courses you have completed, or will have completed by graduation. List the offering dept, course number, semester/year taken. When in doubt about future electives indicate the probable course choice.
List any other coursework or formal experiences that support your request.
Appendix: Course Syllabus (new page)
Attach a syllabus for the requested substitute course. If the syllabus does not include a list of specific assignments, request such a list from the instructor and attach it to the syllabus.
Submit your request letter (in PDF) to the School of Computing Undergraduate Committee here: Degree Modification Request Form.
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, you are strongly encouraged to take whatever course has inspired you to read this information simply for the sake of extra learning and education, and not for degree credit.