The specifications up through Fall 2021 for what qualified as a Technical Elective are ambiguous and leave students confused and advisors to clarify and confirm courses on an ongoing basis for qualification as a technical elective. The new rules  make the technical electives clearly defined based on prerequisites, a procedure that does not leave room for broad interpretation and does not require us to maintain (quickly outdated) approved/not-approved course lists, and yet also preserves, to the extent possible, previous decisions on which courses did or did not count towards the Technical Elective requirement.  

We now also  allow, at most, one 2000+ level course (that satisfies the prerequisite rules) to count towards the  Technical Elective requirement, with all others being 3000+. This is an extension of the previous exception to allow one of MATH 2930 or ENGRD 2700 as a Technical Elective (if not used to fulfill another requirement slot on the checklist) that allows for more flexibility for students. 

NEW criteria for Technical Electives

Rule 1 is the only truly new rule; Rule 2b is a loosening of a prior rule and all the others are the same as before.

To qualify as a Technical elective, a course must:

  1. Have as a prerequisite or part of its "chain of prerequisites" at least one of the courses from the list given in the section List of PREREQUISITE COURSES that qualify a course to count as a Technical Elective”; the prerequisite must be explicitly stated in the course’s description in the Courses of Study ( (Petitions for) exceptions will be handled per item d of this rule.

a. A corequisite counts as a prerequisite for the purposes of this rule.

b. A “recommended prerequisite” does not qualify a course as a Technical Elective.

c. If alternatives for a prerequisite are given, then it suffices for just one of the alternatives for that prerequisite to be on the approved list or qualify through a prerequisite chain.

d. (Petitionable) exceptions, including for research courses (note that Rule 5 specifies types of classes that cannot be petitioned):

i. A CS 4999 that satisfies all the other rules (including Rule 6,  “NOT be a "third" research course) automatically counts, no petition needed.

ii. A course, research or otherwise, that is not a CS 4999 and that satisfies all the other rules except Rule 1 may be petitioned to count as a Technical Elective: A declaration of the course’s prerequisites emailed to from the instructor/supervisor (preferably a faculty member either case) is required for review. Ideally, this declaration would also be public, such as posted as a job description on a webpage.  See also the “research credits” section of this document.

2. Meet the level requirements: either

a. be at level 3000 or above; or,
b. be at level 2000 or above if your set of three Technical Electives contains at most one 2000-level course.

3. Be 3 or more credits.

4. Be taken for a letter grade (for courses taken in Spring 2020 only, a grade of S is allowed)

5. NOT be used to satisfy a CS core, CS 4000+ elective, CS project/practicum, External Specialization, Major-approved elective, or (Engr only) Advisor-approved elective.

6. NOT correspond to TAing (such as CS 4090) or a Project Team (such as CS4998), regardless of stated prerequisites.

7. NOT be a "third" research/independent study course, such as CS 4999 (i.e., at most two research/independent study courses, such as CS 4999,  may be counted towards the technical-elective requirement)


Examples involving rule 1

A. Qualifies via prerequisite chain: PHYS 4443 (Intermediate Quantum Mechanics) does not require any prerequisites from the list below. However, it does require PHYS 3316 as a prerequisite, which lists PHYS 2214 as a prerequisite, which is on the list below. Therefore, PHYS 4443 qualifies as a Technical Elective, since PHYS 4443 ← PHYS 3316 ← PHYS 2214.

B. Qualifies via rule 1c (“or”): LING 4424 (Computational Linguistics I)  lists the following prerequisites:  

Elementary Python (CS 1133 suffices), LING 1101 or CS 2800 or PHIL 2310. Prerequisite for CS majors: Elementary Python and CS 2800.

The prerequisite chain LING 4424 ← CS 2800 qualifies LING 4424 as a Technical Elective, since CS 2800 is on the list below.  So does the prerequisite chain LING 4424 ← PHIL 2310.

(Note that without CS 2800 or PHIL 2310 as a prerequisite, LING 4424 would not have counted:

* LING 1101 is not on the list.
* Neither “elementary Python” nor CS 1133 is on the prerequisites list, and the department would deny requests for either to be counted as “intermediate computing or computer science”)

C. Qualifies through the CS department’s understanding of English description of prerequisites:  AEP 4700 (Biophysical Methods) lists the following prerequisites:

Prerequisite: solid knowledge of basic physics and mathematics through 
sophomore level. Recommended prerequisite: some knowledge of cellular biology.    

To date, all Cornell’s 2000-level math courses have a chain of prerequisites involving a qualifying prerequisite, and thus AEP 4700 qualifies.  (A “basic physics” prerequisite would not qualify the class, because  PHYS 1101 and PHYS 1102 are “basic physics” but not qualifying prerequisites.  One assumes “through the sophomore level” doesn’t modify “basic physics”.)

D. May or may not qualify (depends on information supplied by instructor), petition would be required: CS  3152 has the following prerequisite description:

      Prerequisite for programmers: CS 2110 or permission of the instructor.
      Prerequisite for designers: INFO 2450 and/or submission of art/design samples to instructor.
      Corequisite: ENGRC 3152

CS 3152← INFO 2450 does not qualify the course (and neither does CS 3152 ← ENGRC 3152), so “designers” may not count the course as a Technical Elective, whereas CS 3152 ← CS 2110 does qualify the course, so “programmers” may count the course as a Technical Elective.  

Therefore, a declaration from the instructor that you took the course playing the “programmer” role is required to count the CS 3152 as a Technical Elective.

The situation is similar for INFO 3152.

List of PREREQUISITE COURSES that qualify a course to count as a Technical Elective

3000-level courses marked w/ * are Technical Electives themselves; courses w/ ** are Technical Electives if they are the only 2000-level course being used towards the Technical Elective requirement. 

Intent: A prerequisite of calculus or linear algebra at the level of Math 1120 or 1910 or above, or a stated prerequisite of mathematical maturity

Implementation - qualifying prerequisites: 

  • MATH 1120, 1910, 1920, 2210, 2220, 2240, 2930**, 2940, or the English description, “mathematical maturity”
    • Note that Math 1110 is not a sufficient prerequisite.  
    • Similarly, an English description of “basic knowledge of calculus” or “introductory calculus” does not suffice. (Hence, for example, PHYS 2207 does not count as a Technical Elective)
    • However, a prerequisite stated in English as “calculus” does suffice: we assume for simplicity that instructors saying “calculus” without further specification mean calculus at the level of 1120 or above.


Intent: a prerequisite of a college-level biological-science, chemistry, or physics (1112/2207 or higher) course

Implementation - qualifying prerequisites:

  • BEE 2510**, BEE 2600**, BIOG 1445, BIOMG 2800**, BIOMG 33xx, BIONB 2220**, or a pre-requisite stated in English of a "college-level biology course"
  • CHEM 1560, 1570, 2070, 2090, 2150
  • PHYS 1112, 1116, 2207,  2208, 2213, 2214, 2217,  2218


Intent: a prerequisite of a 2000-level probability or statistics course, where significant knowledge of random variables and their distributions (4 or more lectures) is covered or assumed.

Implementation - qualifying prerequisites:

  • AEM 2100
  • BTRY 3010*, 3080*
  • CEE 3040*
  • ORIE 3300*, 3500*
  • PUBPOL 2100, 2101 (formerly PAM 2100, 2101)
  • STSCI 2100
    • Note that Math 1710 is *not* a sufficient prerequisite.
    • However, a prerequisite stated in English as “probability”, “statistics”, or (given the title of AEM 2100) “introductory statistics” with no other qualifier does suffice: we assume for simplicity that instructors giving such a description without further specification have 2000+ level courses in mind.   


Intent: a prerequisite of intermediate computing or computer science

Implementation - qualifying prerequisites:

  • Note that CS/INFO 1xxx courses or English descriptions such as “familiarity with programming” are not sufficient prerequisites.
  • CS 2110, 2112, 2300, 2800, 2802
  • INFO 2300, 2950, 3300*


Other qualifying prerequisites:

  • AEM 2240**, 2241**
  • ECON 3030*, 3040*, 3110, 3120*,  3130*    
  • All ENGRD courses
  • LING 3302 (Introduction to Phonetics and Phonology), 3303 (Introduction to Syntax and Semantics)
  • PHIL 2310 (Introduction to Deductive Logic


Research credits

First, no more than two instances of independent research courses from any department may be counted towards the Technical Elective requirement.


  1. CS 4999 (if 3 or more credits and taken for a letter grade) automatically counts as a Technical Elective (unless two research courses have already been counted towards the requirement.)
  2. Other research courses (if 3 or more credits and taken for a letter grade) may be petitioned to count as a Technical Elective (unless two research courses have already been counted towards the requirement.)  A statement of the project’s prerequisites from the supervising faculty member will be required for review by the CS department. Ideally, this statement would be public, such as posted as a job description on a webpage.


Transition plan

Retroactive application for courses taken previously

Students currently enrolled at Cornell may use as a Technical Elective any course taken at Cornell that satisfies all the rules above, even if that course was taken before Spring 2022 (when this policy was enacted).

Transition period for courses that do not satisfy the new rules but used to count as Technical Electives

The following courses will be allowed as Technical Electives only if taken Spring 2023 or prior:                   

  • CRP 3270 “Regional Economic Impact Analysis” [no prereqs]
  • ECE 4450 “Computer Networks and Telecommunications” [no prereqs]
  • ECON 3110 “Probability Models and Inference for the Social Sciences” [prereq = Math 1110]
  • FSAD 3990 “Smart Clothing: Design and Programming” [prereq for non-design students: CS 1110]
  • NBA 5550 “Fixed Income Securities and Interest Rate Options” [non-qualifying) prereqs of NCC 5060, NCC 5010]
  • ORIE 3150 “Financial and Managerial Accounting” [no prereqs]
  • PSYCH 3420 “Human Perception: Application to Computer Graphics, Art, and Visual Display” [Recommended prerequisite: PSYCH 2050; this means the course has no required prerequisites]
  • SOC 3010 “Statistics for Sociological Research”. [no prereq]