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

Differences between uploaded and generated curricula/degree plans #30

Open
SheepTester opened this issue Jun 14, 2022 · 26 comments
Open

Comments

@SheepTester
Copy link
Collaborator

Noting differences between the curricula already uploaded to the UCSD organization and the ones generated by the current state of the repo.

@SheepTester
Copy link
Collaborator Author

SheepTester commented Jun 14, 2022

TH27

Name: uploaded uses "Theater," generated uses "Theatre" (which I think is more correct)

Complexity is 2 less in the generated version

Only uploaded has prerequisites from TDTR 10 -> TDDM 101 and TDHD XXX. Only generated has prerequisites from TDDM 1 to 101. The main difference here I think is that for TDDM 101's prerequisites, the uploaded version says it's TDTR 10 while the generated version says it's TDDM 1. According to the course catalog, it's only TDDM 1.

image

Another difference is that the uploaded version uses "UD Elective Mvmnt n," while the generated version calls them all "UD Elective Movement." Similarly for Core Movement. Maybe we might want to consider adding numbers to duplicate course names? (This is the case for degree plans too, eg "GE") ⚠️

Revelle

The generated version has one more curr. compl. Core movements have been moved from terms 9 and 10 in the uploaded version to terms 2 and 4 in the generated version (This is the case for many other degree plans)

The uploaded version calls it "CHEM GE" while the generated version calls it "CHEMISTRY GE (see note)"

Muir

Uploaded: "MCWP 40"; generated: "MCWP 40/GE"

Marshall

Uploaded: "DOC 1"; generated: "DOC 1/DEI"

Warren

Interestingly, uploaded: "PHIL/POLI 1"; generated: "PHIL/POLI 27." I think 1/2 here means "PHIL/POLI" is just a generic elective sequence, while the generated version has specific course

Sixth

Uploaded: "CAT 125"; generated: "PRACTICUM OR CAT 125"

@SheepTester
Copy link
Collaborator Author

I think I'll only check Revelle for the remaining majors since Revelle is the most problematic one

@SheepTester
Copy link
Collaborator Author

SheepTester commented Jun 14, 2022

SO31

Uploaded, generated

The uploaded version uses "SOCI 10-50," which IMO is more confusing than the generated version's "SOCI 10, 20, 30, 40, OR 50" because it suggests all of them need to be taken, when only one needs to be taken.

It seems that generally, the uploaded names are more abbreviated, which is good because the names in the generated version tend to be clipped off because they're too long:
image
The uploaded version uses a single letter for "concentration," "methodology," or "elective."

Only the uploaded version has a prereq from SOCI 60 to "SOCI UD M." This is not obvious from the given data we have but I think it might be important considering that SOCI 60 is a prereq for many upper div sociology courses ⚠️

Revelle

The generated version has "(DEI APPROVED)" and "(see note)"

Uploaded: "FINE ARTS GE"; generated: "FINE ARTS"

Uploaded: "AHI/Elective"; generated: "AHI or ELECTIVE"

The uploaded version also has a prereq from HUM 2 to HUM 3, while the generated version doesn't. This is a result of #25 because HUM 1 is enough for HUM 3

@ArturoAmaya
Copy link
Owner

Warren

Interestingly, uploaded: "PHIL/POLI 1"; generated: "PHIL/POLI 27." I think 1/2 here means "PHIL/POLI" is just a generic elective sequence, while the generated version has specific course

Warren student here, can confirm PHIL/POLI 1 and 2 literally means PHIL/POLI 27 and 28. You're 100% correct.

@ArturoAmaya
Copy link
Owner

TH27

Name: uploaded uses "Theater," generated uses "Theatre" (which I think is more correct)

Agreed. The department is "Theatre and Dance"

@ArturoAmaya
Copy link
Owner

So what I'm getting, overall, is the generated names are more generic than the uploaded names. I think, that at least until we find otherwise, that's a positive thing, no? Aside from the length of the course names, of course.

