.. index::
   tbl1_Instructors_ClassesTaught

==============================
tbl1_Instructors_ClassesTaught
==============================

.. default-role:: doc

:Description:

   This table holds the saved schedule data for semesters.
   It is used to generate course schedule HTML that appears on math department website's Teaching Schedule page
   and drives many Solutions processes and reports.

:Relation:

   many-to-one relation of tbl1_Instructors_ClassesTaught.Instructor_Personid to tbl1_People.PersonID
   many-to-one relation of tbl1_Instructors_ClassesTaught.CourseID to tbl1_Courses.CourseID
   many-to-one relation of all of the tbl1_Instructors_ClassesTaught.<role_name>_PersonID fields to tbl1_People.PersonID (HOWEVER: these usages might be obsolete)

:Source:

   Schedule data comes from CSS and lands in Solutons via synchronize process, filling `tbl1_Schedule_Data` table
   SAVE on the course schedule window saves data from `tbl1_Schedule_Data` into this table
   Please see important footnote related to this table.

:Footnote:

   Over time this table has become mostly functionally redundant with the `tbl1_Schedule_Data` table.  Rewrite of Solutions to obsolete this
   table and rely exclusively on `tbl1_Schedule_Data` should be considered; however this is a large effort since this table is used all over Solutions.
   Please read table_transition_notes.txt in solutions_access repository for more thoughts on this.



Columns
=======


**ID** ``int(11) NOT NULL``

   :Options:

      ``display="true", null="true", search="false", type=""``


**Instructor** ``varchar(255) DEFAULT NULL``

   :Description:

      Full name (last,first) of primary instructor for this row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Instructor_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      PersonID from `tbl1_People` table of primary instructor for this row

   :Relation:

      	many-to-one relation of tbl1_Instructors_ClassesTaught.Instructor_Personid to tbl1_People.PersonID

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseCode** ``varchar(255) DEFAULT NULL``

   :Description:

      8-digit course code, for example 01640115

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseYear** ``int(11) DEFAULT NULL``

   :Description:

      Year of semester row applies to

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseSession** ``varchar(255) DEFAULT NULL``

   :Description:

      Session of semester row applies to, Fall, Spring or Summer

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseIndex** ``varchar(255) DEFAULT NULL``

   :Description:

      5-digit index number for course

   :Footnote:

      Lecture header rows represent more than one section.  This field will be empty for these types of rows.

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseSection** ``varchar(255) DEFAULT NULL``

   :Description:

      Two-digit section number for the row

   :Footnote:

      Lecture header rows represent more than one section.
      For these rows the field will contain either a range of sections like "01-03" or a
      comma-separated list in cases where the sections are non-contiguous, for example "01,03,05"

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseCrse** ``varchar(255) DEFAULT NULL``

   :Description:

      This is the 3-digit course code (last 3 digits of CourseCode field)

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseUnit** ``varchar(2) DEFAULT NULL``

   :Description:

      School code for the course

   :Footnote:

      in Math this is 01 for undergraduate, 16 for graduate

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseSubject** ``varchar(3) DEFAULT NULL``

   :Description:

      3-digit subject code for course

   :Footnote:

      in Math this is always 640 for undergraduate courses, 640, 642 or 643 for grad courses

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseSubtitle** ``varchar(75) DEFAULT NULL``

   :Description:

      Course Subtitle

   :Footnote:

      This isn't used frequently in math, but on rare occassions it is.
      This might be used when a course title is something general like "Selected topics in...", and each semester a specific topic can be indicated using the
      subtitle field.  This is entered in CSS.

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseLR** ``varchar(255) DEFAULT NULL``

   :Description:

      This is analogous to the mode field in `tbl1_Schedule_Data` and refers to the meeting type of the row.
      In most cases this will be "L" for lecture, "R" for recitation or "W" for workshop

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseCounter** ``float DEFAULT NULL``

   :Description:

      possibly obsolete.
      This field is assigned an amount like "1" or ".33" that was intended indicate how much each row should be counted towards
      an instructor's teaching load.

   :Footnote:

      I think this was used for the original version of the teaching load reports, but may have since been obsoleted. Need to look closer.

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseID** ``int(11) DEFAULT NULL``

   :Description:

          relates to CourseID in the `tbl1_Courses` table

   :Relation:

          many-to-one relation of tbl1_Instructors_ClassesTaught.CourseID to tbl1_Courses.CourseID

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseSection2** ``varchar(255) DEFAULT NULL``

   :Description:

      obsolete?

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseBuildingRoom** ``varchar(255) DEFAULT NULL``

   :Description:

      Locaton of course in format like <building-code>-<room-number>

   :Footnote:

          It might be worth considering changing this to classroom_id which relates to tbl1_Rooms table

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseDaysPeriod** ``varchar(255) DEFAULT NULL``

   :Description:

      Possibly obsolete. days/period of meeting in format like "W5 0320 P - 0440"

   :Options:

      ``display="true", null="true", search="false", type=""``


