Skip to content
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
Empty file.
292 changes: 292 additions & 0 deletions apps/engine/course_requirements/major_requirements/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
"""
Constants copied from HoagiePlan (plan/backend/constants.py).
Defines department codes, major/minor/certificate listings, and language departments.
"""

from typing import Dict

DEPTS: Dict[str, str] = {
"AAS": "African American Studies",
"ASL": "American Sign Language",
"AFS": "African Studies",
"AMS": "American Studies",
"ANT": "Anthropology",
"AOS": "Atmospheric & Oceanic Sciences",
"APC": "Applied and Computational Math",
"ARA": "Arabic",
"ARC": "Architecture",
"ART": "Art and Archaeology",
"ASA": "Asian American Studies",
"AST": "Astrophysical Sciences",
"ATL": "Atelier",
"BCS": "Bosnian-Croatian-Serbian",
"BNG": "Bioengineering",
"CBE": "Chemical and Biological Engr",
"CEE": "Civil and Environmental Engr",
"CDH": "Computational/Data Humanities",
"CGS": "Cognitive Science",
"CHI": "Chinese",
"CHM": "Chemistry",
"CHV": "Center for Human Values",
"CLA": "Classics",
"CLG": "Classical Greek",
"COM": "Comparative Literature",
"COS": "Computer Science",
"CSE": "Computational Sci & Engr",
"CTL": "Center for Teaching & Learning",
"CWR": "Creative Writing",
"CZE": "Czech",
"DAN": "Dance",
"EAS": "East Asian Studies",
"ECE": "Electrical and Computer Engineering",
"ECO": "Economics",
"ECS": "European Cultural Studies",
"EEB": "Ecology and Evol Biology",
"EGR": "Engineering",
"ENE": "Energy Studies",
"ENG": "English",
"ENT": "Entrepreneurship",
"ENV": "Environmental Studies",
"EPS": "Contemporary European Politics",
"FIN": "Finance",
"FRE": "French",
"FRS": "Freshman Seminars",
"GEO": "Geosciences",
"GER": "German",
"GEZ": "Ge'ez",
"GHP": "Global Health & Health Policy",
"GSS": "Gender and Sexuality Studies",
"HEB": "Hebrew",
"HIN": "Hindi",
"HIS": "History",
"HLS": "Hellenic Studies",
"HOS": "History of Science",
"HUM": "Humanistic Studies",
"ISC": "Integrated Science Curriculum",
"ITA": "Italian",
"JDS": "Judaic Studies",
"JPN": "Japanese",
"JRN": "Journalism",
"KOR": "Korean",
"LAO": "Latino Studies",
"LAS": "Latin American Studies",
"LAT": "Latin",
"LCA": "Lewis Center for the Arts",
"LIN": "Linguistics",
"MAE": "Mech and Aerospace Engr",
"MAT": "Mathematics",
"MED": "Medieval Studies",
"MOD": "Media and Modernity",
"MOG": "Modern Greek",
"MOL": "Molecular Biology",
"MPP": "Music Performance",
"MSE": "Materials Science and Engr",
"MTD": "Music Theater",
"MUS": "Music",
"NES": "Near Eastern Studies",
"NEU": "Neuroscience",
"ORF": "Oper Res and Financial Engr",
"PAW": "Ancient World",
"PER": "Persian",
"PHI": "Philosophy",
"PHY": "Physics",
"PLS": "Polish",
"POL": "Politics",
"POP": "Population Studies",
"POR": "Portuguese",
"PSY": "Psychology",
"QCB": "Quantitative Computational Bio",
"REL": "Religion",
"RES": "Russian, East Europ, Eurasian",
"RUS": "Russian",
"SAN": "Sanskrit",
"SAS": "South Asian Studies",
"SLA": "Slavic Languages and Lit",
"SML": "Statistics & Machine Learning",
"SOC": "Sociology",
"SPA": "Spanish",
"SPI": "Public and International Affairs",
"STC": "Science and Technology Council",
"SWA": "Swahili",
"THR": "Theater",
"TPP": "Teacher Preparation",
"TRA": "Translation and Intercultural Communication",
"TUR": "Turkish",
"TWI": "Twi",
"UKR": "Ukrainian",
"URB": "Urban Studies",
"URD": "Urdu",
"VIS": "Visual Arts",
"WRI": "Princeton Writing Program",
}

AB_MAJORS: Dict[str, str] = {
"AAS": "African American Studies",
"ANT": "Anthropology",
"ARC": "Architecture",
"ART": "Art and Archaeology",
"AST": "Astrophysical Sciences",
"CHM": "Chemistry",
"CLA": "Classics",
"COM": "Comparative Literature",
"COS-AB": "Computer Science (A.B.)",
"EAS": "East Asian Studies",
"ECO": "Economics",
"EEB": "Ecology and Evolutionary Biology",
"ENG": "English",
"FIT": "French and Italian",
"GEO": "Geosciences",
"GER": "German",
"HIS": "History",
"LIN": "Linguistics",
"MAT": "Mathematics",
"MOL": "Molecular Biology",
"MUS": "Music",
"NES": "Near Eastern Studies",
"NEU": "Neuroscience",
"PHI": "Philosophy",
"PHY": "Physics",
"POL": "Politics",
"POR": "Portuguese",
"PSY": "Psychology",
"REL": "Religion",
"SLA": "Slavic Languages and Literatures",
"SOC": "Sociology",
"SPA": "Spanish",
"SPI": "School of Public and International Affairs",
}