@SheepTester
Copy link
Collaborator Author

PY29

Uploaded, generated

The prerequisites do be looking quite dense
image

Interestingly, the uploaded version lists math 20a as what seems to be a corequisite of math 18, while the generated version says math 20a is a prerequisite. The generated version isn't wrong because math 20a satisfies math 18's prerequisites. However, in practice, because we assume students have satisfied pre-calc, which is also an alternative prereq of math 18, students should be able to take 20a and 18 in the same quarter. This ultimately puts math 18 in a later column in the curriculum, but shouldn't affect degree plans I think. ⚠️

The uploaded version lists phys 4e as a prereq for phys 110a (in addition to math 20e), which makes it one column longer than the generated version. The generated version instead has phys 4d.

Interestingly, PHYS 4E isn't even a prereq for PHYS 110A:
image
so the uploaded version appears to be wrong.

Only the uploaded version lists math 20e as a prereq for phys 105a, but the generated version doesn't. I'm not sure why. I'll have to look into this. 🚩

Only the uploaded version lists math20e as a prereq for phys 100a. The generated version doesn't because math 20d already does

Only the generated version lists phys 4e as a prereq for phys 130a. I don't know why the uploaded version doesn't, but this might have to do with it listing phys 110a, another prereq of 130a, as requiring phys 4e.

Only the generated version lists math 20e as a prereq for phys 4d. This is correct.

Revelle

image

that's a lot of lines

For some reason, PHYS 2DL is in term 6 in the uploaded version but term 7 in the generated version.

More significantly, the updated version uses a corequisite arrow from math 20a to math 18 while the generated version uses a prerequisite arrow, despite the two courses being in the same quarter. Curricular Analytics renders this fine, but I think this should be changed: 🚩

  1. When editing the degree plan directly (by enabling editing mode, which I used to reorder the courses within quarters), math 18 pops ahead of 20a and can't be placed in the same quarter. This leads to somewhat buggy but not catastrophic behavior when you try to drag math 20a because it shows up to the left of the entire plan off the screen. Fortunately it snaps back to term 1 when you let go.
    image

  2. It probably also affects the complexity score (since it might think that math 20a blocks more courses than it actually should normally)

Since I don't think math 18 and 20a are listed as prereqs with concurrent enrollment enabled (I'd have to check this), to fix this, I could check if a prerequisite is in the same or later quarter and mark it as a corequisite instead

@SheepTester
Copy link
Collaborator Author

CS26

Uploaded, generated

The uploaded version abbreviates "engineering" as "Eng," while the generated version uses the full name "Engineering"

The uploaded version doesn't acknowledge many prerequisites: CSE 12, 15L, 105, 110, 140, and 140L have no prerequisites in the uploaded version, but they should

The uploaded version says CSE 141/141L has CSE 100 has a prereq, but the generated version doesn't say that. CSE 100 is not a prereq for CSE 141/141L. (It is for 142, which the generated version does mention, but the uploaded version doesn't; uploaded: "CSE 141," generated: "CSE 141 (or CSE 142)")
image

Like for physics, the generated version acknowledges that math 20a is a prereq of 18, which probably isn't helpful. I think we should probably add pre-calc to a hidden list of already satisfied courses, so if one of the courses in that list is in the list of alternative prerequisites for a course, then no other courses will be marked as a prereq.

Revelle

I'm not sure if this is a Revelle/degree plan issue or if I didn't notice it in the curriculum, but math 20b is listed as a prereq for CSE 12 in the generated version when it's actually not. 🚩
image

There are two 140L/141L and no 140/141. Probably a typo (I think we've caught this before)

@ArturoAmaya
Copy link
Owner

Woah! Revelle, wow.

Since I don't think math 18 and 20a are listed as prereqs with concurrent enrollment enabled (I'd have to check this), to fix this, I could check if a prerequisite is in the same or later quarter and mark it as a corequisite instead

Per the Curricular Analytics help section:

Co-requisite - course A may be taken prior to or at the same time as attempting course B.
So technically, they'd be co-requisites. However, wouldn't that definition make a lot of courses co-requisites when there's no real need to link them?

As for making a hidden list of pre-reqs, I 100% agree, but at that point we'd be editing Curricular Analytics itself - as far as I can tell there's no way to do that without making every term shift right by one to add in a term with ELWR, SAT scores, etc.

I'm going to sign off in 10, but tomorrow morning I'll take a look at each of the ones you haven't solved by then :).

@SheepTester
Copy link
Collaborator Author

I'm going to sign off in 10, but tomorrow morning I'll take a look at each of the ones you haven't solved by then :).

I'll be signing off in half an hour as well

but at that point we'd be editing Curricular Analytics itself - as far as I can tell there's no way to do that without making every term shift right by one to add in a term with ELWR, SAT scores, etc.

I was thinking we could just add MATH 4C, a precalc course, which is a prereq that can substitute for MATH 20A to satisfy the prerequisites for math 18. The goal is to just remove the prerequisite link between 20a and 18 when they're in the same quarter.

However, it might turn out that this isn't necessary. I'm working on BE25 right now, and the uploaded version there lists 20A as a prereq for 18. I think my initial solution of just marking what could be a prerequisite as a corequisite if they occur in the same quarter might work, though we'd have to check other majors that require math 18.

@SheepTester
Copy link
Collaborator Author

SheepTester commented Jun 15, 2022

BE25

Uploaded, generated

Weirdly, the uploaded version lists math 20a as a prereq of math 18. ⚠️

It also lists math 20b as a corequisite of phys 2a. They're not completely wrong, but it's only recommended preparation.
image

Only the uploaded version has MAE 140, while only the generated version has MAE 40. MAE 40 is a valid class because it gets linked to other classes with prerequisites, but it seems that it has no children. MAE 140 is a prerequisite of BENG 122A, but since the generated version doesn't have MAE 140, BENG 122A becomes an orphan in the curriculum.
image

image
image
I suspect that the academic plan has a typo (since plans.ucsd.edu also does not have MAE 140) and meant to say MAE 140 instead of 40. In that case this is a curricular issue, not really something that we can solve with our generator unless we make a special case ⚠

Only the generated version lists math 20b as a prereq for phys 2b. This might be have something to do with math 20b being a corequisite for phys 2a, which is a prereq for 2b? I think the generated version is correct, regardless; math 20b is a prereq for phys 2b.
image

I might have missed something here because the curriculum is kind of messy with a lot of prereqs. WHatever

Revelle

I might have missed this in the curriculum, but only the generated version says PHYS 2CL is a prereq of MAE 170. However, I don't think the uploaded version is wrong:
image
The uploaded version instead says MAE 140 is a prereq of 170. Even if MAE 40 was corrected to 140 in the generated version, I suspect our code would still say PHYS 2CL is the prereq, which isn't wrong, just different

@SheepTester
Copy link
Collaborator Author

Summary

Things to do:

  • Figure out math 18. There are two options (could do both)
    • In general, if a prereq is in the same quarter as a course, then mark them as a corequisite instead
    • Because we assume everyone has pre-calc satisfied, remove all prereqs from math 18. This'd help to avoid suggesting that failing math 20a blocks math 18, for example
  • Only the uploaded version lists math 20e as a prereq for phys 105a, but the generated version doesn't. I'm not sure why. I'll have to look into this. 🚩

  • I'm not sure if this is a Revelle/degree plan issue or if I didn't notice it in the curriculum, but math 20b is listed as a prereq for CSE 12 in the generated version when it's actually not. 🚩

Minor touches:

  • Could remove parentheses like (eg (see note)) and /GE /DEI etc.
  • Could add numbers to duplicate course names, like GE 1, GE 2, and so on

Also need to consider mapping SOCI 60 to SOCI UD (is there a way to generalize this?)

Curricular issues from the academic plans:

  • BE25: MAE 40 should be MAE 140 (can we find a way to automatically catch these errors?)

@SheepTester
Copy link
Collaborator Author

Only the uploaded version lists math 20e as a prereq for phys 105a, but the generated version doesn't. I'm not sure why. I'll have to look into this. 🚩

So PHYS 105A does require math 20A
image

PHYS 105A in the curriculum CSV seems to have these prerequisites

17,PHYS 105A,PHYS,105A,9;7;11;13;1;4;6;12;8;3,,,4,,

which looks like a lot more than the one prerequisite that it shows:
image

Which suggests that Curricular Analytics is just swallowing up and ignoring those prerequisites.

Maybe it's because physics 4E already requires most of those courses as well so it only highlights 4E. Actually, that's probably the case; the uploaded version says math 20e is a prerequisite of phys 105a because it thinks phys 4d (which 4e requires) doesn't require math 20e, which I've noted. So I don't think this is an issue, just an oddity with Curricular Analytics

@SheepTester
Copy link
Collaborator Author

I'm not sure if this is a Revelle/degree plan issue or if I didn't notice it in the curriculum, but math 20b is listed as a prereq for CSE 12 in the generated version when it's actually not. 🚩
image

It doesn't happen on the curriculum but it does happen in Revelle's degree plan; instead of CSE 8B its prerequisite is math 20b:
image

Something's amiss in Warren. It appears math 20a and CSE 8a are swapped.
image
Sixth does it too ??
image
and Seventh ????

Also, DOC 2 requires DOC 1 but it doesn't show here:
image
image

@SheepTester
Copy link
Collaborator Author

(Revelle degree plan) It says CSE 12's prereq is course 3, which is CSE 8B, yet when rendered it shows math 20b (id 4). ??
image

And for Sixth CSE 8B (4) does depend on CSE 8A (1) and math 20b (3) depends on math 20a (2), but they're flipped when rendered
image

Is this a Curricular Analytics bug?

@SheepTester
Copy link
Collaborator Author

I made a minimal version of Sixth's degree plan, and it still reproduces the weird result
image

Curriculum,Computer Science,,,,,,,,,
Degree Plan,Computer Science/ Sixth,,,,,,,,,
Institution,"University of California, San Diego",,,,,,,,,
Degree Type,BS,,,,,,,,,
System Type,Quarter,,,,,,,,,
CIP,11.0701,,,,,,,,,
Courses,,,,,,,,,,
Course ID,Course Name,Prefix,Number,Prerequisites,Corequisites,Strict-Corequisites,Credit Hours,Institution,Canonical Name,Term
1,CSE 8A,CSE,8A,,,,4,,,1
2,MATH 20A,MATH,20A,,,,4,,,1
3,MATH 20B,MATH,20B,2,,,4,,,2
Additional Courses,,,,,,,,,,
Course ID,Course Name,Prefix,Number,Prerequisites,Corequisites,Strict-Corequisites,Credit Hours,Institution,Canonical Name,Term

I wondered if the result depended on the curriculum, so I uploaded the same file to a test curriculum I made a while ago:
image

Interesting! The result does change. I wonder if it's based on the curriculum or something

@SheepTester
Copy link
Collaborator Author

Curriculum:

1,MATH 20A,MATH,20A,,,,4,,
2,CSE 8A,CSE,8A,,,,4,,
3,MATH 20B,MATH,20B,1,,,4,,
4,CSE 8B,CSE,8B,2,,,4,,

Sixth:

1,CSE 8A,CSE,8A,,,,4,,,1
2,MATH 20A,MATH,20A,,,,4,,,1
3,MATH 20B,MATH,20B,2,,,4,,,2
4,CSE 8B,CSE,8B,1,,,4,,,2

ERC:

1,MATH 20A,MATH,20A,,,,4,,,1
2,CSE 8A,CSE,8A,,,,4,,,1
3,MATH 20B,MATH,20B,1,,,4,,,2
4,CSE 8B,CSE,8B,2,,,4,,,2

This is interesting, I think, because in most cases it feels like the curriculum hasn't been a problem

@ArturoAmaya
Copy link
Owner

Which suggests that Curricular Analytics is just swallowing up and ignoring those prerequisites.

Maybe it's because physics 4E already requires most of those courses as well so it only highlights 4E. Actually, that's probably the case; the uploaded version says math 20e is a prerequisite of phys 105a because it thinks phys 4d (which 4e requires) doesn't require math 20e, which I've noted. So I don't think this is an issue, just an oddity with Curricular Analytics

Yeah, I think they work like pre-req chains and only what's at the top of the chain gets the bright red bubble.

@SheepTester
Copy link
Collaborator Author

SheepTester commented Jun 16, 2022

💀💀💀 this is not good

Was looking for other examples, and TH27 ERC's course 1 isn't TDTR 10 like the other colleges, and TDTR 10 is a prereq of some courses
image
and guess what, that does indeed affect the result (generated version):

revelle (agrees w/ curriculum) erc (deviates from curriculum)
image image

this is bad because this means that the degree plans have to use the same course IDs as a curriculum

@ArturoAmaya
Copy link
Owner

ArturoAmaya commented Jun 16, 2022

Hmmm ok - I thought that if they had course IDs in a different order it was fine but I guess not. sigh tomorrow's going to be fun.
btw, sigh MATH20C also shows up as a pre-req for CSE21 in the Revelle plan...

@SheepTester
Copy link
Collaborator Author

SheepTester commented Jun 16, 2022

Only the uploaded version has MAE 140, while only the generated version has MAE 40.

MAE 140 isn't even in the course catalog.
image

MAE 40 is listed alongside MAE 140 as prerequisite options for MAE 170
image

But BENG 122A only lists MAE 140
image

According to Reddit, MAE 140 was changed to MAE 40
image

so I guess the course catalog for BENG is just out of date

@ArturoAmaya
Copy link
Owner

image
image
Check it out, boss. I sorted the quarters as they were being made in the plans based on the course name. I'm not well-versed with Python, however, so if there's a more elegant solution (which I'm sure there is) feel free to do that instead. It should get the job done though.

@ArturoAmaya
Copy link
Owner

ArturoAmaya commented Jun 16, 2022

so I guess the course catalog for BENG is just out of date
Ok, I'll flag it in our catalog and put it on the Trello list of curricular data issues. Edit: My bad, I hadn't realized you mean the uploaded was wrong but there's nothing the matter in our data.

@ArturoAmaya
Copy link
Owner

Only the uploaded version lists math 20e as a prereq for phys 105a, but the generated version doesn't. I'm not sure why. I'll have to look into this. 🚩

I touched on this in the separated issue #36 , but essentially the generated version is more correct than the uploaded one. There's also one little snippet about direct and indirect course requisite chains on the CA terminology page.

Pre Corequisite Field - All of the courses that must be completed prior to attempting course C. This includes direct requisites and any requisites of the direct requisite courses.

I figure the direct requisites are the strong red color
image

and the "indirect" requisites are the softer red
image

The same thing happens with green for the unblocked field I think.

So when we say some course 100B depends on 20A, 20B and 20C but 20C depends on 20A and B, A and B get the soft red and only 20C gets the strong red as a direct prereq.

@ArturoAmaya
Copy link
Owner

Also, DOC 2 requires DOC 1 but it doesn't show here:
Yeah, it seems our pre-req document is incomplete.
image
It doesn't list DOC 1 as a DOC 2 prereq. I'll flag that on the Trello

@SheepTester
Copy link
Collaborator Author

so I guess the course catalog for BENG is just out of date

Ok, I'll flag it in our catalog and put it on the Trello list of curricular data issues. Edit: My bad, I hadn't realized you mean the uploaded was wrong but there's nothing the matter in our data.

no our data is wrong, MAE 140 doesn't exist anymore but BENG 122A still says MAE 140 (as opposed to 40) is its prereq

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants