Skip to content

Data and API Structure

Kevin edited this page Nov 20, 2021 · 6 revisions

How is the database structured?

There are three core terms to know program, specialisation and course.

Program

Every student is enrolled in a program. This is their overall degree that they are taking, for example 3778 which is the undergraduate program for computer science.

All programs can be identified as a 4 digit number (####).

In general, this is the highest level structure for any university degree.

What is stored in programs?

  • Title (name of program)
  • Code (4 digit number)
  • Duration (Expected years till completion of degree)
  • Faculty
  • Components -------
  • Specialisation Structure (Major + Minors)
  • Non-Specialisation Structure (Courses/Program structure that all students in the program must complete that cannot be found in a specialisation)
  • FE (Free electives)
  • GE (General Education) If applicable, each rule underneath the above headings will include number of credit points required to complete it as well as the type (i.e core/elective)

If we think about two common programs, Computer Science and Commerce. In computer science, you must choose a major (COMPA1, COMPN1, COMPJ1 etc). We will put majors under specialisation data because the specific courses one must take are found deeper within each specialisation. Comp-sci also has free electives and general education which we will include. Pretty Simple

If we have a look at commerce, the integrated first year courses state that we must take 48UOC of the following courses. These courses are already specified and we cannot find integrated first year courses anywhere in a specialisation. Therefore this will go under non-specialisation. This also applied for myBcom and Final year sythesis. Within majors though, we are given a list of major codes that we must then go further into to find specific courses. Majors will go under specialisation data.

P.s Ignore science because I think it's not working as intended

Specialisation

Specialisation is the next level down and can be either a major or minor. A student can take none/multiple specialisations depending on their program. For example, assuming a student is enrolled in 3778, they have a compulsory major and have an optional minor. This means that they could be completing a major COMPY1 and a minor ACCTA2.

If we think in terms of classes, each program is its own class with different conditions, some may offer majors and minors to choose from, some may only offer a major and some do not offer a major or minor. A specialisation is a subclass of its program and has its own mini structure and conditions that the student must complete.

All specialisations can be identified as 5 letters + 1 number (&&&&&#).

What is stored in specialisations?

  • Title (name of specialisation)
  • Code (5 letters + 1 number)
  • Type (major/minor)
  • UOC
  • Structure (Core courses for the specialisation, electives etc.)

Course

Finally there are courses, pretty self-explanatory. Each course has its own requirements before a student can be enrolled in it. This can include:

  • Pre-requisites
  • Co-requisite/Exclusion
  • Minimum UOC (required)
  • Minimum WAM (required)
  • Be enrolled in a specific Faculty/Specialisation/Program

These conditions can vary from very simple Overall, these conditions can be very difficult to process and due to the sheer amount of courses within UNSW can even be wrong as the handbooks can also have mistakes in them.

Courses can be identified as 4 letters + 4 number (&&&&####). For example COMP1511.

======================== Then explain the API + comment