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 3 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
9 changes: 9 additions & 0 deletions src/data/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import stsRequirements, { stsAdvisors } from './majors/sts';
import vienRequirements, { vienAdvisors } from './majors/vien';
import aerospaceMinorRequirements, { aerospaceMinorAdvisors } from './minors/aerospace';
import aiMinorRequirements 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,14 @@
advisors: aerospaceMinorAdvisors,
abbrev: 'AeroEng',
},
AI: {
name: 'Artificial Intelligence',
schools: ['EN'], //TODO: add Bowers

Check failure on line 459 in src/data/index.ts

View workflow job for this annotation

GitHub Actions / check

Expected exception block, space or tab after '//' in comment
requirements: aiMinorRequirements,
advisors: csAdvisors, //TODO: no set advisor for AI minor

Check failure on line 461 in src/data/index.ts

View workflow job for this annotation

GitHub Actions / check

Expected exception block, space or tab after '//' in comment
abbrev: 'AI',
},

ANIMALSCIENCE: {
name: 'Animal Science',
schools: ['AG'],
Expand Down
119 changes: 119 additions & 0 deletions src/data/minors/ai.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
import { CollegeOrMajorRequirement, Course } 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
} from '../../requirements/checkers';
import { AdvisorGroup } from '../../tools/advisors/types';

Check failure on line 8 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 9 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',
//TODO: add INFO 3450 exception for students grad in dec 2024 or may 2025

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

View workflow job for this annotation

GitHub Actions / check

Expected exception block, space or tab after '//' in comment
Copy link
Contributor

@plumshum plumshum Oct 22, 2024

Choose a reason for hiding this comment

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

Add a space between // and TODO.
We should do a requirement migrations to accommodate different major requirements based on entry year. You can check out this documentation for it! This would be under a modification
Something along the lines of
image

then follow the instructors for index.ts and running the commands in your terminal, then you should be all set!

Copy link
Contributor

Choose a reason for hiding this comment

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

perhaps same idea for CS 4780/CS3780

Copy link
Contributor

Choose a reason for hiding this comment

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

thanks for the requirement migration details, hannah! yes - we would want to add something like this. make sure that the file for the AI minor has the current requirements and the migration is for previous requirements

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 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') },
// ],
// };
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