Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adding AI minor #946

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/data/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import psychRequirements, { psychAdvisors } from './majors/psych';
import stsRequirements, { stsAdvisors } from './majors/sts';
import vienRequirements, { vienAdvisors } from './majors/vien';
import aerospaceMinorRequirements, { aerospaceMinorAdvisors } from './minors/aerospace';
import aiMinorRequirements, { aiMigrations } from './minors/ai';
import animalSciRequirements, { animalSciAdvisors } from './minors/animal-sci';
import appliedMathMinorRequirements, { appliedMathMinorAdvisors } from './minors/applied-math';
import buMinorRequirements, { buMinorAdvisors } from './minors/bu';
Expand Down Expand Up @@ -453,6 +454,15 @@ const json: RequirementsJson = {
advisors: aerospaceMinorAdvisors,
abbrev: 'AeroEng',
},
AI: {
name: 'Artificial Intelligence',
schools: ['EN'],
requirements: aiMinorRequirements,
advisors: csAdvisors,
migrations: aiMigrations,
abbrev: 'AI',
},

ANIMALSCIENCE: {
name: 'Animal Science',
schools: ['AG'],
Expand Down
137 changes: 137 additions & 0 deletions src/data/minors/ai.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
import { CollegeOrMajorRequirement, Course, RequirementMigration } from '../../requirements/types';

Check failure on line 1 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'Course' is defined but never used
import {
includesWithSingleRequirement,
courseMatchesCodeOptions,

Check failure on line 4 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'courseMatchesCodeOptions' is defined but never used
ifCodeMatch,

Check failure on line 5 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'ifCodeMatch' is defined but never used
courseMatchesCode,

Check failure on line 6 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'courseMatchesCode' is defined but never used
includesWithSubRequirements,
} from '../../requirements/checkers';
import { AdvisorGroup } from '../../tools/advisors/types';

Check failure on line 9 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'AdvisorGroup' is defined but never used
import { lastNameRange } from '../../tools/advisors/checkers';

Check failure on line 10 in src/data/minors/ai.ts

View workflow job for this annotation

GitHub Actions / check

'lastNameRange' is defined but never used

const aiMinorRequirements: readonly CollegeOrMajorRequirement[] = [
{
name: 'Machine Learning',
description: 'Add Core Course 1',
source:
'https://prod.cis.cornell.edu/undergraduate-opportunities/minors/artificial-intelligence/ai-minor-requirements',
checker: includesWithSingleRequirement(
'CS 3780',
'ECE 3200',
'ECE 4200',
'ORIE 3741',
'ORIE 4741',
'STSCI 3740'
),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['Course'],
},

{
name: 'Reasoning',
description: 'Add Core Course 2',
source:
'https://prod.cis.cornell.edu/undergraduate-opportunities/minors/artificial-intelligence/ai-minor-requirements',
checker: includesWithSingleRequirement('CS 3700'),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['Course'],
},
{
name: 'Human-AI Interaction',
description: 'Add Core Course 3',
source:
'https://prod.cis.cornell.edu/undergraduate-opportunities/minors/artificial-intelligence/ai-minor-requirements',
checker: includesWithSingleRequirement('INFO 4940'),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['Course'],
},
{
name: 'Ethics, Governance & Policy',
description: 'Add Core Course 4',
source:
'https://prod.cis.cornell.edu/undergraduate-opportunities/minors/artificial-intelligence/ai-minor-requirements',
checker: includesWithSingleRequirement('ENGRG 3605', 'INFO 1260', 'PUBPOL 4210'),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['Course'],
},
{
name: 'AI Electives',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nidhi-mylavarapu make sure this cross listing (bug?) does not break the functionality.
image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, this was a weird bug -- grabbing a course from the first bucket shouldn't cause the courses in the second bucket to change to their cross listed names. I would look for another major or minor that requires you to select 2/n courses to fulfill a requirement and repeat that functionality.

description: 'Two of the following courses.',
source:
'http://www.cs.cornell.edu/undergrad/rulesandproceduresengineering/choosingyourelectives',
checker: includesWithSingleRequirement(
'CS 4670',
'CS 4701',
'CS 4740',
'CS 4750',
'CS 4756',
'CS 4782',
'CS 4783',
'CS 4787',
'CS 4789',
'CS 4860',
'ECE 4160',
'ENGRG 3605',
'INFO 1260',
'INFO 3350',
'INFO 3950',
'INFO 4100',
'INFO 4120',
'INFO 4130',
'INFO 4275',
'INFO 4300',
'INFO 4310',
'INFO 4410',
'LING 4424',
'LING 4434',
'MAE 4180',
'MAE 4810',
'NBA 4920',
'ORIE 4160',
'ORIE 4740',
'ORIE 4742',
'PUBPOL 4210',
'PHIL 2621',
'STS 3440',
'STSCI 3110',
'STSCI 4030',
'STSCI 4520',
'STSCI 4750'
),
fulfilledBy: 'courses',
perSlotMinCount: [2],
slotNames: ['Course'],
},
];

export const aiMigrations: RequirementMigration[] = [
{
entryYear: 2021, // This requirement only for students graduating in Dec 2024 or May 2025
type: 'Modify',
fieldName: 'Human-AI Interaction',
newValue: {
name: 'Human-AI Interaction',
description: 'INFO 3450',
source:
'https://prod.cis.cornell.edu/undergraduate-opportunities/minors/artificial-intelligence/ai-minor-requirements',
checker: includesWithSubRequirements(['INFO 3450']),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['INFO 3450'],
},
},
];

export default aiMinorRequirements;

// export const aiMinorAdvisors: AdvisorGroup = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead, should we add [email protected]](mailto:[email protected]). it's not an actual person but it's good contact information.

// advisors: [
// { name: 'Ryan Marchenese ', email: '[email protected]', checker: lastNameRange('A', 'H') },
// { name: 'Carl Cornell', email: '[email protected]', checker: lastNameRange('I', 'Q') },
// { name: 'Nicole Roy', email: '[email protected]', checker: lastNameRange('R', 'Z') },
// ],
// };
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,11 @@ Array [
"Major-VIEN-Viticulture & Enology Core",
"Minor-AEROSPACE-Group A",
"Minor-AEROSPACE-Group B or C",
"Minor-AI-AI Electives",
"Minor-AI-Ethics, Governance & Policy",
"Minor-AI-Human-AI Interaction",
"Minor-AI-Machine Learning",
"Minor-AI-Reasoning",
"Minor-ANIMALSCIENCE-Categories",
"Minor-APPLIEDECON-Applied Economics",
"Minor-APPLIEDECON-Economic Theory or Practice",
Expand Down
132 changes: 132 additions & 0 deletions src/requirements/decorated-requirements.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading