ArturoAmaya / ExploratoryCurricularAnalytics

Scripts to convert UCSD Curriculum information from UCSD format into Curricular Analytics format.
1 stars 3 forks source link

Department name #28

Closed SheepTester closed 2 years ago

SheepTester commented 2 years ago

Currently, upload.py uses the major name (column E, "Major Description," of isis_major_code_list.xlsx) after the major code for the curriculum name.

https://github.com/ArturoAmaya/ExploratoryCurricularAnalytics/blob/8bab5be8d8b2e4cc4a1bdc56eea5e8840dbb90f8/upload.py#L264

IMO, the major name is good enough and probably is better for distinguishing between different majors under the same department.

However, the uploading instructions say

    • Enter the name in this format: major code-department e.g. BE25- Bioengineering

Currently, none of the data we have gives department names, but they do give abbreviations of the major departments, both in column J, "Department," of isis_major_code_list.xlsx, and column A, "Department," of academic_plans.csv. For example, for BE25, both spreadsheets have BENG as its department.

I think it's feasible to get department names from the course catalog: https://catalog.ucsd.edu/front/courses.html

ArturoAmaya commented 2 years ago

Ok cool. Look into that, but I agree that using just the major is more readable. We could look into just putting the curricula into different Child Organization on the Curricular Analytics website and leave the current naming system.

ArturoAmaya commented 2 years ago

You also might want to use https://blink.ucsd.edu/instructors/academic-info/majors/major-codes.html for pairing major codes to departments, it has clear pairs between full department name and major code.

SheepTester commented 2 years ago

You also might want to use https://blink.ucsd.edu/instructors/academic-info/majors/major-codes.html for pairing major codes to departments, it has straight pairs

OH I thought that was the same as the major codes spreadsheet so I ignored it. That'll be useful, thanks!

SheepTester commented 2 years ago
console.log(`{
${[...document.querySelectorAll('.body')].map(td => {
const major = td.parentNode.children[2]?.textContent || td.parentNode.nextElementSibling.children[1]?.textContent
return `    '${major.slice(0, 2)}': '${td.textContent}',`
}).join('\n')}
}`)

produces

{
    'AN': 'Anthropology',
    'BE': 'Bioengineering',
    'BI': 'Biology',
    'CH': 'Chemistry and Biochemistry',
    'CG': 'Cognitive Science',
    'EN': 'Economics',
    'EC': 'Electrical and Computer Engineering',
    'HS': 'Human Developmental Sciences',
    'IN': 'Individual Studies',
    'IS': 'International Studies',
    'LT': 'Literature',
    'MA': 'Mathematics',
    'PY': 'Physics',
    'PS': 'Political Science',
    'SI': 'Scripps Institution of Oceanography',
    'SO': 'Sociology',
    'SE': 'Structural Engineering',
    'TH': 'Theatre and Dance',
    'UN': 'Undeclared',
    'VA': 'Visual Arts',
}
SheepTester commented 2 years ago

image Seems to be missing department names, alas. Will try course catalog

I already had

depts = ['ANTH', 'BENG', 'BIOL', 'CENG', 'CGS', 'CHEM', 'CHIN', 'CLAS', 'COGS', 'COMM', 'CSE', 'DSC', 'ECE', 'ECON', 'EDS', 'ESYS', 'ETHN', 'GLBH', 'GMST', 'GSS', 'HDS', 'HIST', 'INTL', 'ITAL', 'JAPN', 'JWSP', 'LATI', 'LING', 'LIT', 'MAE', 'MATH', 'MUS', 'NENG', 'PHIL', 'PHYS', 'POLI', 'PSYC', 'RELI', 'RUSS', 'SE', 'SIO', 'SOC', 'SPH', 'THEA', 'UNAF', 'USP', 'VIS']
depts.map(dept => document.querySelector(`a[href$='${dept}.html']`) ?? dept)

set up to get the "Courses" links on the page, but it seems a few departments can't be found that way. Shouldn't be too bad I think image

ArturoAmaya commented 2 years ago

Huh, that's so weird that some of the rows just aren't given the body class... oh well.

