diff --git a/src/data/colleges/en.ts b/src/data/colleges/en.ts index f6a21e058..b982422a5 100644 --- a/src/data/colleges/en.ts +++ b/src/data/colleges/en.ts @@ -1,4 +1,4 @@ -import { Course, CollegeOrMajorRequirement } from '../../requirements/types'; +import { Course, CollegeOrMajorRequirement, RequirementMigration } from '../../requirements/types'; import { courseIsFWS, includesWithSingleRequirement, @@ -10,7 +10,7 @@ import { import { AdvisorGroup } from '../../tools/advisors/types'; import { lastNameRange, lastNameRanges } from '../../tools/advisors/checkers'; -const engineeringLiberalArtsGroups: string[][] = Object.values({ +const previousEngineeringLiberalArtsGroups: readonly string[][] = Object.values({ 'Group 1': [ 'CA-AAP', 'CA-AG', @@ -45,6 +45,41 @@ const engineeringLiberalArtsGroups: string[][] = Object.values({ 'Group 6': ['CE-EN'], }); +const currentEngineeringLiberalArtsGroups: readonly string[][] = Object.values({ + 'Group 1': [ + 'CA-AAP', + 'CA-AG', + 'CA-AS', + 'CA-HE', + 'LA-AAP', + 'LA-AG', + 'LA-AS', + 'LAD-HE', + 'ALC-AAP', + 'ALC-AS', + 'ALC-HA', + 'SCD-AAP', + 'SCD-HA', + ], + 'Group 2': ['HA-AAP', 'HA-AG', 'HA-AS', 'HA-HE', 'HST-AAP', 'HST-AS', 'HST-HA'], + 'Group 3': ['KCM-AAP', 'KCM-AG', 'KCM-AS', 'KCM-HE', 'ETM-AAP', 'ETM-AS', 'ETM-HA'], + 'Group 4': [ + 'SBA-AAP', + 'SBA-AG', + 'SBA-AS', + 'SBA-HE', + 'SSC-AAP', + 'SSC-AS', + 'SSC-HA', + 'GLC-AAP', + 'GLC-AS', + 'GLC-HA', + ], + 'Group 5': ['FL-AAP', 'FL-AG'], + 'Group 6': ['CE-EN'], + 'Group 7': ['SCD-AS', 'D-AG'], +}); + const engineeringRequirements: readonly CollegeOrMajorRequirement[] = [ { name: 'Mathematics', @@ -129,7 +164,7 @@ const engineeringRequirements: readonly CollegeOrMajorRequirement[] = [ 'https://www.engineering.cornell.edu/students/undergraduate-students/advising/liberal-studies', checker: [ (course: Course): boolean => - engineeringLiberalArtsGroups.some(group => + currentEngineeringLiberalArtsGroups.some(group => group.some(distribution => hasCategory(course, distribution) ?? false) ) || courseIsForeignLang(course), ], @@ -139,19 +174,30 @@ const engineeringRequirements: readonly CollegeOrMajorRequirement[] = [ additionalRequirements: { 'Courses must be from 3 groups.': { checker: [ - ...engineeringLiberalArtsGroups.map(group => (course: Course): boolean => + ...currentEngineeringLiberalArtsGroups.map(group => (course: Course): boolean => group.some(distribution => hasCategory(course, distribution) ?? false) ), ], fulfilledBy: 'courses', - perSlotMinCount: [1, 1, 1, 1, 1, 1], - slotNames: ['Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5', 'Group 6'], + perSlotMinCount: [1, 1, 1, 1, 1, 1, 1], + slotNames: ['Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5', 'Group 6', 'Group 7'], minNumberOfSlots: 3, }, + 'One course of 3 or more credits must come from Group 7.': { + checker: [ + (course: Course): boolean => + currentEngineeringLiberalArtsGroups[ + currentEngineeringLiberalArtsGroups.length - 1 + ].some(distribution => hasCategory(course, distribution) ?? false), + ], + fulfilledBy: 'courses', + perSlotMinCount: [1], + slotNames: ['Course'], + }, 'Courses must have at least 18 credits.': { checker: [ (course: Course): boolean => - engineeringLiberalArtsGroups.some(group => + currentEngineeringLiberalArtsGroups.some(group => group.some(distribution => hasCategory(course, distribution) ?? false) ) || courseIsForeignLang(course), ], @@ -164,7 +210,7 @@ const engineeringRequirements: readonly CollegeOrMajorRequirement[] = [ const { catalogNbr } = course; return ( !ifCodeMatch(catalogNbr, '1***') && - (engineeringLiberalArtsGroups.some(group => + (currentEngineeringLiberalArtsGroups.some(group => group.some(distribution => hasCategory(course, distribution) ?? false) ) || courseIsForeignLang(course)) @@ -276,3 +322,66 @@ export const engineeringAdvisors: AdvisorGroup = { ], source: 'https://www.engineering.cornell.edu/students/undergraduate-students/advising/meet-staff', }; + +export const engMigrations: RequirementMigration[] = [ + { + entryYear: 2023, + type: 'Modify', + fieldName: 'Liberal Studies: 6 courses', + newValue: { + name: 'Liberal Studies: 6 courses', + description: 'A minimum of six courses must be taken.', + source: + 'https://www.engineering.cornell.edu/students/undergraduate-students/advising/liberal-studies', + checker: [ + (course: Course): boolean => + previousEngineeringLiberalArtsGroups.some(group => + group.some(distribution => hasCategory(course, distribution) ?? false) + ) || courseIsForeignLang(course), + ], + fulfilledBy: 'courses', + perSlotMinCount: [6], + slotNames: ['Course'], + additionalRequirements: { + 'Courses must be from 3 groups.': { + checker: [ + ...previousEngineeringLiberalArtsGroups.map(group => (course: Course): boolean => + group.some(distribution => hasCategory(course, distribution) ?? false) + ), + ], + fulfilledBy: 'courses', + perSlotMinCount: [1, 1, 1, 1, 1, 1], + slotNames: Object.keys(previousEngineeringLiberalArtsGroups), + minNumberOfSlots: 3, + }, + 'Courses must have at least 18 credits.': { + checker: [ + (course: Course): boolean => + previousEngineeringLiberalArtsGroups.some(group => + group.some(distribution => hasCategory(course, distribution) ?? false) + ) || courseIsForeignLang(course), + ], + fulfilledBy: 'credits', + perSlotMinCount: [18], + }, + 'Two courses must be at the 2000 level or higher.': { + checker: [ + (course: Course): boolean => { + const { catalogNbr } = course; + return ( + !ifCodeMatch(catalogNbr, '1***') && + (previousEngineeringLiberalArtsGroups.some(group => + group.some(distribution => hasCategory(course, distribution) ?? false) + ) || + courseIsForeignLang(course)) + ); + }, + ], + fulfilledBy: 'courses', + perSlotMinCount: [2], + slotNames: ['Course'], + }, + }, + }, + }, +]; diff --git a/src/requirements/decorated-requirements.json b/src/requirements/decorated-requirements.json index f9d3b43ee..430c20a17 100644 --- a/src/requirements/decorated-requirements.json +++ b/src/requirements/decorated-requirements.json @@ -30643,6 +30643,7 @@ 353615, 353619, 353621, + 353629, 353639, 353643, 353653, @@ -30710,6 +30711,7 @@ 353996, 353999, 354000, + 354026, 354068, 354071, 354077, @@ -30817,6 +30819,7 @@ 354859, 354915, 355243, + 355244, 355291, 355526, 355528, @@ -31102,6 +31105,7 @@ 360397, 360404, 360490, + 360635, 360697, 360715, 360716, @@ -31110,6 +31114,7 @@ 360989, 360990, 360995, + 361070, 361143, 361144, 361146, @@ -31833,6 +31838,8 @@ 368221, 368224, 368236, + 368238, + 368239, 368242, 368247, 368258, @@ -32012,6 +32019,7 @@ 368947, 368948, 368951, + 368972, 368983, 368990, 368992, @@ -32058,6 +32066,7 @@ 369176, 369177, 369179, + 369185, 369207, 369214, 369217, @@ -32247,6 +32256,7 @@ 370036, 370041, 370043, + 370046, 370051, 370054, 370056, @@ -32685,6 +32695,7 @@ 371649, 371676, 371677, + 371706, 371708, 371709, 371713, @@ -32952,6 +32963,8 @@ 372909, 372911, 372914, + 372938, + 372939, 372942, 372943, 372948, @@ -33065,6 +33078,7 @@ 373432, 373449, 373452, + 373454, 373458, 373465, 373477, @@ -33326,6 +33340,7 @@ 1, 1, 1, + 1, 1 ], "slotNames": [ @@ -33334,7 +33349,8 @@ "Group 3", "Group 4", "Group 5", - "Group 6" + "Group 6", + "Group 7" ], "minNumberOfSlots": 3, "conditions": { @@ -33363,7 +33379,6 @@ }, "courses": [ [ - 350010, 350234, 350262, 350270, @@ -33377,7 +33392,6 @@ 350668, 350721, 350732, - 350754, 350780, 350783, 350837, @@ -33403,7 +33417,6 @@ 351074, 351081, 351086, - 351100, 351102, 351238, 351241, @@ -33430,7 +33443,6 @@ 351876, 351903, 351943, - 352050, 352059, 352227, 352279, @@ -33442,12 +33454,10 @@ 352314, 352573, 352624, - 352628, 352646, 352651, 352655, 352673, - 352689, 352694, 352697, 352703, @@ -33536,12 +33546,10 @@ 353554, 353568, 353578, - 353584, 353613, 353621, 353643, 353698, - 353842, 353925, 353994, 354267, @@ -33589,23 +33597,12 @@ 354608, 354609, 354611, - 354643, - 354653, - 354657, 354661, - 354673, - 354680, 354696, - 354699, - 354707, - 354735, - 354744, - 354748, 354760, 354761, 354859, 354915, - 355291, 357366, 357367, 357370, @@ -33619,9 +33616,6 @@ 357489, 357491, 357493, - 357499, - 357558, - 357566, 357574, 357607, 357615, @@ -33636,10 +33630,7 @@ 357728, 357742, 357751, - 357753, - 357763, 357766, - 357770, 357776, 357782, 357831, @@ -33661,7 +33652,6 @@ 358203, 358254, 358283, - 358301, 358321, 358325, 358337, @@ -33669,7 +33659,6 @@ 358355, 358367, 358368, - 358369, 358373, 358416, 358418, @@ -33679,9 +33668,7 @@ 358480, 358516, 358962, - 358973, 359013, - 359017, 359048, 359057, 359067, @@ -33694,7 +33681,6 @@ 359122, 359124, 359168, - 359170, 359176, 359180, 359212, @@ -33712,13 +33698,10 @@ 359316, 359324, 359349, - 359367, 359383, 359392, - 359422, 359439, 359444, - 359446, 359454, 359455, 359460, @@ -33727,10 +33710,8 @@ 359468, 359553, 359555, - 359600, 359610, 359631, - 359639, 359664, 359688, 359732, @@ -33742,12 +33723,9 @@ 359759, 359765, 359787, - 359790, - 359830, 359848, 360060, 360208, - 360371, 360397, 360490, 360697, @@ -33805,13 +33783,10 @@ 363031, 363037, 363047, - 363101, 363119, 363247, - 363265, 363280, 363304, - 363318, 363336, 363406, 363410, @@ -33825,7 +33800,6 @@ 363501, 363559, 363666, - 363677, 363683, 363695, 363751, @@ -33833,7 +33807,6 @@ 363775, 363783, 363785, - 363804, 363807, 363820, 363840, @@ -33858,16 +33831,13 @@ 364430, 364431, 364437, - 364439, 364463, 364470, - 364474, 364539, 364557, 364560, 364571, 364584, - 364596, 364654, 364656, 364685, @@ -33878,7 +33848,6 @@ 364712, 364747, 364752, - 364778, 364790, 364794, 364829, @@ -33889,10 +33858,7 @@ 364904, 365039, 365073, - 365080, - 365082, 365089, - 365117, 365122, 365124, 365129, @@ -33903,9 +33869,7 @@ 365177, 365179, 365210, - 365225, 365235, - 365237, 365250, 365251, 365252, @@ -33985,14 +33949,12 @@ 366374, 366385, 366386, - 366396, 366410, 366415, 366420, 366422, 366423, 366429, - 366442, 366449, 366452, 366460, @@ -34002,9 +33964,6 @@ 366530, 366538, 366542, - 366554, - 366561, - 366577, 366591, 366624, 366631, @@ -34013,7 +33972,6 @@ 366670, 366671, 366677, - 366679, 366704, 366736, 366741, @@ -34037,13 +33995,11 @@ 367048, 367051, 367057, - 367060, 367094, 367124, 367156, 367174, 367215, - 367218, 367226, 367227, 367228, @@ -34057,7 +34013,6 @@ 367277, 367301, 367305, - 367312, 367328, 367330, 367331, @@ -34070,11 +34025,9 @@ 367393, 367403, 367428, - 367440, 367444, 367447, 367461, - 367466, 367477, 367486, 367494, @@ -34087,8 +34040,6 @@ 367776, 367794, 367802, - 367821, - 367858, 367880, 367947, 367948, @@ -34098,7 +34049,6 @@ 368010, 368019, 368024, - 368026, 368054, 368058, 368061, @@ -34124,7 +34074,6 @@ 368263, 368264, 368267, - 368269, 368273, 368285, 368288, @@ -34133,7 +34082,6 @@ 368291, 368292, 368323, - 368372, 368434, 368445, 368447, @@ -34164,11 +34112,9 @@ 368637, 368642, 368650, - 368654, 368665, 368670, 368671, - 368697, 368711, 368719, 368732, @@ -34203,11 +34149,8 @@ 368878, 368880, 368882, - 368884, 368888, - 368891, 368897, - 368901, 368905, 368915, 368924, @@ -34240,7 +34183,6 @@ 369107, 369124, 369170, - 369174, 369176, 369177, 369179, @@ -34261,11 +34203,9 @@ 369325, 369328, 369332, - 369339, 369343, 369363, 369364, - 369372, 369392, 369423, 369453, @@ -34275,10 +34215,7 @@ 369555, 369556, 369557, - 369567, - 369569, 369573, - 369577, 369583, 369600, 369601, @@ -34309,13 +34246,11 @@ 369688, 369699, 369704, - 369710, 369718, 369740, 369753, 369754, 369764, - 369773, 369777, 369782, 369783, @@ -34335,13 +34270,9 @@ 369975, 369977, 369982, - 369983, 369986, 369987, 370004, - 370007, - 370009, - 370015, 370018, 370024, 370026, @@ -34362,9 +34293,7 @@ 370073, 370074, 370088, - 370101, 370107, - 370123, 370124, 370125, 370145, @@ -34376,7 +34305,6 @@ 370210, 370219, 370270, - 370272, 370288, 370290, 370293, @@ -34390,12 +34318,10 @@ 370323, 370326, 370327, - 370338, 370340, 370341, 370342, 370343, - 370347, 370351, 370352, 370355, @@ -34412,13 +34338,11 @@ 370409, 370410, 370420, - 370427, 370430, 370489, 370510, 370523, 370534, - 370536, 370539, 370541, 370553, @@ -34428,8 +34352,6 @@ 370589, 370618, 370632, - 370633, - 370634, 370651, 370652, 370656, @@ -34442,20 +34364,15 @@ 370691, 370692, 370693, - 370697, - 370702, 370705, 370706, 370708, 370710, 370712, - 370714, - 370721, 370747, 370753, 370754, 370762, - 370769, 370774, 370776, 370777, @@ -34467,22 +34384,18 @@ 370853, 370854, 370885, - 370915, 370916, 370917, 370922, 370923, - 370927, 370929, 370937, 370956, 370965, - 370966, 370971, 370988, 370999, 371001, - 371003, 371005, 371007, 371009, @@ -34504,7 +34417,6 @@ 371097, 371098, 371102, - 371104, 371105, 371106, 371108, @@ -34512,7 +34424,6 @@ 371117, 371120, 371124, - 371126, 371141, 371151, 371162, @@ -34551,7 +34462,6 @@ 371424, 371425, 371426, - 371436, 371441, 371444, 371451, @@ -34561,8 +34471,6 @@ 371455, 371458, 371474, - 371475, - 371478, 371481, 371482, 371487, @@ -34572,7 +34480,6 @@ 371517, 371522, 371530, - 371554, 371555, 371574, 371576, @@ -34585,7 +34492,6 @@ 371598, 371600, 371610, - 371611, 371614, 371617, 371618, @@ -34594,7 +34500,6 @@ 371625, 371626, 371627, - 371631, 371634, 371636, 371638, @@ -34618,9 +34523,6 @@ 371899, 371907, 371908, - 371917, - 371935, - 371936, 371937, 371941, 371943, @@ -34648,15 +34550,10 @@ 372218, 372227, 372228, - 372230, - 372231, 372248, - 372250, 372257, 372292, - 372295, 372298, - 372310, 372315, 372317, 372361, @@ -34664,9 +34561,7 @@ 372434, 372441, 372444, - 372483, 372500, - 372543, 372555, 372560, 372567, @@ -34680,7 +34575,6 @@ 372611, 372645, 372648, - 372649, 372660, 372662, 372664, @@ -34697,13 +34591,10 @@ 372708, 372732, 372739, - 372774, 372776, 372781, 372790, 372792, - 372795, - 372801, 372821, 372831, 372833, @@ -34718,14 +34609,11 @@ 372875, 372877, 372911, - 372914, - 372943, 372948, 372965, 372968, 372974, 372978, - 372980, 372984, 372985, 372988, @@ -34736,7 +34624,6 @@ 373035, 373061, 373064, - 373099, 373119, 373145, 373192, @@ -34765,24 +34652,19 @@ 373315, 373318, 373320, - 373322, 373323, 373324, - 373325, 373326, 373329, 373330, 373332, - 373333, 373336, 373339, 373344, 373346, - 373351, 373356, 373367, 373390, - 373393, 373398, 373412, 373431, @@ -34796,17 +34678,13 @@ 373536, 373539, 373548, - 373553, 373556, 373557, - 373560, - 373563, 373571, 373573, 373579, 373580, 373585, - 373586, 373591, 373593, 373641, @@ -34841,7 +34719,6 @@ 373916, 373918, 373923, - 373925, 373926, 373931, 373932, @@ -34849,7 +34726,6 @@ 373938, 373949, 373950, - 373951, 373952, 373962, 373964, @@ -34862,10 +34738,8 @@ 373983, 373984, 373986, - 374002, 374003, 374008, - 374009, 374034, 374035, 374036, @@ -34882,8 +34756,6 @@ 374100, 374105, 374126, - 374131, - 374132, 374135, 374139, 374148, @@ -34904,14 +34776,11 @@ 374317, 374322, 374323, - 374326, 374331, 374332, 374334, 374335, 374338, - 374339, - 374340, 374344, 374346, 374351, @@ -34921,12 +34790,10 @@ 374355, 374356, 374365, - 374367, 374371, 374377, 374378, 374379, - 374384, 374388, 374397, 374410, @@ -36943,105 +36810,848 @@ 355624, 367912, 372787 - ] - ] - }, - "Courses must have at least 18 credits.": { - "fulfilledBy": "credits", - "perSlotMinCount": [ - 18 - ], - "conditions": { - "121": { - "colleges": [ - "AR", - "AS1", - "AS2", - "HE", - "IL" - ], - "majorsExcluded": [ - "Biological Sciences" - ] - }, - "122": { - "colleges": [ - "AG", - "AR", - "AS1", - "AS2", - "HE", - "IL" - ] - } - }, - "courses": [ + ], [ - 104, - 105, - 106, - 109, - 120, - 121, - 122, - 203, - 301, 350010, - 350025, - 350038, - 350188, 350234, - 350240, - 350262, - 350270, - 350275, - 350281, - 350303, - 350313, - 350323, - 350328, - 350331, - 350335, - 350342, - 350359, - 350428, - 350429, - 350460, - 350472, - 350486, - 350510, - 350529, - 350536, - 350551, 350635, - 350636, - 350661, 350668, - 350693, - 350721, 350732, 350754, - 350778, 350780, - 350783, - 350809, - 350825, - 350826, - 350827, - 350828, - 350830, - 350837, - 350839, - 350841, - 350842, - 350843, - 350845, - 350849, - 350852, - 350862, - 350883, - 350884, - 350885, + 351001, + 351100, + 351102, + 351145, + 351241, + 351417, + 351556, + 351862, + 352050, + 352628, + 352689, + 352722, + 352740, + 352755, + 352969, + 353266, + 353332, + 353443, + 353450, + 353481, + 353568, + 353584, + 353629, + 353842, + 354026, + 354441, + 354447, + 354474, + 354639, + 354643, + 354653, + 354657, + 354661, + 354673, + 354680, + 354697, + 354699, + 354707, + 354735, + 354744, + 354748, + 355244, + 355291, + 357442, + 357491, + 357499, + 357558, + 357566, + 357574, + 357751, + 357753, + 357763, + 357770, + 357914, + 357919, + 357987, + 358193, + 358301, + 358369, + 358480, + 358962, + 358973, + 359013, + 359017, + 359080, + 359170, + 359270, + 359281, + 359367, + 359422, + 359446, + 359455, + 359600, + 359639, + 359790, + 359830, + 359846, + 360060, + 360371, + 360490, + 360635, + 361070, + 361756, + 361885, + 362028, + 362724, + 362881, + 362981, + 362986, + 363017, + 363101, + 363265, + 363304, + 363318, + 363425, + 363426, + 363436, + 363559, + 363677, + 363804, + 363820, + 364165, + 364172, + 364437, + 364439, + 364463, + 364474, + 364596, + 364778, + 364891, + 365039, + 365080, + 365082, + 365117, + 365225, + 365237, + 365252, + 365254, + 365497, + 365700, + 365705, + 365706, + 365725, + 365763, + 365823, + 365991, + 366379, + 366396, + 366442, + 366452, + 366460, + 366470, + 366528, + 366538, + 366554, + 366561, + 366577, + 366591, + 366679, + 366681, + 366704, + 366760, + 366901, + 366974, + 367060, + 367156, + 367218, + 367226, + 367227, + 367228, + 367264, + 367312, + 367328, + 367330, + 367334, + 367440, + 367466, + 367765, + 367817, + 367821, + 367858, + 368026, + 368125, + 368127, + 368130, + 368206, + 368238, + 368239, + 368269, + 368289, + 368372, + 368466, + 368523, + 368601, + 368622, + 368654, + 368697, + 368795, + 368830, + 368878, + 368884, + 368891, + 368897, + 368901, + 368915, + 368924, + 368972, + 368994, + 368996, + 369084, + 369085, + 369174, + 369176, + 369185, + 369301, + 369328, + 369339, + 369372, + 369567, + 369569, + 369577, + 369617, + 369628, + 369644, + 369646, + 369691, + 369704, + 369710, + 369764, + 369773, + 369898, + 369926, + 369933, + 369983, + 370007, + 370009, + 370015, + 370046, + 370066, + 370101, + 370123, + 370210, + 370272, + 370293, + 370301, + 370323, + 370338, + 370340, + 370341, + 370347, + 370427, + 370534, + 370536, + 370633, + 370634, + 370697, + 370702, + 370706, + 370710, + 370714, + 370721, + 370769, + 370853, + 370915, + 370927, + 370965, + 370966, + 371003, + 371011, + 371019, + 371053, + 371104, + 371126, + 371309, + 371343, + 371355, + 371424, + 371425, + 371436, + 371454, + 371455, + 371475, + 371478, + 371488, + 371490, + 371503, + 371554, + 371572, + 371574, + 371576, + 371600, + 371610, + 371611, + 371625, + 371631, + 371706, + 371715, + 371749, + 371917, + 371935, + 371936, + 371937, + 371991, + 372002, + 372023, + 372177, + 372230, + 372231, + 372250, + 372295, + 372310, + 372315, + 372391, + 372434, + 372483, + 372543, + 372645, + 372649, + 372674, + 372688, + 372774, + 372790, + 372795, + 372801, + 372821, + 372831, + 372838, + 372863, + 372914, + 372938, + 372939, + 372943, + 372978, + 372980, + 373002, + 373033, + 373069, + 373099, + 373257, + 373287, + 373312, + 373322, + 373325, + 373329, + 373330, + 373333, + 373339, + 373351, + 373393, + 373454, + 373539, + 373553, + 373560, + 373563, + 373586, + 373700, + 373771, + 373790, + 373842, + 373914, + 373925, + 373951, + 374002, + 374009, + 374066, + 374091, + 374131, + 374132, + 374213, + 374314, + 374326, + 374339, + 374340, + 374367, + 374377, + 374384, + 374459 + ] + ] + }, + "One course of 3 or more credits must come from Group 7.": { + "fulfilledBy": "courses", + "perSlotMinCount": [ + 1 + ], + "slotNames": [ + "Course" + ], + "courses": [ + [ + 350010, + 350234, + 350635, + 350668, + 350732, + 350754, + 350780, + 351001, + 351100, + 351102, + 351145, + 351241, + 351417, + 351556, + 351862, + 352050, + 352628, + 352689, + 352722, + 352740, + 352755, + 352969, + 353266, + 353332, + 353443, + 353450, + 353481, + 353568, + 353584, + 353629, + 353842, + 354026, + 354441, + 354447, + 354474, + 354639, + 354643, + 354653, + 354657, + 354661, + 354673, + 354680, + 354697, + 354699, + 354707, + 354735, + 354744, + 354748, + 355244, + 355291, + 357442, + 357491, + 357499, + 357558, + 357566, + 357574, + 357751, + 357753, + 357763, + 357770, + 357914, + 357919, + 357987, + 358193, + 358301, + 358369, + 358480, + 358962, + 358973, + 359013, + 359017, + 359080, + 359170, + 359270, + 359281, + 359367, + 359422, + 359446, + 359455, + 359600, + 359639, + 359790, + 359830, + 359846, + 360060, + 360371, + 360490, + 360635, + 361070, + 361756, + 361885, + 362028, + 362724, + 362881, + 362981, + 362986, + 363017, + 363101, + 363265, + 363304, + 363318, + 363425, + 363426, + 363436, + 363559, + 363677, + 363804, + 363820, + 364165, + 364172, + 364437, + 364439, + 364463, + 364474, + 364596, + 364778, + 364891, + 365039, + 365080, + 365082, + 365117, + 365225, + 365237, + 365252, + 365254, + 365497, + 365700, + 365705, + 365706, + 365725, + 365763, + 365823, + 365991, + 366379, + 366396, + 366442, + 366452, + 366460, + 366470, + 366528, + 366538, + 366554, + 366561, + 366577, + 366591, + 366679, + 366681, + 366704, + 366760, + 366901, + 366974, + 367060, + 367156, + 367218, + 367226, + 367227, + 367228, + 367264, + 367312, + 367328, + 367330, + 367334, + 367440, + 367466, + 367765, + 367817, + 367821, + 367858, + 368026, + 368125, + 368127, + 368130, + 368206, + 368238, + 368239, + 368269, + 368289, + 368372, + 368466, + 368523, + 368601, + 368622, + 368654, + 368697, + 368795, + 368830, + 368878, + 368884, + 368891, + 368897, + 368901, + 368915, + 368924, + 368972, + 368994, + 368996, + 369084, + 369085, + 369174, + 369176, + 369185, + 369301, + 369328, + 369339, + 369372, + 369567, + 369569, + 369577, + 369617, + 369628, + 369644, + 369646, + 369691, + 369704, + 369710, + 369764, + 369773, + 369898, + 369926, + 369933, + 369983, + 370007, + 370009, + 370015, + 370046, + 370066, + 370101, + 370123, + 370210, + 370272, + 370293, + 370301, + 370323, + 370338, + 370340, + 370341, + 370347, + 370427, + 370534, + 370536, + 370633, + 370634, + 370697, + 370702, + 370706, + 370710, + 370714, + 370721, + 370769, + 370853, + 370915, + 370927, + 370965, + 370966, + 371003, + 371011, + 371019, + 371053, + 371104, + 371126, + 371309, + 371343, + 371355, + 371424, + 371425, + 371436, + 371454, + 371455, + 371475, + 371478, + 371488, + 371490, + 371503, + 371554, + 371572, + 371574, + 371576, + 371600, + 371610, + 371611, + 371625, + 371631, + 371706, + 371715, + 371749, + 371917, + 371935, + 371936, + 371937, + 371991, + 372002, + 372023, + 372177, + 372230, + 372231, + 372250, + 372295, + 372310, + 372315, + 372391, + 372434, + 372483, + 372543, + 372645, + 372649, + 372674, + 372688, + 372774, + 372790, + 372795, + 372801, + 372821, + 372831, + 372838, + 372863, + 372914, + 372938, + 372939, + 372943, + 372978, + 372980, + 373002, + 373033, + 373069, + 373099, + 373257, + 373287, + 373312, + 373322, + 373325, + 373329, + 373330, + 373333, + 373339, + 373351, + 373393, + 373454, + 373539, + 373553, + 373560, + 373563, + 373586, + 373700, + 373771, + 373790, + 373842, + 373914, + 373925, + 373951, + 374002, + 374009, + 374066, + 374091, + 374131, + 374132, + 374213, + 374314, + 374326, + 374339, + 374340, + 374367, + 374377, + 374384, + 374459 + ] + ] + }, + "Courses must have at least 18 credits.": { + "fulfilledBy": "credits", + "perSlotMinCount": [ + 18 + ], + "conditions": { + "121": { + "colleges": [ + "AR", + "AS1", + "AS2", + "HE", + "IL" + ], + "majorsExcluded": [ + "Biological Sciences" + ] + }, + "122": { + "colleges": [ + "AG", + "AR", + "AS1", + "AS2", + "HE", + "IL" + ] + } + }, + "courses": [ + [ + 104, + 105, + 106, + 109, + 120, + 121, + 122, + 203, + 301, + 350010, + 350025, + 350038, + 350188, + 350234, + 350240, + 350262, + 350270, + 350275, + 350281, + 350303, + 350313, + 350323, + 350328, + 350331, + 350335, + 350342, + 350359, + 350428, + 350429, + 350460, + 350472, + 350486, + 350510, + 350529, + 350536, + 350551, + 350635, + 350636, + 350661, + 350668, + 350693, + 350721, + 350732, + 350754, + 350778, + 350780, + 350783, + 350809, + 350825, + 350826, + 350827, + 350828, + 350830, + 350837, + 350839, + 350841, + 350842, + 350843, + 350845, + 350849, + 350852, + 350862, + 350883, + 350884, + 350885, 350888, 350898, 350901, @@ -37465,6 +38075,7 @@ 353615, 353619, 353621, + 353629, 353639, 353643, 353653, @@ -37532,6 +38143,7 @@ 353996, 353999, 354000, + 354026, 354068, 354071, 354077, @@ -37639,6 +38251,7 @@ 354859, 354915, 355243, + 355244, 355291, 355526, 355528, @@ -37924,6 +38537,7 @@ 360397, 360404, 360490, + 360635, 360697, 360715, 360716, @@ -37932,6 +38546,7 @@ 360989, 360990, 360995, + 361070, 361143, 361144, 361146, @@ -38655,6 +39270,8 @@ 368221, 368224, 368236, + 368238, + 368239, 368242, 368247, 368258, @@ -38834,6 +39451,7 @@ 368947, 368948, 368951, + 368972, 368983, 368990, 368992, @@ -38880,6 +39498,7 @@ 369176, 369177, 369179, + 369185, 369207, 369214, 369217, @@ -39069,6 +39688,7 @@ 370036, 370041, 370043, + 370046, 370051, 370054, 370056, @@ -39507,6 +40127,7 @@ 371649, 371676, 371677, + 371706, 371708, 371709, 371713, @@ -39774,6 +40395,8 @@ 372909, 372911, 372914, + 372938, + 372939, 372942, 372943, 372948, @@ -39887,6 +40510,7 @@ 373432, 373449, 373452, + 373454, 373458, 373465, 373477, @@ -40562,6 +41186,7 @@ 353615, 353619, 353621, + 353629, 353639, 353643, 353653, @@ -40617,6 +41242,7 @@ 353996, 353999, 354000, + 354026, 354068, 354071, 354077, @@ -40716,6 +41342,7 @@ 354831, 354859, 355243, + 355244, 355291, 355617, 355623, @@ -40973,6 +41600,7 @@ 360397, 360404, 360490, + 360635, 360697, 360715, 360716, @@ -40980,6 +41608,7 @@ 360989, 360990, 360995, + 361070, 361143, 361144, 361146, @@ -41639,6 +42268,8 @@ 368221, 368224, 368236, + 368238, + 368239, 368242, 368247, 368262, @@ -41801,6 +42432,7 @@ 368947, 368948, 368951, + 368972, 368983, 368992, 368994, @@ -41843,6 +42475,7 @@ 369176, 369177, 369179, + 369185, 369207, 369214, 369217, @@ -42019,6 +42652,7 @@ 370036, 370041, 370043, + 370046, 370051, 370054, 370056, @@ -42425,6 +43059,7 @@ 371642, 371648, 371649, + 371706, 371708, 371709, 371713, @@ -42680,6 +43315,8 @@ 372901, 372911, 372914, + 372938, + 372939, 372942, 372943, 372948, @@ -42782,6 +43419,7 @@ 373432, 373449, 373452, + 373454, 373458, 373477, 373478,