BSE_MAJORS: Dict[str, str] = {
"CBE": "Chemical and Biological Engineering",
"CEE": "Civil and Environmental Engineering",
"COS-BSE": "Computer Science (B.S.E.)",
"ECE": "Electrical Engineering",
"MAE": "Mechanical and Aerospace Engineering",
"ORF": "Operations Research and Financial Engineering",
}

ALL_MAJORS: Dict[str, str] = dict(
sorted({**AB_MAJORS, **BSE_MAJORS}.items(), key=lambda item: item[0].lower())
)

LANG_DEPTS: Dict[str, str] = {
"ARA": "Arabic",
"ASL": "American Sign Language",
"SLA": "Slavic Languages and Lit",
"CHI": "Chinese",
"CZE": "Czech",
"FRE": "French",
"GER": "German",
"MOG": "Modern Greek",
"CLG": "Classical Greek",
"HEB": "Hebrew",
"HIN": "Hindi",
"ITA": "Italian",
"JPN": "Japanese",
"KOR": "Korean",
"LAT": "Latin",
"PER": "Persian",
"POR": "Portuguese",
"RUS": "Russian",
"SAN": "Sanskrit",
"SPA": "Spanish",
"SWA": "Swahili",
"TUR": "Turkish",
"TWI": "Twi",
"URD": "Urdu",
}

SEMESTER_TO_TERM_CODE = {
"f2025": 1262,
"f2024": 1252,
"f2023": 1242,
"f2022": 1232,
"f2021": 1222,
"f2020": 1212,
"s2026": 1264,
"s2025": 1254,
"s2024": 1244,
"s2023": 1234,
"s2022": 1224,
"s2021": 1214,
}

MINORS: Dict[str, str] = {
"AAS": "African American Studies",
"AFS": "African Studies",
"APC": "Applied and Computational Mathematics",
"ARA": "Arabic Language",
"ASA": "Asian American Studies",
"ART": "Archaeology",
"BNG": "Bioengineering",
"CGS": "Cognitive Science",
"CHI": "Chinese Language",
"CLA": "Classics",
"COS": "Computer Science",
"CLS": "Climate Science",
"CWR": "Creative Writing",
"DAN": "Dance",
"EAS": "East Asian Studies",
"ENE": "Sustainable Energy",
"ENG": "English",
"ENV": "Environmental Studies",
"EUS": "European Studies",
"FIN": "Finance",
"FRE": "French Language and Culture",
"GHP": "Global Health & Health Policy",
"GSS": "Gender and Sexuality Studies",
"HOA": "History of Art",
"HEB": "Hebrew Language and Culture",
"HIS": "History",
"HLS": "Hellenic Studies",
"HSTM": "History of Science, Technology, and Medicine",
"HUM": "Humanistic Studies",
"ITA": "Italian Language and Culture",
"JDS": "Judaic Studies",
"JPN": "Japanese Language",
"JRN": "Journalism",
"KOR": "Korean Language",
"LAO": "Latino Studies",
"LAS": "Latin American Studies",
"LIN": "Linguistics",
"MAT": "Mathematics",
"MED": "Medieval Studies",
"MPP": "Music Performance",
"MQE": "Quantitative Economics",
"MSE": "Materials Science and Engineering",
"MUS": "Music",
"NES": "Near Eastern Studies",
"NEU": "Neuroscience",
"PER": "Persian Language",
"PHI": "Philosophy",
"PHY": "Engineering Physics",
"POR": "Portuguese Language and Culture",
"REL": "Religion",
"RES": "Russian, East European and Eurasian Studies",
"ROB": "Robotics",
"SAS": "South Asian Studies",
"SLA": "Slavic Languages and Literatures",
"SML": "Statistics and Machine Learning",
"SPA": "Spanish Language and Culture",
"TMT": "Theater and Music Theater",
"TRA": "Translation, Intercultural Com",
"TUR": "Turkish Language",
"VIS": "Visual Arts",
"VPL": "Values and Public Life",
}

CERTIFICATES: Dict[str, str] = {
"ACE": "Architecture and Engineering - Open to all class years",
"AMS": "American Studies - Open to all class years",
"AST": "Planets and Life - Open to Class of 26, 27, 28 only",
"ENT": "Entrepreneurship - Open to all class years",
"GEO": "Geological Engineering - Open to all class years",
"GER": "German - Open to all class years",
"HPD": "History and the Practice of Diplomacy - Open to all class years",
"OQDS": "Optimization and Quantitative Decision Science - Open to all class years",
"QCB": "Quantitative and Computational Biology - Open to all class years",
"TAS-E": "Technology and Society - Energy Track - Open to all class years",
"TAS-IT": "Technology and Society - IT Track - Open to all class years",
"TPP": "Teacher Preparation - Open to all class years",
"URB": "Urban Studies - Open to all class years",
}
Loading