SheepTester commented 2 years ago
depts = ['ANTH', 'BENG', 'BIOL', 'CENG', 'CGS', 'CHEM', 'CHIN', 'CLAS', 'COGS', 'COMM', 'CSE', 'DSC', 'ECE', 'ECON', 'EDS', 'ESYS', 'ETHN', 'GLBH', 'GMST', 'GSS', 'HDS', 'HIST', 'INTL', 'ITAL', 'JAPN', 'JWSP', 'LATI', 'LING', 'LIT', 'MAE', 'MATH', 'MUS', 'NENG', 'PHIL', 'PHYS', 'POLI', 'PSYC', 'RELI', 'RUSS', 'SE', 'SIO', 'SOC', 'SPH', 'THEA', 'UNAF', 'USP', 'VIS']
console.log(`{
${depts.map(dept => `    '${dept}': '${document.querySelector(`a[href$='/${dept}.html']`)?.closest('p').textContent?.split('[')[0].trim() ?? dept}',`).join('\n')}
}`)
{
    'ANTH': 'Anthropology',
    'BENG': 'Bioengineering',
    'BIOL': 'Biological Sciences',
    'CENG': 'CENG',
    'CGS': 'Critical Gender Studies',
    'CHEM': 'Chemistry and Biochemistry',
    'CHIN': 'Chinese Studies',
    'CLAS': 'Classical Studies',
    'COGS': 'Cognitive Science',
    'COMM': 'Communication',
    'CSE': 'Computer Science and Engineering',
    'DSC': 'Data Science',
    'ECE': 'Electrical and Computer Engineering',
    'ECON': 'Economics',
    'EDS': 'Education Studies',
    'ESYS': 'Environmental Systems',
    'ETHN': 'Ethnic Studies',
    'GLBH': 'Global Health Program',
    'GMST': 'GMST',
    'GSS': 'Global South Studies (formerly Third World Studies)',
    'HDS': 'Human Developmental Sciences Program',
    'HIST': 'History',
    'INTL': 'International Studies',
    'ITAL': 'Italian Studies',
    'JAPN': 'Japanese Studies',
    'JWSP': 'Jewish Studies',
    'LATI': 'Latin American Studies',
    'LING': 'Linguistics',
    'LIT': 'Literature',
    'MAE': 'Mechanical and Aerospace Engineering',
    'MATH': 'Mathematics',
    'MUS': 'Music',
    'NENG': 'NENG',
    'PHIL': 'Philosophy',
    'PHYS': 'Physics',
    'POLI': 'Political Science',
    'PSYC': 'Psychology',
    'RELI': 'Religion, Study of',
    'RUSS': 'Russian, East European, and Eurasian Studies',
    'SE': 'Structural Engineering',
    'SIO': 'Scripps Institution of Oceanography',
    'SOC': 'Sociology',
    'SPH': 'SPH',
    'THEA': 'Theatre and Dance',
    'UNAF': 'UNAF',
    'USP': 'Urban Studies and Planning',
    'VIS': 'Visual Arts',
}

still some departments to find names for but this is pretty good so far

SheepTester commented 2 years ago

UNAF probably stands for Unaffiliated (it has a mix of majors under it, and not much else)

CENG and NENG are probably Chemical and Nanoengineering (the catalog groups them under NANO)

SPH might be the School of Public Health

In looking for GMST I found this https://registrar.ucsd.edu/ver2/dservices/thirdweek/FA16/REGBDM04.FA16.PDF which is pretty nice except it abbreviates the department names which makes me unhappy, but it does seem to suggest that GMST is "German Studies" which is in line with the other regional studies departments

ArturoAmaya commented 2 years ago

Yup UNAF is unaffiliated, or at least that's what the plans tool calls it. It should have UN27, UNHA, UNPS and UNSS.

ArturoAmaya commented 2 years ago

I can confirm CENG and NENG are Chemical Engineering and Nano Engineering respectively. It's interesting that the catalog lists them both under Nano Engineering. The plans tool and the blink website list them as separate entities.

ArturoAmaya commented 2 years ago

Totally tangential, but that's a really cool document you uncovered. I'd never seen full enrollment numbers broken down like that :0

SheepTester commented 2 years ago

Yup UNAF is unaffiliated, or at least that's what the plans tool calls it. It should have UN27, UNHA, UNPS and UNSS.

Ah, forgot that they also have a list of departments. Conveniently, all their names and codes are there directly 👏

image

https://plans.ucsd.edu/controller.php?action=LoadSearchControls

ArturoAmaya commented 2 years ago

Riiiiiiight I completely spaced on that one too. That's super convenient.