**Grader** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of grader assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Recitation_Instructor** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of recitation instructor assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Workshop_Instructor** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of workshop instructor assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**TA_At_Large** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of TA at Large assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Head_TA** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of Head TA assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Tech_Assistant** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of Tech Assistant assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Lecturer** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of lecturer assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Lecturer2** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of secondary lecturer assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Online_Lecturer** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of online lecturer to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Online_Recitation_Instructor** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of online recitation instructor assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Recitation_Mentor** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of recitation mentor assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Observer** ``varchar(255) DEFAULT NULL``

   :Description:

      possibly obsolete. Name of observer assigned to a particular course row

   :Options:

      ``display="true", null="true", search="false", type=""``


**Grader_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the grader assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Recitation_Instructor_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the recitation instructor assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Workshop_Instructor_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the workshop instructor assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**TA_At_Large_PersonID** ``int(11) DEFAULT NULL``

   :Description:

       possibly obsolete. PersonID from `tbl1_People` corresponding to the TA at Large assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Head_TA_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the Head TA assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Tech_Assistant_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the tech assistant assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Lecturer_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      PersonID from `tbl1_People` corresponding to the lecturer assigned to this row.

   :Footnote:

      Be careful.  I am less sure that this field is obsolete as I am with the other \*_PersonID fields.  That is because I see lots of values in this field which means
      Solutions is saving this value when saving the data from `tbl1_Schedule_Data` unlike with the other \*_PersonID fields.
      However, I will have to look closer to see whether this field value is used anywhere

   :Options:

      ``display="true", null="true", search="false", type=""``


**Lecturer2_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the secondary lecturer assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Online_Lecturer_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the online lecturer assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Online_Recitation_Instructor_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the online recitation instructor assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Recitation_Mentor_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the recitation mentor assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Observer_PersonID** ``int(11) DEFAULT NULL``

   :Description:

      possibly obsolete. PersonID from `tbl1_People` corresponding to the observer assigned to this row.

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseBuilding** ``varchar(50) DEFAULT NULL``

   :Description:

      Building code for building that classroom is int

   :Footnote:

      As with the BuildingRoom field, we might want to consider replacing these fields with a relationship to the `tbl1_Rooms` table and a room_id field

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseRoom** ``varchar(50) DEFAULT NULL``

   :Description:

      Room number for classroom

   :Footnote:

      As with the BuildingRoom field, we might want to consider replacing these fields with a relationship to the `tbl1_Rooms` table and a room_id field

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseCampus** ``varchar(50) DEFAULT NULL``

   :Description:

      Campus abbreviation

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseTime** ``varchar(50) DEFAULT NULL``

   :Description:

      Time of course, in format like "0600 P - 0845"

   :Options:

      ``display="true", null="true", search="false", type=""``


**CourseDays** ``varchar(50) DEFAULT NULL``

   :Description:

      Days this row meets, for example "MW6" for a meeting on Monday and Wednesday period 6

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Enrollment** ``smallint(6) DEFAULT NULL``

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Responses** ``smallint(6) DEFAULT NULL``

   :Description:

      The number of students who submitted SIRS ratings for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_1** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people responded with "1" for SIRS question #9 for this section

   :Footnote:

      Question 9 reads "I rate the teaching effectiveness of the instructor as:"

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_2** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people responded with "2" for SIRS question #9 for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_3** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people responded with "3" for SIRS question #9 for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_4** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people responded with "4" for SIRS question #9 for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_5** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people responded with "5" for SIRS question #9 for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Q9_Response_none** ``smallint(6) DEFAULT NULL``

   :Description:

      How many people did not respond to SIRS question #9 for this section

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Sec_Weighted_Mean** ``float DEFAULT NULL``

   :Description:

      SIRS section weighted mean

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Course_Weighted_Mean** ``float DEFAULT NULL``

   :Description:

      SIRS course weighted mean

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Level_Weighted_Mean** ``float DEFAULT NULL``

   :Description:

      SIRS level weighted mean

   :Options:

      ``display="true", null="true", search="false", type=""``


**SIRS_Dept_Weighted_Mean** ``float DEFAULT NULL``

   :Description:

      SIRS department weighted mean

   :Options:

      ``display="true", null="true", search="false", type=""``


**Enrollment** ``int(11) DEFAULT NULL``

   :Description:

      Section's most recent enrollment number

   :Options:

      ``display="true", null="true", search="false", type=""``


**LectureRowID** ``int(11) DEFAULT NULL``

   :Description:

          for recitation or workshop rows, this is the id of the associated lecture row in this table

   :Options:

      ``display="true", null="true", search="false", type=""``


**InProgress_LectureRowID** ``int(11) DEFAULT NULL``

   :Description:

      obsolete?

   :Footnote:

      This is confusing and may be obsolete now, not sure.  This field was used to keep track of data in tbl1_Schedule_Data in relation to
      this table when saving and creating lecture groups.  I'm not sure if it is still used now that we have switched to the newer version of sync.
      As recommended in the table_transitions document, if we end up obsoleting this table, it is a non-issue.

   :Options:

      ``display="true", null="true", search="false", type=""``


**Hybrid** ``bit(1) DEFAULT NULL``

   :Description:

      TRUE when a hybrid section

   :Options:

      ``display="true", null="true", search="false", type=""``


**Online** ``bit(1) DEFAULT NULL``

   :Description:

      TRUE when an online course

   :Options:

      ``display="true", null="true", search="false", type=""``


**section_url** ``varchar(255) DEFAULT NULL``

   :Description:

      When building course schedule HTML, any URL specified in this field for a section will cause
      Solutions to make the section number a hyperlink to the given URL instead of just secton text

   :Footnote:

      Each semester office staff sends an email with a link where instructors can submit this URL. They can then just copy/paste the
      link into this field in Solutions interface.  (There is also a batch import option, although staff is not in the habit of using this)
      Ask office staff for more details on how this works.

   :Options:

      ``display="true", null="true", search="false", type=""``


**section_textbook** ``varchar(255) DEFAULT NULL``

   :Description:

      Name of textbook for a section if it differs from the default textbook in the `tbl1_Courses` table for the associated course

   :Options:

      ``display="true", null="true", search="false", type=""``


**HideFromWeb** ``bit(1) DEFAULT NULL``

   :Description:

          Set to TRUE for any sections that for whatever reason we want to exclude when generating HTML for web schedules

   :Options:

      ``display="true", null="true", search="false", type=""``


**course_sort** ``varchar(50) DEFAULT NULL``

   :Description:

      This is a sort key algorithmically derived to ensure that rows in this table appear with lecture group headers followed by their associated sections.
      See table_transition_notes.txt for more details on this

   :Options:

      ``display="true", null="true", search="false", type=""``


**instructor_category** ``varchar(25) DEFAULT NULL``

   :Description:

      Instructor's category abbreviation which will be one of the categories in the `tbl1_Categories` table

   :Footnote:

      The reason we need a category field in this table instead of just in the `tbl1_People` table
      is because an instructors' category might change, and Solutions reports often need to know the number of instructors per
      category IN A GIVEN SEMESTER

   :Options:

      ``display="true", null="true", search="false", type=""``


**instructor2_category** ``varchar(25) DEFAULT NULL``

   :Description:

      obsolete? category for secondary instructor

   :Options:

      ``display="true", null="true", search="false", type=""``


**last_change** ``timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()``

   :Options:

      ``display="true", null="true", search="false", type=""``