Skip to content

Commit

Permalink
Support Anthropology Major (#869)
Browse files Browse the repository at this point in the history
* feat: add anthropology major

* fix: improve grammar for anthropology req

* fix: update requirements file
  • Loading branch information
Destaq authored and Andrew J Xu committed Feb 29, 2024
1 parent a14e473 commit 9c51299
Show file tree
Hide file tree
Showing 4 changed files with 752 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/data/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import engineeringRequirements, { engineeringAdvisors } from './colleges/en';
import humanEcologyRequirements, { humanEcologyAdvisors } from './colleges/he';
import ilrRequirements, { ilrAdvisors } from './colleges/il';
import aemRequirements, { aemAdvisors } from './majors/aem';
import anthrRequirements, { anthrAdvisors } from './majors/anthr';
import asRequirements, { asAdvisors } from './majors/as';
import astroRequrements, { astroAdvisors } from './majors/astro';
import bioRequirements, { bioAdvisors } from './majors/bio';
Expand Down Expand Up @@ -145,6 +146,13 @@ const json: RequirementsJson = {
advisors: aemAdvisors,
abbrev: 'AEM',
},
ANTHR: {
name: 'Anthropology',
schools: ['AS1', 'AS2'],
requirements: anthrRequirements,
advisors: anthrAdvisors,
abbrev: 'Anthr',
},
AS: {
name: 'Atmospheric Science',
schools: ['AG'],
Expand Down
108 changes: 108 additions & 0 deletions src/data/majors/anthr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
import { CollegeOrMajorRequirement, Course } from '../../requirements/types';
import {
ifCodeMatch,
courseMatchesCodeOptions,
includesWithSingleRequirement,
includesWithSubRequirements,
courseMeetsCreditMinimum,
courseIsFWS,
} from '../../requirements/checkers';
import { AdvisorGroup } from '../../tools/advisors/types';

const anthrRequirements: readonly CollegeOrMajorRequirement[] = [
{
name: 'Sociocultural, Archaeological, and Biological Anthropology',
description:
'One course of 3 or more credits in each of the three subfields (sociocultural, archaeological, biological) from the list below.' +
'Sociocultural - ANTHR 1400, ANTHR 2400, ANTHR 2421, ANTHR 2468.' +
'Archaeological - ANTHR 1200, ANTHR 2245, ANTHR 2430, ANTHR 2729.' +
'Biological - ANTHR 1300, ANTHR 2310.',
source: 'https://courses.cornell.edu/preview_program.php?catoid=55&poid=28110',
checker: includesWithSubRequirements(
['ANTHR 1400', 'ANTHR 2400', 'ANTHR 2421', 'ANTHR 2468'],
['ANTHR 1200', 'ANTHR 2245', 'ANTHR 2430', 'ANTHR 2729'],
['ANTHR 1300', 'ANTHR 2310']
),
fulfilledBy: 'courses',
perSlotMinCount: [1, 1, 1],
slotNames: ['Sociocultural', 'Archaeological', 'Biological'],
},
{
name: 'Introduction to Anthropological Theory',
description: 'ANTHR 3000',
source: 'https://courses.cornell.edu/preview_program.php?catoid=55&poid=28110',
checker: includesWithSingleRequirement('ANTHR 3000'),
fulfilledBy: 'courses',
perSlotMinCount: [1],
slotNames: ['ANTHR 3000'],
},
{
name: 'Two 3000-level Courses',
description: 'Two other courses of at least 3 credits at the 3000-level.',
source: 'https://courses.cornell.edu/preview_program.php?catoid=55&poid=28110',
checker: [
(course: Course): boolean => {
const { catalogNbr, subject } = course;
return (
ifCodeMatch(subject, 'ANTHR') &&
!courseMatchesCodeOptions(course, ['ANTHR 3000']) &&
ifCodeMatch(catalogNbr, '3***') &&
courseMeetsCreditMinimum(course, 3)
);
},
],
fulfilledBy: 'courses',
perSlotMinCount: [2],
slotNames: ['Course'],
},
{
name: 'Two 4000-level Courses',
description:
'Two 4000-level courses of at least 3 credits each, one of which must be a seminar course in your senior year with a research paper or project component (ANTHR 4263 is not a seminar course and does not fill the requirement).',
source: 'https://courses.cornell.edu/preview_program.php?catoid=55&poid=28110',
checker: [
(course: Course): boolean => {
const { catalogNbr, subject } = course;
return (
ifCodeMatch(subject, 'ANTHR') &&
ifCodeMatch(catalogNbr, '4***') &&
courseMeetsCreditMinimum(course, 3)
);
},
],
checkerWarning:
'We do not check if a course is of seminar style with a research paper / project component.',
fulfilledBy: 'courses',
perSlotMinCount: [2],
slotNames: ['Course'],
},
{
name: 'Two Elective Courses',
description:
'An additional two elective courses of at least 3 credits each, which may be in cognate disciplines with the approval of your advisor.' +
'No S–U credits or First-Year Writing Seminars may count towards this requirement (or indeed the major).',
source: 'https://courses.cornell.edu/preview_program.php?catoid=55&poid=28110',
checker: [
(course: Course): boolean => {
const { subject } = course;
return (
ifCodeMatch(subject, 'ANTHR') &&
!courseMatchesCodeOptions(course, ['ANTHR 3000']) &&
!courseIsFWS(course) &&
courseMeetsCreditMinimum(course, 3)
);
},
],
checkerWarning:
'We do not check that a given discipline is cognate and would be approved by your advisor.',
fulfilledBy: 'courses',
perSlotMinCount: [2],
slotNames: ['Course'],
},
];

export default anthrRequirements;

export const anthrAdvisors: AdvisorGroup = {
advisors: [{ name: 'Brett Preston Jr', email: 'bp454@cornell.edu' }],
};
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ Array [
"Major-AEM-Management Requirements",
"Major-AEM-Quantitative Methods Elective Requirements",
"Major-AEM-Quantitative Methods Requirements",
"Major-ANTHR-Introduction to Anthropological Theory",
"Major-ANTHR-Sociocultural, Archaeological, and Biological Anthropology",
"Major-ANTHR-Two 3000-level Courses",
"Major-ANTHR-Two 4000-level Courses",
"Major-ANTHR-Two Elective Courses",
"Major-AS-Basic Physical Sciences",
"Major-AS-Computer Science",
"Major-AS-Core",
Expand Down
Loading

0 comments on commit 9c51299

Please sign in to comment.