diff --git a/Gemfile b/Gemfile index 34b3ffc..c5cf765 100644 --- a/Gemfile +++ b/Gemfile @@ -38,7 +38,6 @@ gem 'omniauth-google-oauth2' gem 'omniauth-rails_csrf_protection' # For the professor/class matching -gem 'hungarian_algorithm' gem 'rulp', require: false # CSV parsing gem 'csv' diff --git a/Gemfile.lock b/Gemfile.lock index 50c4c33..081623e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -167,7 +167,6 @@ GEM globalid (1.2.1) activesupport (>= 6.1) hashie (5.0.0) - hungarian_algorithm (1.0.0) i18n (1.14.6) concurrent-ruby (~> 1.0) importmap-rails (2.0.1) @@ -456,7 +455,6 @@ DEPENDENCIES debug factory_bot_rails faker - hungarian_algorithm importmap-rails jbuilder matrix diff --git a/app/controllers/room_bookings_controller.rb b/app/controllers/room_bookings_controller.rb index de62f8f..c517f1d 100644 --- a/app/controllers/room_bookings_controller.rb +++ b/app/controllers/room_bookings_controller.rb @@ -148,7 +148,7 @@ def generate_schedule 'capacity' => room.capacity } end - times = TimeSlot.pluck(:day, :start_time, :end_time, :id) + times = TimeSlot.where(slot_type: 'LEC').pluck(:day, :start_time, :end_time, :id) instructors = Instructor.where(schedule_id: params['schedule_id']).pluck(:id, :before_9, :after_3, :max_course_load).map do |i, b, a, c| { 'id' => i, 'before_9' => b, 'after_3' => a, 'max_course_load' => c } @@ -167,11 +167,15 @@ def generate_schedule # Offload solve to service begin - total_unhappiness = ScheduleSolver.solve(classes, active_rooms, times, instructors, locks) - max_unhappiness = classes.length * 10 # Individual unhappiness is capped at 10 - satisfaction_rate = (100 * (max_unhappiness - total_unhappiness).to_f / max_unhappiness).to_i - redirect_to schedule_room_bookings_path(@schedule, active_tab: params[:active_tab]), - notice: "Schedule generated with #{satisfaction_rate}% satisfaction" + total_happiness, relaxed = ScheduleSolver.solve(classes, active_rooms, times, instructors, locks) + max_happiness = classes.length * 10 # Individual happiness is capped at 10 + satisfaction_rate = (100 * total_happiness.to_f / max_happiness).to_i + msg = if relaxed + "Schedule generated under relaxed time constraints with #{satisfaction_rate}% satisfaction" + else + "Schedule generated with #{satisfaction_rate}% satisfaction" + end + redirect_to schedule_room_bookings_path(@schedule, active_tab: params[:active_tab]), notice: msg rescue StandardError => e redirect_to schedule_room_bookings_path(@schedule, active_tab: params[:active_tab]), alert: e.message end diff --git a/app/services/schedule_solver.rb b/app/services/schedule_solver.rb index f8cead3..123e844 100644 --- a/app/services/schedule_solver.rb +++ b/app/services/schedule_solver.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require 'rulp' -require 'hungarian_algorithm' require 'algorithms' class ScheduleSolver @@ -9,7 +8,6 @@ def self.solve(classes, rooms, times, instructors, locks) num_classes = classes.length num_rooms = rooms.length num_times = times.length - instructors.length # Get the total number of contracted hours and ensure it's at least the number offered classes hours = instructors.map { |i| i['max_course_load'] } @@ -22,12 +20,9 @@ def self.solve(classes, rooms, times, instructors, locks) hours = reduce_hours(hours, total_course_velocity - num_classes) end - # Allocate ijk binary decision variables - sched_flat = Array.new(num_classes * num_rooms * num_times, &X_b) - - # Reshape into a 3D tensor + # Initialize schedule tensor # i.e. sched[i][j][k] = 1 is class i is located at room j for time k - sched = sched_flat.each_slice(num_times).each_slice(num_rooms).to_a + sched = init_ilp_tensor(num_classes, num_rooms, num_times) # Create objective function # Minimize the number of empty seats in a full section @@ -97,39 +92,43 @@ def self.solve(classes, rooms, times, instructors, locks) next if classes[c]['is_lab'] == rooms[r]['is_lab'] (0...num_times).each do |t| - designation_constraints.append((sched[c][r][t] + GuaranteedZero_b) == GuaranteedZero_b) + designation_constraints.append((sched[c][r][t] + GuaranteedZero_b) == 0) end end end # Constraint #6: Ensure rooms are not scheduled at overlapping times # Go through all pairs of time slots and find those that overlap - puts 'Generating overlapping constraints' - overlapping_pairs = [] - overlap_map = Hash.new { |hash, key| hash[key] = Set.new } - (0...num_times).each do |t1| - (t1 + 1...num_times).each do |t2| - next unless overlaps?(times[t1], times[t2]) - - overlapping_pairs.append([t1, t2]) - overlap_map[times[t1]] << times[t2] - overlap_map[times[t2]] << times[t1] # by symmetry - end - end - - # For each pair of overlapping times, ensure that at most one is used - overlap_constraints = [] - (0...num_rooms).each do |r| - overlapping_pairs.each do |t1, t2| - overlap_constraints.append((0...num_classes).map { |c| sched[c][r][t1] + sched[c][r][t2] }.reduce(:+) <= 1) - end - end + # NOTE: This iteration only supports scheduling lectures + # Lecture times are disjoint, so there's no possibility of nontrivial overlap + # However, if you choose to implement labs, the following logic will be necessary + + # puts 'Generating overlapping constraints' + # overlapping_pairs = [] + # overlap_map = Hash.new { |hash, key| hash[key] = Set.new } + # (0...num_times).each do |t1| + # (t1 + 1...num_times).each do |t2| + # next unless overlaps?(times[t1], times[t2]) + + # overlapping_pairs.append([t1, t2]) + # overlap_map[times[t1]] << times[t2] + # overlap_map[times[t2]] << times[t1] # by symmetry + # end + # end + + # # For each pair of overlapping times, ensure that at most one is used + # overlap_constraints = [] + # (0...num_rooms).each do |r| + # overlapping_pairs.each do |t1, t2| + # overlap_constraints.append((0...num_classes).map { |c| sched[c][r][t1] + sched[c][r][t2] }.reduce(:+) <= 1) + # end + # end # Ensure GuaranteedZero is, in fact, zero zero_constraint = [GuaranteedZero_b <= 0] # Consolidate constraints - constraints = cap_constraints + share_constraints + place_constraints + lock_constraints + overlap_constraints + designation_constraints + zero_constraint + constraints = cap_constraints + share_constraints + place_constraints + lock_constraints + designation_constraints + zero_constraint # Form ILP and solve problem = Rulp::Min(objective) @@ -155,55 +154,48 @@ def self.solve(classes, rooms, times, instructors, locks) end end - # Generate unhappiness matrix with prof ID - unhappiness_matrix, prof_ids = generate_unhappiness_matrix(classes, instructors, hours, class_id_hash) - - # Solve the min weight perfect matching via the Hungarian algorithm - # The library clobbers the matrix, so create a deep copy first - copy = unhappiness_matrix.map(&:dup) - matching = HungarianAlgorithm.new(unhappiness_matrix).process.sort + # Pair professors to courses + matching, relaxed = assign_instructors(classes, instructors, hours, class_id_hash) - # matching is a 2D array, where each element [i,j] represents the assignment of professsor i to class j - # Map the course to prof_ids[prof], which gives the position of the true professor in the instructors array - matching = matching.to_h { |prof, course| [classes[course], prof_ids[prof]] } - - total_unhappiness = 0 - classes.each do |assigned_course| - true_prof_id = matching[assigned_course] - course_id = assigned_course['id'] - total_unhappiness += copy[true_prof_id][class_id_hash[course_id]] + total_happiness = 0 + curr_time = Time.now + matching.each_with_index do |data, i| + assigned_course = classes[i] assigned_time = assigned_course['time_slot'] + total_happiness += data['happiness'] # Generate room booking for scheduled course RoomBooking.create( room_id: assigned_course['room_id'], time_slot_id: assigned_time[3], is_available: true, is_lab: false, - created_at: Time.now, - updated_at: Time.now, - course_id:, - instructor_id: instructors[true_prof_id]['id'] + created_at: curr_time, + updated_at: curr_time, + course_id: assigned_course['id'], + instructor_id: data['prof_id'] ) # Create room bookings for given room at all conflicting timeslots # This manifests in the schedule and prevents the user from scheduling something that would cause conflict - conflicting_times = overlap_map[assigned_time] - conflicting_times.each do |time_slot| - RoomBooking.create( - room_id: assigned_course['room_id'], - time_slot_id: time_slot[3], - is_available: false, - is_lab: false, - created_at: Time.now, - updated_at: Time.now - ) - # If we have assigned a course to - overlap_map[assigned_time].delete(time_slot) - end + # NOTE: See commentary about overlap_constraints for why this is commented out + # conflicting_times = overlap_map[assigned_time] + # conflicting_times.each do |time_slot| + # RoomBooking.create( + # room_id: assigned_course['room_id'], + # time_slot_id: time_slot[3], + # is_available: false, + # is_lab: false, + # created_at: curr_time, + # updated_at: curr_time + # ) + # overlap_map[assigned_time].delete(time_slot) + # end end - - total_unhappiness + [total_happiness, relaxed] end + THREE_PM = Time.parse('15:00') + NINE_AM = Time.parse('9:00') + # Find if two timeslots overlap # time1 = [days, start_time, end_time] def self.overlaps?(time1, time2) @@ -219,20 +211,36 @@ def self.overlaps?(time1, time2) end # Check if two times overlap on at least one day + # Memory is precious, so use bit masks here def self.day_overlaps?(days1, days2) - d1 = days1.scan(/M|T|W|R|F/) - d2 = days2.scan(/M|T|W|R|F/) - !!d1.intersect?(d2) + day1_mask = 0 + day2_mask = 0 + # Assume that days only contains the characters MWTRF + days1.each_char do |c| + day1_mask |= 1 << (c.ord - 'F'.ord) + end + days2.each_char do |c| + day2_mask |= 1 << (c.ord - 'F'.ord) + end + day1_mask & day2_mask != 0 end def self.before_9?(time) start_time = time[1] - Time.parse(start_time) <= Time.parse('9:00') + Time.parse(start_time) <= NINE_AM end def self.after_3?(time) end_time = time[2] - Time.parse(end_time) >= Time.parse('15:00') + Time.parse(end_time) >= THREE_PM + end + + # Move this generation to a separate function + # Allows sched_flat to fall out of scope and get claimed by GC + def self.init_ilp_tensor(num_classes, num_rooms, num_times) + # Allocate ijk binary decision variables and reshape into 3D tensor + sched_flat = Array.new(num_classes * num_rooms * num_times, &X_b) + sched_flat.each_slice(num_times).each_slice(num_rooms).to_a end def self.reduce_hours(hours, courses_to_drop) @@ -260,67 +268,141 @@ def self.reduce_hours(hours, courses_to_drop) adjusted_hours end - def self.generate_unhappiness_matrix(classes, instructors, hours, class_hash) - # Because of the hour reduction scheme, we know that num_classes == num_profs, where profs are counted with multiplicity - # Generate num_profs * num_classes matrix - unhappiness_matrix = Array.new(classes.length) { Array.new(classes.length) { 0 } } + def self.assign_instructors(classes, instructors, hours, class_hash) + # Identify morning and evening courses + morning_class_ids = [] + evening_class_ids = [] + (0...classes.length).each do |c| + assigned_time = classes[c]['time_slot'] + if before_9?(assigned_time) + morning_class_ids << c + elsif after_3?(assigned_time) + evening_class_ids << c + end + end - # Create the preference matrix ahead of time to reduce DB reads + # Generate num_profs * num_classes matrix + happiness_matrix = Array.new(classes.length) { Array.new(instructors.length) { 3 } } prof_hash = (0...instructors.length).to_h { |i| [instructors[i]['id'], i] } - preference_matrix = Array.new(instructors.length) { Array.new(classes.length, 0) } - - # Populate the matrix based on InstructorPreference data - InstructorPreference.find_each do |preference| - i = prof_hash[preference.instructor_id] - j = class_hash[preference.course_id] - preference_matrix[i][j] = preference.preference_level - end # Hyperparameters for the unhappiness function # We choose a simple linear combination: - # unhappiness(p,c) = time_weight * I[class c is at a bad time for prof p] + class_weight*(5-PM[c][p]) - # If we choose weights such that time_weight + 4*class_weight = 10, the unhappiness score is bounded between 0 and 10 + # happiness(p,c) = time_weight * I[class c is at a bad time for prof p] + class_weight*HM[c][p] + # If we choose weights such that time_weight + 4*class_weight = 10, the happiness score is bounded between 0 and 10 time_weight = 2 class_weight = 2 - # Since row i likely doesn't correspond to prof i, keep track of underlying prof ID - # i.e. if prof 0 has 3 courses prof_id[0...3] = 0 - curr_row = 0 - prof_ids = Array.new(classes.length) { -1 } - (0...instructors.length).each do |instructor_idx| - # Set true professor ID - prof_ids[curr_row] = instructor_idx - hates_mornings = !instructors[instructor_idx]['before_9'] - hates_evenings = !instructors[instructor_idx]['after_3'] - - # Gather corresponding preferences, which requires prof/course id from database - # prof_id_from_db = instructors[instructor_idx]['id'] - - # Fill out row, comparing assigned time with temporal preference - (0...classes.length).each do |course| - # course_id_from_db = classes[course]['id'] - assigned_time = classes[course]['time_slot'] - if hates_mornings && before_9?(assigned_time) - unhappiness_matrix[curr_row][course] = time_weight - elsif hates_evenings && after_3?(assigned_time) - unhappiness_matrix[curr_row][course] = time_weight + # Initialize the matrix based on InstructorPreference data + # Use find_each for batching, reducing calls to DB + InstructorPreference.find_each do |preference| + c = class_hash[preference.course_id] + p = prof_hash[preference.instructor_id] + happiness_matrix[c][p] = class_weight * preference.preference_level + end + + # Encourage scheduler to respect time preferences + instructors.each_with_index do |prof, p| + unless prof['before_9'] + morning_class_ids.each do |c| + happiness_matrix[c][p] -= time_weight end - # Account for class preference - unhappiness_matrix[curr_row][course] += class_weight * preference_matrix[instructor_idx][course] end + next if prof['after_3'] - # Duplicate the row according to the professor's teaching capacity - num_duplications = hours[instructor_idx] - 1 - num_duplications.times do - unhappiness_matrix[curr_row + 1] = unhappiness_matrix[curr_row].dup - prof_ids[curr_row + 1] = instructor_idx - curr_row += 1 + evening_class_ids.each do |c| + happiness_matrix[c][p] -= time_weight end + end + + # Setup ILP and objective function + pairing = Array.new(classes.length * instructors.length, &X_b) + pairing = pairing.each_slice(instructors.length).to_a + + # Objective: maximize happiness + objective = + (0...classes.length).map do |c| + (0...instructors.length).map do |p| + pairing[c][p] * happiness_matrix[c][p] + end.reduce(:+) + end.reduce(:+) + + # Constraint 1: No professor is scheduled at a time they don't want + # Making this a hard constraint may cause a solution to be impossible + # We offer the ability to relax these constraints and merely encourage this to happen + # This is done by a second-chance solve later on + negotiable_constraints = [] + instructors.each do |p| + hates_mornings = !p['before_9'] + hates_evenings = !p['after_3'] + prof_id = prof_hash[p['id']] + if hates_mornings && !morning_class_ids.empty? + negotiable_constraints.append((morning_class_ids.map { |c| pairing[c][prof_id] }.reduce(:+) + GuaranteedZero_b) == 0) + end + if hates_evenings && !evening_class_ids.empty? + negotiable_constraints.append((evening_class_ids.map { |c| pairing[c][prof_id] }.reduce(:+) + GuaranteedZero_b) == 0) + end + end - # Move up one, since previous loop was one ahead - curr_row += 1 + # Constraint 2: Each professor is scheduled for their (modified) contracted hours + temporal_constraints = (0...instructors.length).map do |p| + (0...classes.length).map { |c| pairing[c][p] }.reduce(:+) + GuaranteedZero_b == hours[p] end - # Return matrix and true ids - [unhappiness_matrix, prof_ids] + + # Constraint 3: A professor cannot be scheduled for two concurrent classes + classes.each do |course| + assigned_time = course['time_slot'] + # NOTE: We are not considering lab times here + # Lecture times are disjoint, so there's no possibility of overlap there + # The only exception are courses at the exact same time slot + conflicting_classes = classes.select { |c| c['time_slot'] == assigned_time } + next if conflicting_classes.empty? + + (0...instructors.length).each do |p| + temporal_constraints.append((conflicting_classes.map { |c| pairing[class_hash[c['id']]][p] }.reduce(:+) <= 1)) + end + end + + temporal_constraints.append([GuaranteedZero_b <= 0]) + + # Silence RULP output, unless there's an error + Rulp.log_level = Logger::ERROR + + # Make first attempt with time preferences as hard constraints + # If this fails, relax constraints to (hopefully) get a solution + begin + problem = Rulp::Max(objective) + problem[temporal_constraints + negotiable_constraints] + puts 'Attempting first solve...' + Rulp::Glpk(problem) + relaxed = false + rescue StandardError + begin + puts 'Solver failed, trying again with relaxed constraints...' + problem = Rulp::Max(objective) + problem[temporal_constraints] + Rulp::Glpk(problem) + relaxed = true + rescue StandardError + puts 'Failed again, no hope for solution' + raise StandardError, 'Solution infeasible!' + end + end + + # Get matching data from ILP matrix + # The index c in the matching array corresponds to the courses array + matching = [] + (0...classes.length).each do |c| + (0...instructors.length).each do |p| + next unless pairing[c][p].value + + matching << { + 'prof_id' => instructors[p]['id'], + 'happiness' => happiness_matrix[c][p] + } + next + end + end + + [matching, relaxed] end end diff --git a/db/instructors.csv b/db/instructors.csv deleted file mode 100644 index d521cb1..0000000 --- a/db/instructors.csv +++ /dev/null @@ -1,74 +0,0 @@ -,,,,,,,, -anonimized ID,First Name,Middle Name,Last Name,Email,Teaching before 9:00 am.,Teaching after 3:00 pm.,"Is there anything else we should be aware of regarding your teaching load (special course reduction, ...)",Number of courses to assign -2755728,Emily,J,Smith,emily.smith@tamu.edu,0,0,,1 -672598,Michael,D,Johnson,michael.johnson@tamu.edu,0,0,,3 -670246,Sarah,A,Brown,sarah.brown@tamu.edu,1,0,,1 -2476413,Christopher,R,Jones,christopher.jones@tamu.edu,1,0,,2 -2332341,Amanda,L,Garcia,amanda.garcia@tamu.edu,0,0,,3 -1295464,David,T,Miller,david.miller@tamu.edu,1,0,,2 -1152574,Jessica,N,Davis,jessica.davis@tamu.edu,0,0,,2 -2036178,Matthew,K,Wilson,matthew.wilson@tamu.edu,1,0,,3 -48906,Jennifer,M,Martinez,jennifer.martinez@tamu.edu,0,0,,1 -676911,Daniel,C,Anderson,daniel.anderson@tamu.edu,0,0,,2 -749735,Ashley,P,Taylor,ashley.taylor@tamu.edu,1,1,,2 -2938931,James,E,Thomas,james.thomas@tamu.edu,1,0,,3 -674610,Megan,B,Hernandez,megan.hernandez@tamu.edu,1,0,,3 -672529,Andrew,S,Moore,andrew.moore@tamu.edu,0,0,,2 -424079,Lauren,F,Martin,lauren.martin@tamu.edu,0,0,,3 -2202367,Joseph,G,White,joseph.white@tamu.edu,0,0,,1 -670859,Rachel,Q,Lee,rachel.lee@tamu.edu,1,0,,3 -713579,Ryan,V,Harris,ryan.harris@tamu.edu,0,0,,3 -617243,Michelle,R,Clark,michelle.clark@tamu.edu,0,0,,3 -2472710,Brian,W,Lewis,brian.lewis@tamu.edu,0,0,,1 -939540,Samantha,Z,Young,samantha.young@tamu.edu,1,0,,3 -1636277,Adam,O,Allen,adam.allen@tamu.edu,0,0,,1 -667061,Elizabeth,U,King,elizabeth.king@tamu.edu,0,0,,2 -233153,Nicholas,H,Wright,nicholas.wright@tamu.edu,0,0,,2 -2332340,Rebecca,C,Scott,rebecca.scott@tamu.edu,0,0,,2 -676913,Justin,L,Green,justin.green@tamu.edu,1,1,,1 -487444,Stephanie,D,Adams,stephanie.adams@tamu.edu,1,0,,2 -2623488,Aaron,M,Baker,aaron.baker@tamu.edu,1,0,,2 -118480,Christina,I,Gonzalez,christina.gonzalez@tamu.edu,0,0,,2 -2944519,Brandon,J,Nelson,brandon.nelson@tamu.edu,1,1,,1 -673660,Brittany,N,Carter,brittany.carter@tamu.edu,0,0,,1 -2957849,Joshua,T,Mitchell,joshua.mitchell@tamu.edu,0,0,,3 -2938933,Victoria,E,Perez,victoria.perez@tamu.edu,1,0,,3 -555614,Zachary,W,Roberts,zachary.roberts@tamu.edu,0,0,,2 -2938934,Amber,S,Turner,amber.turner@tamu.edu,1,0,,3 -676785,Benjamin,Q,Phillips,benjamin.phillips@tamu.edu,1,0,,2 -617634,Melissa,R,Campbell,melissa.campbell@tamu.edu,1,0,,3 -305257,Tyler,F,Parker,tyler.parker@tamu.edu,1,0,,1 -2332343,Kimberly,D,Evans,kimberly.evans@tamu.edu,0,0,,2 -675964,Eric,L,Edwards,eric.edwards@tamu.edu,0,0,,2 -64785,Katherine,C,Collins,katherine.collins@tamu.edu,1,0,,2 -670154,Sean,M,Stewart,sean.stewart@tamu.edu,0,0,,1 -2755727,Heather,A,Sanchez,heather.sanchez@tamu.edu,0,0,,2 -1740388,Kevin,B,Morris,kevin.morris@tamu.edu,1,1,,1 -100615,Rebecca,O,Rogers,rebecca.rogers@tamu.edu,0,1,,1 -2708588,Nathan,W,Reed,nathan.reed@tamu.edu,1,0,,2 -3103405,Cynthia,P,Cook,cynthia.cook@tamu.edu,0,0,,1 -3178380,Steven,G,Morgan,steven.morgan@tamu.edu,1,0,,2 -2200830,Angela,K,Bell,angela.bell@tamu.edu,1,0,,2 -667690,Alex,Z,Murphy,alex.murphy@tamu.edu,1,0,,2 -667624,Megan,Q,Bailey,megan.bailey@tamu.edu,1,0,,3 -2938935,Evan,R,Rivera,evan.rivera@tamu.edu,1,0,,3 -3099007,Brittany,J,Cooper,brittany.cooper@tamu.edu,1,0,,2 -2392253,Anthony,L,Richardson,anthony.richardson@tamu.edu,1,1,,3 -673362,Brooke,V,Cox,brooke.cox@tamu.edu,0,0,,1 -669904,John,C,Howard,john.howard@tamu.edu,1,0,,1 -672480,Stephanie,I,Ward,stephanie.ward@tamu.edu,1,0,,3 -516097,Patrick,T,Torres,patrick.torres@tamu.edu,0,0,,1 -301656,Allison,N,Peterson,allison.peterson@tamu.edu,1,0,,2 -2188757,Connor,M,Gray,connor.gray@tamu.edu,0,0,,3 -667603,Jacqueline,S,Ramirez,jacqueline.ramirez@tamu.edu,1,1,,3 -1636279,Andrew,D,James,andrew.james@tamu.edu,1,0,,3 -131784,Olivia,U,Watson,olivia.watson@tamu.edu,1,1,,3 -3253135,Jason,F,Brooks,jason.brooks@tamu.edu,0,0,,3 -1636280,Caroline,E,Kelly,caroline.kelly@tamu.edu,0,1,,2 -2274553,Dylan,O,Sanders,dylan.sanders@tamu.edu,0,0,,1 -3242193,Natalie,K,Price,natalie.price@tamu.edu,0,0,,1 -3233114,Jared,V,Bennett,jared.bennett@tamu.edu,0,0,,1 -672510,Christina,W,Wood,christina.wood@tamu.edu,0,0,,3 -1300757,Ethan,J,Barnes,ethan.barnes@tamu.edu,0,0,,2 -3242194,Nicole,Z,Ross,nicole.ross@tamu.edu,0,0,,1 -193825,Tyler,A,Henderson,tyler.henderson@tamu.edu,0,0,,1 \ No newline at end of file diff --git a/db/courses.csv b/db/sample_data/courses.csv similarity index 100% rename from db/courses.csv rename to db/sample_data/courses.csv diff --git a/db/sample_data/instructors.csv b/db/sample_data/instructors.csv new file mode 100644 index 0000000..163e1f5 --- /dev/null +++ b/db/sample_data/instructors.csv @@ -0,0 +1,76 @@ +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +anonimized ID,First Name,Middle Name,Last Name,Email,Teaching before 9:00 am.,Teaching after 3:00 pm.,"Is there anything else we should be aware of regarding your teaching load (special course reduction, ...)",Number of courses to assign,Please rate your capability/interest in teaching each undergraduate course. - 110/707 - Programming I (Python),Please rate your capability/interest in teaching each undergraduate course. - 111/708 - Introduction to Computer Science Concepts and Programming (Java),Please rate your capability/interest in teaching each undergraduate course. - 121/120/709 - Introduction to Program Design and Concepts (C++),Please rate your capability/interest in teaching each undergraduate course. - 181 - Introduction to Computing (intro seminar; half teaching credit),Please rate your capability/interest in teaching each undergraduate course. - 201 - Fundamentals of Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 206 - Structured Programming in C,Please rate your capability/interest in teaching each undergraduate course. - 221 - Data Structures and Algorithms,Please rate your capability/interest in teaching each undergraduate course. - 222 - Discrete Structures for Computing,Please rate your capability/interest in teaching each undergraduate course. - 305 - Computational Data Science (rarely taught by us),Please rate your capability/interest in teaching each undergraduate course. - 310 - Database Systems,Please rate your capability/interest in teaching each undergraduate course. - 312 - Computer Organization,Please rate your capability/interest in teaching each undergraduate course. - 313 - Introduction to Computer Systems,Please rate your capability/interest in teaching each undergraduate course. - 314 - Programming Languages,Please rate your capability/interest in teaching each undergraduate course. - 320 - Principles of Data Science,Please rate your capability/interest in teaching each undergraduate course. - 315/331 - Foundations of Software Engineering,Please rate your capability/interest in teaching each undergraduate course. - 350 - Computer Architecture and Design,Please rate your capability/interest in teaching each undergraduate course. - 402/702 - Law & Policy in Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 410 - Operating Systems,Please rate your capability/interest in teaching each undergraduate course. - 411 - Design and Analysis of Algoirthms,Please rate your capability/interest in teaching each undergraduate course. - 412 - Cloud Computing,Please rate your capability/interest in teaching each undergraduate course. - 413 - Software Security,Please rate your capability/interest in teaching each undergraduate course. - 416 - Introduction to Hardware Design Verification,Please rate your capability/interest in teaching each undergraduate course. - 420 - Artificial Intelligence,Please rate your capability/interest in teaching each undergraduate course. - 421 - Machine Learning,Please rate your capability/interest in teaching each undergraduate course. - 430 - Problem Solving Programming Strategies,Please rate your capability/interest in teaching each undergraduate course. - 431 - Software Engineering,Please rate your capability/interest in teaching each undergraduate course. - 432 - Accessible Computing,Please rate your capability/interest in teaching each undergraduate course. - 433 - Formal Languages and Automata,Please rate your capability/interest in teaching each undergraduate course. - 434 - Compiler Design,Please rate your capability/interest in teaching each undergraduate course. - 435 - Parallel Computing,Please rate your capability/interest in teaching each undergraduate course. - 436 - Human Computer Interaction,Please rate your capability/interest in teaching each undergraduate course. - 438 - Distributed Objects Programming,Please rate your capability/interest in teaching each undergraduate course. - 439 - Data Analytics for Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 440 - Quantum Algorithms,Please rate your capability/interest in teaching each undergraduate course. - 441 - Computer Graphics,Please rate your capability/interest in teaching each undergraduate course. - 442 - Scientific Programming,Please rate your capability/interest in teaching each undergraduate course. - 443 - Game Development,Please rate your capability/interest in teaching each undergraduate course. - 444 - Structures of Interactive Information,Please rate your capability/interest in teaching each undergraduate course. - 445 - Computers and New Media,Please rate your capability/interest in teaching each undergraduate course. - 446 - Virtual Reality,Please rate your capability/interest in teaching each undergraduate course. - 447 - Data Visualization,Please rate your capability/interest in teaching each undergraduate course. - 448 - Computational Photography,Please rate your capability/interest in teaching each undergraduate course. - 449 - Applied Cryptography,Please rate your capability/interest in teaching each undergraduate course. - 450 - Computer Animation,Please rate your capability/interest in teaching each undergraduate course. - 451 - Software Reverse Engineering,Please rate your capability/interest in teaching each undergraduate course. - 452 - Robotics and Spatial Intelligence,Please rate your capability/interest in teaching each undergraduate course. - 456 - RealTime Computing,Please rate your capability/interest in teaching each undergraduate course. - 461 - Embedded Systems for Medical Applications,Please rate your capability/interest in teaching each undergraduate course. - 462 - Microcomputer Systems,Please rate your capability/interest in teaching each undergraduate course. - 463 - Networking and Distributed Systems,Please rate your capability/interest in teaching each undergraduate course. - 464 - Wireless and Mobile Systems,Please rate your capability/interest in teaching each undergraduate course. - 465 - Computer and Network Security,Please rate your capability/interest in teaching each undergraduate course. - 469 - Advanced Computer Architecture,Please rate your capability/interest in teaching each undergraduate course. - 470- Information Storage and Retrieval,Please rate your capability/interest in teaching each undergraduate course. - 477 - Cybersecurity Risk Analysis,Please rate your capability/interest in teaching each undergraduate course. - 481 - Seminar (half teaching credit),Please rate your capability/interest in teaching each undergraduate course. - 482 - Senior Capstone Design (CS capstone),Please rate your capability/interest in teaching each undergraduate course. - 483 - Computer Systems Design (CE capstone),Please rate your capability/interest in teaching each graduate course. - 601 - Programming with C and Java (service course),"Please rate your capability/interest in teaching each graduate course. - 602 - Object-Oriented Programming, Development, and Software Engineering (service course)",Please rate your capability/interest in teaching each graduate course. - 603 - Database Analysis (service course often stacked with 310),Please rate your capability/interest in teaching each graduate course. - 604 - Programming Languages,Please rate your capability/interest in teaching each graduate course. - 605 - Compiler Design,Please rate your capability/interest in teaching each graduate course. - 606 - Software Engineering,Please rate your capability/interest in teaching each graduate course. - 608 - Database Systems,Please rate your capability/interest in teaching each graduate course. - 610 - Hypertext/Hypermedia Systems,Please rate your capability/interest in teaching each graduate course. - 611 - Operating Systems and Applications (service course often stacked with 410),Please rate your capability/interest in teaching each graduate course. - 612 - Applied Networks and Distributed Processing (service course often stacked with 463),Please rate your capability/interest in teaching each graduate course. - 613 - Operating Systems,Please rate your capability/interest in teaching each graduate course. - 614 - Computer Architecture,Please rate your capability/interest in teaching each graduate course. - 616 - Introduction to Hardware Design Verification,Please rate your capability/interest in teaching each graduate course. - 617 - CoDesign of Embedded Systems (CODES),Please rate your capability/interest in teaching each graduate course. - 619 - Networks and Distributed Computing,Please rate your capability/interest in teaching each graduate course. - 620 - Computational Geometry,"Please rate your capability/interest in teaching each graduate course. - 621 - Language, Library, and Program Design Using C++",Please rate your capability/interest in teaching each graduate course. - 622 - Generic Programming,Please rate your capability/interest in teaching each graduate course. - 624 - Sketch Recognition,Please rate your capability/interest in teaching each graduate course. - 625 - Artificial Intelligence,Please rate your capability/interest in teaching each graduate course. - 626 - Parallel Algorithm Design and Analysis,Please rate your capability/interest in teaching each graduate course. - 627 - Theory of Computability,Please rate your capability/interest in teaching each graduate course. - 628 - Computational Biology,Please rate your capability/interest in teaching each graduate course. - 629 - Analysis of Algorithms,Please rate your capability/interest in teaching each graduate course. - 630 - Speech Processing,Please rate your capability/interest in teaching each graduate course. - 631 - Intelligent Agents,Please rate your capability/interest in teaching each graduate course. - 632 - Accessible Computing,Please rate your capability/interest in teaching each graduate course. - 633 - Machine Learning,Please rate your capability/interest in teaching each graduate course. - 634 - Intelligent User Interfaces,Please rate your capability/interest in teaching each graduate course. - 635 - AI Robotics,Please rate your capability/interest in teaching each graduate course. - 636 - Deep Learning,Please rate your capability/interest in teaching each graduate course. - 637 - Complexity Theory,Please rate your capability/interest in teaching each graduate course. - 638 - Natural Language Processing: Foundations and Techniques,Please rate your capability/interest in teaching each graduate course. - 640 - Quantum Algorithms,Please rate your capability/interest in teaching each graduate course. - 641 - Computer Graphics,Please rate your capability/interest in teaching each graduate course. - 642 - Deep Reinforcement Learning,Please rate your capability/interest in teaching each graduate course. - 643 - Seminar in Intelligent Systems and Robotics,Please rate your capability/interest in teaching each graduate course. - 644 - Cortical Networks,Please rate your capability/interest in teaching each graduate course. - 645 - Geometric Modeling,Please rate your capability/interest in teaching each graduate course. - 646 - The Digital Image (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 647 - Image Synthesis (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 648 - Computer Aided Sculpting (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 649 - Physically-Based Modeling,Please rate your capability/interest in teaching each graduate course. - 650 - Virtual Reality,Please rate your capability/interest in teaching each graduate course. - 652 - Software Reverse Engineering,Please rate your capability/interest in teaching each graduate course. - 653 - Computer Methods in Applied Sciences,Please rate your capability/interest in teaching each graduate course. - 654 - Supercomputing,Please rate your capability/interest in teaching each graduate course. - 655 - Human-Centered Computing,Please rate your capability/interest in teaching each graduate course. - 656 - Computers and New Media,Please rate your capability/interest in teaching each graduate course. - 657 - High Performance Computing for Earth Science and Petroleum Engineering (jointly taught with PETE),Please rate your capability/interest in teaching each graduate course. - 658 - Randomized Algorithms,Please rate your capability/interest in teaching each graduate course. - 659 - Parallel/Distributed Numerical Algorithms and Applications,Please rate your capability/interest in teaching each graduate course. - 660 - Computational Linear Algebra,Please rate your capability/interest in teaching each graduate course. - 661 - Integrated Systems Design Automation,Please rate your capability/interest in teaching each graduate course. - 662 - Distributed Processing Systems,Please rate your capability/interest in teaching each graduate course. - 663 - Real-Time Systems,Please rate your capability/interest in teaching each graduate course. - 664 - Wireless and Mobile Systems,Please rate your capability/interest in teaching each graduate course. - 665 - Advanced Networking and Security,Please rate your capability/interest in teaching each graduate course. - 666 - Pattern Analysis,Please rate your capability/interest in teaching each graduate course. - 667 - Seminar in Human-Centered Computing,Please rate your capability/interest in teaching each graduate course. - 668 - Distributed Algorithms and Systems,Please rate your capability/interest in teaching each graduate course. - 669 - Computational Optimization,Please rate your capability/interest in teaching each graduate course. - 670 - Information Storage and Retrieval,Please rate your capability/interest in teaching each graduate course. - 671 - Computer-Human Interaction,Please rate your capability/interest in teaching each graduate course. - 672 - Computer Supported Collaborative Work,Please rate your capability/interest in teaching each graduate course. - 675 - Digital Libraries,Please rate your capability/interest in teaching each graduate course. - 676 - Data Mining and Analysis,Please rate your capability/interest in teaching each graduate course. - 678 - Distributed Ssytems and Cloud Computing,Please rate your capability/interest in teaching each graduate course. - 679 - Data Visualization,Please rate your capability/interest in teaching each graduate course. - 680 - Testing and Diagnosis of Digital Systems,Please rate your capability/interest in teaching each graduate course. - 681 - Seminar,Please rate your capability/interest in teaching each graduate course. - 682 - Introduction to Doctoral Studies,Please rate your capability/interest in teaching each graduate course. - 701 - Foundations of Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 702 - Law and Policy in Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 703 - Cybersecurity Risk,Please rate your capability/interest in teaching each graduate course. - 704 - Data Analytics for Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 705 - Intro to Computing Systems,Please rate your capability/interest in teaching each graduate course. - 710 - Fundamentals of Software Analysis,Please rate your capability/interest in teaching each graduate course. - 711 - Intro to Modern Cryptography,Please rate your capability/interest in teaching each graduate course. - 712 - Digital Forensic Engineering,Please rate your capability/interest in teaching each graduate course. - 713 - Software Security,Please rate your capability/interest in teaching each graduate course. - 714 - Advanced Hardware Design Functional Verification,Please rate your capability/interest in teaching each graduate course. - 735 - Parallel Computing,Please rate your capability/interest in teaching each graduate course. - 748 - Computational Photography,Please rate your capability/interest in teaching each graduate course. - 749 - Applied Cryptography,Please rate your capability/interest in teaching each graduate course. - 752 - Robotics and Spatial Intelligence,Please rate your capability/interest in teaching each graduate course. - 753 - Computer Vision and Robot Perception,Do you plan on buying out of:,"Is there anything else we should be aware of regarding your teaching load (special course reduction, ...)",Teaching before 9:00 am.,Teaching after 3:00 pm.,"Time Preferences +- We assume that everybody likes to teach late mornings or early/mid afternoons. +- Click sparingly! Your preference weight budget will be spread across your clicked preferences.",When teaching multiple classes... +2755728,Emily,J,Smith,emily.smith@tamu.edu,0,0,,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,1,2,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,2,1,2,1,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,1,1,1,1,2,2,1,1,2,2,2,2,2,2,1,1,2,1,2,1,1,1,2,1,1,2,,,,, +672598,Michael,D,Johnson,michael.johnson@tamu.edu,0,0,,3,2,2,2,2,1,2,2,2,2,1,2,2,1,5,2,2,1,1,2,1,1,1,2,4,2,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,3,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,2,1,3,1,2,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,4,2,1,1,2,2,1,1,2,1,2,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,,,,,1 +670246,Sarah,A,Brown,sarah.brown@tamu.edu,1,0,,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,2,1,1,1,2,1,1,2,2,1,1,1,3,1,1,1,1,1,1,1,5,1,4,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,2,2,1,1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,2,1,1,2,3,5,3,1,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,,3,2 +2476413,Christopher,R,Jones,christopher.jones@tamu.edu,1,0,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,3, +2332341,Amanda,L,Garcia,amanda.garcia@tamu.edu,0,0,,3,3,3,2,2,1,1,3,1,2,1,1,1,2,3,2,1,1,1,3,1,1,1,4,4,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,3,1,4,1,3,3,2,1,1,1,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,,,,3,2 +1295464,David,T,Miller,david.miller@tamu.edu,1,0,,2,2,2,3,2,1,3,3,2,2,2,2,2,3,2,2,3,1,2,3,1,1,1,1,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,2,2,2,2,2,1,3,3,1,1,1,2,1,3,5,1,1,1,2,2,1,1,2,1,2,1,3,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,2 +1152574,Jessica,N,Davis,jessica.davis@tamu.edu,0,0,,2,3,3,4,3,2,3,4,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1, +2036178,Matthew,K,Wilson,matthew.wilson@tamu.edu,1,0,,3,2,2,2,2,2,2,3,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,1,1,1,1,1,1,1,5,1,2,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,,3, +48906,Jennifer,M,Martinez,jennifer.martinez@tamu.edu,0,0,,1,3,3,2,2,3,2,2,2,2,2,2,2,5,2,4,1,3,1,1,5,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,2,3,3,1,3,1,2,1,2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,2,1 +676911,Daniel,C,Anderson,daniel.anderson@tamu.edu,0,0,,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3,1 +749735,Ashley,P,Taylor,ashley.taylor@tamu.edu,1,1,,2,4,1,1,1,1,4,2,3,1,1,4,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,"1,3", +2938931,James,E,Thomas,james.thomas@tamu.edu,1,0,,3,3,3,2,3,3,3,3,4,2,3,2,4,3,2,2,2,1,3,1,4,3,1,2,1,2,3,1,2,2,2,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,4,1,4,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,,"2,3" +674610,Megan,B,Hernandez,megan.hernandez@tamu.edu,1,0,,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 +672529,Noah,S,Moore,andrew.moore@tamu.edu,0,0,,2,3,3,3,3,3,3,5,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3, +424079,Lauren,F,Martin,lauren.martin@tamu.edu,0,0,,3,2,2,4,3,2,2,3,3,2,2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,2,5,1,1,1,5,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,2,"1,3" +2202367,Joseph,G,White,joseph.white@tamu.edu,0,0,,1,3,3,2,2,1,3,3,2,3,2,3,3,2,4,2,2,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,,,2,1 +670859,Rachel,Q,Lee,rachel.lee@tamu.edu,1,0,,3,2,2,2,2,2,2,4,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,3,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,,1,,1,1 +713579,Ryan,V,Harris,ryan.harris@tamu.edu,0,0,,3,2,2,3,2,1,2,4,4,2,3,2,2,4,2,2,2,1,1,4,1,1,1,5,4,2,2,2,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,5,1,4,1,4,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,1,,,,,1 +617243,Michelle,R,Clark,michelle.clark@tamu.edu,0,0,,3,2,2,2,2,2,2,4,4,2,3,2,2,2,2,2,2,1,2,4,1,1,1,1,1,1,1,1,4,4,2,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,3,1,3,1,1,1,1,1,1,1,1,5,1,1,1,1,3,5,2,4,1,1,1,1,1,1,1,4,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,1 +2472710,Brian,W,Lewis,brian.lewis@tamu.edu,0,0,,1,3,3,3,3,3,3,4,5,2,2,2,4,3,2,2,2,2,3,3,2,2,1,1,1,1,1,1,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,1,1,5,1,1,3,3,2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,4,1,1,1,3,1,1,1,1,2,1,1,1,,,,3, +939540,Samantha,Z,Young,samantha.young@tamu.edu,1,0,,3,3,3,3,3,3,3,3,3,2,2,4,4,2,2,2,4,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,,1 +1636277,Adam,O,Allen,adam.allen@tamu.edu,0,0,,1,3,3,3,4,3,3,4,3,2,2,4,3,2,1,2,4,1,2,2,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,3,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,,,,1,2 +667061,Elizabeth,U,King,elizabeth.king@tamu.edu,0,0,,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,"I am buying out, so I am not planning to teach anything in Spring 2024",,,, +233153,Nicholas,H,Wright,nicholas.wright@tamu.edu,0,0,,2,2,2,1,2,2,1,4,4,3,1,1,1,1,3,2,2,1,1,4,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,3,4,1,4,1,1,1,2,1,1,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,3,1,1,1,1,1,1,1,3,1,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,2 +2332340,Riley,C,Scott,riley.scott@tamu.edu,0,0,,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I will be on fac developmental leave for fall 24 and spring 25,,,, +676913,Justin,L,Green,justin.green@tamu.edu,1,1,,1,3,3,3,3,3,3,3,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,,1 +487444,Stephanie,D,Adams,stephanie.adams@tamu.edu,1,0,,2,2,2,2,2,2,2,3,5,2,2,2,2,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,"1,3",1 +2623488,Aaron,M,Baker,aaron.baker@tamu.edu,1,0,,2,2,3,3,2,1,2,3,3,1,2,2,3,3,1,2,1,1,2,1,2,1,1,1,1,1,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,1,2,4,2,2,1,2,1,2,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,,1,,1,3 +118480,Kristi,I,Gonzalez,christina.gonzalez@tamu.edu,0,0,,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,3,3,1,2,3,1,2,2,1,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,4,3,2,2,2,2,1,1,1,1,1,1,3,2,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,4,3,4,1,1,2,3,4,3,1,1,1,2,1,1,3,I currently plan to teach one course in Fall 24 and buyout in Spring 25 BUT I will work to support the department.,,,1,1 +2944519,Brandon,J,Nelson,brandon.nelson@tamu.edu,1,1,,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1, +673660,Beth,N,Carter,brittany.carter@tamu.edu,0,0,,1,2,2,2,2,3,2,2,2,2,2,2,3,2,2,2,2,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,1,1,1,5,1,1,3,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,4,3,1,3,4,4,1,1,1,3,1,1,2,,,,3,1 +2957849,Joshua,T,Mitchell,joshua.mitchell@tamu.edu,0,0,,3,2,2,2,3,5,2,2,2,2,2,3,3,2,2,2,2,2,4,1,2,5,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,1,1,5,1,1,4,3,2,2,1,1,1,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,3,5,1,2,1,5,5,1,1,1,1,1,1,1,,,,3,1 +2938933,Victoria,E,Perez,victoria.perez@tamu.edu,1,0,,3,3,3,3,3,1,3,3,3,2,1,2,2,2,2,2,2,1,1,1,1,1,1,3,1,3,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,Buyout plan is tentative,1,,, +555614,Zachary,W,Roberts,zachary.roberts@tamu.edu,0,0,,2,3,3,3,3,3,3,5,3,2,2,4,4,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I only teach in Spring.,,1,"2,3", +2938934,Amber,S,Turner,amber.turner@tamu.edu,1,0,,3,3,3,3,3,2,3,5,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,3,1 +676785,Benjamin,Q,Phillips,benjamin.phillips@tamu.edu,1,0,,2,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 +617634,Melissa,R,Campbell,melissa.campbell@tamu.edu,1,0,,3,2,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,,1,1,"1,3", +305257,Tyler,F,Parker,tyler.parker@tamu.edu,1,0,,1,3,2,2,4,1,2,2,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,5,1,1,2,4,1,1,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 +2332343,Kimberly,D,Evans,kimberly.evans@tamu.edu,0,0,,2,3,3,3,3,3,3,3,3,2,2,4,2,2,2,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3,1 +675964,Eric,L,Edwards,eric.edwards@tamu.edu,0,0,,2,3,3,3,3,3,3,3,3,2,2,2,2,2,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,,1,,1 +64785,Katherine,C,Collins,katherine.collins@tamu.edu,1,0,,2,4,4,4,2,2,4,4,4,2,4,2,3,5,2,4,2,2,2,4,4,4,1,3,2,3,4,2,4,3,2,2,2,2,1,1,2,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,3,1,1,2,2,5,4,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,,1,,"2,3",1 +670154,Sean,M,Stewart,sean.stewart@tamu.edu,0,0,,1,2,2,2,2,1,2,2,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,, +2755727,Heather,A,Sanchez,heather.sanchez@tamu.edu,0,0,,2,2,2,2,2,2,2,3,3,3,2,2,2,2,3,2,2,1,1,4,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3, +1740388,Kevin,B,Morris,kevin.morris@tamu.edu,1,1,,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,1,"1,3",1 +100615,Rebecca,O,Rogers,rebecca.rogers@tamu.edu,0,1,,1,3,3,3,2,1,3,4,3,1,2,2,2,2,1,4,2,1,1,4,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I have a 3 course reduction per year for advising (typically reduction by 2 in the fall and by 1 in the spring -- meaning teaching 1 course in the fall and 2 courses in the spring).,,1,3,"1,3" +2708588,Nathan,W,Reed,nathan.reed@tamu.edu,1,0,,2,2,2,2,2,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,,1,,"1,2", +3103405,Cynthia,P,Cook,cynthia.cook@tamu.edu,0,0,,1,4,4,4,3,3,4,4,3,3,4,4,4,4,2,4,4,1,4,4,1,1,1,1,1,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,4,4,4,4,1,4,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3,1 +3178380,Steven,G,Morgan,steven.morgan@tamu.edu,1,0,,2,3,3,3,3,1,3,3,2,2,2,3,3,3,3,3,3,2,3,2,1,2,1,3,3,3,3,3,2,1,3,3,3,3,1,3,2,3,3,3,3,3,3,1,3,3,1,1,1,1,1,1,2,3,3,1,3,3,2,3,3,3,3,1,3,3,3,3,1,3,3,1,1,1,2,1,1,3,3,2,2,1,2,3,3,3,3,4,3,3,1,3,1,3,3,3,1,1,1,1,1,3,3,1,1,1,4,3,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,"It's my first semester, and I might teach the special topics on Human-AI Interaction.",1,,1,3 +2200830,Angela,K,Bell,angela.bell@tamu.edu,1,0,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,2,1,1,2,,1,,1, +667690,Alex,Z,Murphy,alex.murphy@tamu.edu,1,0,,2,4,2,3,4,1,2,4,3,1,2,2,2,2,1,3,2,1,1,4,1,1,1,1,1,5,2,1,1,1,1,1,1,1,1,4,4,2,1,1,3,3,2,1,3,2,1,1,1,1,1,1,1,1,1,1,3,2,2,2,3,2,1,1,2,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,3,3,3,5,3,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,,1,,,1 +667624,Megan,Q,Bailey,megan.bailey@tamu.edu,1,0,,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,,2 +2938935,Evan,R,Rivera,evan.rivera@tamu.edu,1,0,,3,2,2,4,3,1,4,4,4,3,2,2,2,2,3,2,2,1,2,4,1,1,1,3,4,2,1,1,4,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,3,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,3,4,4,3,4,1,1,1,4,1,1,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,2,1,2,4,1,1,1,1,3,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,,1,,"1,3", +3099007,Brittany,J,Cooper,brittany.cooper@tamu.edu,1,0,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,,1,,, +2392253,Anthony,L,Richardson,anthony.richardson@tamu.edu,1,1,,3,3,3,3,3,4,3,3,3,2,2,4,4,3,3,3,4,1,4,3,4,4,2,1,1,2,3,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,2,1,4,1,2,1,2,2,1,4,3,1,2,3,2,2,3,3,2,2,2,3,2,1,4,2,4,3,2,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,2,1,1,3,1,1,3,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,4,1,3,1,2,1,1,1,,1,1,,3 +673362,Brooke,V,Cox,brooke.cox@tamu.edu,0,0,,1,2,2,2,2,2,2,2,2,2,2,4,3,2,2,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,2,1,1,3,1,2,4,4,5,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,,2 +669904,John,C,Howard,john.howard@tamu.edu,1,0,,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,"2,3" +672480,Stephanie,I,Ward,stephanie.ward@tamu.edu,1,0,,3,1,2,2,4,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,4,1,1,3,5,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,,1,,,2 +516097,Patrick,T,Torres,patrick.torres@tamu.edu,0,0,,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +301656,Allison,N,Peterson,allison.peterson@tamu.edu,1,0,,2,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 +2188757,Connor,M,Gray,connor.gray@tamu.edu,0,0,,3,3,3,2,3,3,3,4,4,2,3,2,2,4,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,4,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,, +667603,Jacqueline,S,Ramirez,jacqueline.ramirez@tamu.edu,1,1,,3,3,3,3,3,2,3,3,3,2,2,3,2,2,4,2,2,1,1,2,1,1,1,2,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,1,3,1,3,3,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,1,"1,3",1 +1636279,Andrew,D,James,andrew.james@tamu.edu,1,0,,3,2,2,3,3,2,3,4,4,2,2,2,2,2,2,2,2,1,2,4,1,1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,,1,,1,2 +131784,Olivia,U,Watson,olivia.watson@tamu.edu,1,1,,3,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,2,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,2,1,1,2,1,2,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,"I am teaching part time only, 1 course in the fall",1,1,"2,3", +3253135,Jason,F,Brooks,jason.brooks@tamu.edu,0,0,,3,4,3,1,4,1,1,3,3,2,1,1,1,2,3,1,1,1,1,1,1,1,1,2,5,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,3 +1636280,Caroline,E,Kelly,caroline.kelly@tamu.edu,0,1,,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,4,2,1,1,1,2,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,2,,,1,"2,3",1 +2274553,Dylan,O,Sanders,dylan.sanders@tamu.edu,0,0,,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,,,,1 +3242193,Natalie,K,Price,natalie.price@tamu.edu,0,0,,1,2,1,2,2,1,2,3,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1, +3233114,Jared,V,Bennett,jared.bennett@tamu.edu,0,0,,1,4,2,4,3,2,2,3,2,2,2,4,3,2,2,2,5,1,2,3,4,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,2,2,3,3,1,2,1,1,1,1,2,1,2,4,4,3,2,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,3,2,1,1,1,1,2,1,1,1,1,1,,,,, +672510,Christina,W,Wood,christina.wood@tamu.edu,0,0,,3,3,3,4,3,2,4,4,4,2,2,2,3,2,2,2,1,1,2,2,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,1,2,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,,,,2, +1300757,Ethan,J,Barnes,ethan.barnes@tamu.edu,0,0,,2,1,1,1,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,3,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3, +3242194,Nicole,Z,Ross,nicole.ross@tamu.edu,0,0,,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,4,4,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,2,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,2,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,5,1,,,,,1 +193825,Ty,A,Henderson,ty.henderson@tamu.edu,0,0,,1,2,4,3,5,5,3,3,3,2,2,2,2,2,2,4,2,5,2,2,2,5,1,2,1,2,4,2,1,1,1,3,1,2,1,1,2,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,5,4,4,2,3,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,2,1,2,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,4,1,5,5,5,3,1,1,3,1,5,1,1,1,1,1,1,1,,,,,1 diff --git a/db/rooms.csv b/db/sample_data/rooms.csv similarity index 100% rename from db/rooms.csv rename to db/sample_data/rooms.csv diff --git a/db/sample_instructors.csv b/db/sample_instructors.csv deleted file mode 100644 index 465a3ce..0000000 --- a/db/sample_instructors.csv +++ /dev/null @@ -1,73 +0,0 @@ -Anonymized ID,First Name,Middle Initial,Last Name,Email,Teaching before 9:00 am.,Teaching after 3:00 pm.,"Is there anything else we should be aware of regarding your teaching load (special course reduction, ...)" -2755728,Emily,J,Smith,emily.smith@tamu.edu,0,0, -672598,Michael,D,Johnson,michael.johnson@tamu.edu,0,0, -670246,Sarah,A,Brown,sarah.brown@tamu.edu,1,0, -2476413,Christopher,R,Jones,christopher.jones@tamu.edu,1,0, -2332341,Amanda,L,Garcia,amanda.garcia@tamu.edu,0,0, -1295464,David,T,Miller,david.miller@tamu.edu,1,0, -1152574,Jessica,N,Davis,jessica.davis@tamu.edu,0,0, -2036178,Matthew,K,Wilson,matthew.wilson@tamu.edu,1,0, -48906,Jennifer,M,Martinez,jennifer.martinez@tamu.edu,0,0, -676911,Daniel,C,Anderson,daniel.anderson@tamu.edu,0,0, -749735,Ashley,P,Taylor,ashley.taylor@tamu.edu,1,1, -2938931,James,E,Thomas,james.thomas@tamu.edu,1,0, -674610,Megan,B,Hernandez,megan.hernandez@tamu.edu,1,0, -672529,Andrew,S,Moore,andrew.moore@tamu.edu,0,0, -424079,Lauren,F,Martin,lauren.martin@tamu.edu,0,0, -2202367,Joseph,G,White,joseph.white@tamu.edu,0,0, -670859,Rachel,Q,Lee,rachel.lee@tamu.edu,1,0, -713579,Ryan,V,Harris,ryan.harris@tamu.edu,0,0, -617243,Michelle,R,Clark,michelle.clark@tamu.edu,0,0, -2472710,Brian,W,Lewis,brian.lewis@tamu.edu,0,0, -939540,Samantha,Z,Young,samantha.young@tamu.edu,1,0, -1636277,Adam,O,Allen,adam.allen@tamu.edu,0,0, -667061,Elizabeth,U,King,elizabeth.king@tamu.edu,0,0, -233153,Nicholas,H,Wright,nicholas.wright@tamu.edu,0,0, -2332340,Rebecca,C,Scott,rebecca.scott@tamu.edu,0,0, -676913,Justin,L,Green,justin.green@tamu.edu,1,1, -487444,Stephanie,D,Adams,stephanie.adams@tamu.edu,1,0, -2623488,Aaron,M,Baker,aaron.baker@tamu.edu,1,0, -118480,Christina,I,Gonzalez,christina.gonzalez@tamu.edu,0,0, -2944519,Brandon,J,Nelson,brandon.nelson@tamu.edu,1,1, -673660,Brittany,N,Carter,brittany.carter@tamu.edu,0,0, -2957849,Joshua,T,Mitchell,joshua.mitchell@tamu.edu,0,0, -2938933,Victoria,E,Perez,victoria.perez@tamu.edu,1,0, -555614,Zachary,W,Roberts,zachary.roberts@tamu.edu,0,0, -2938934,Amber,S,Turner,amber.turner@tamu.edu,1,0, -676785,Benjamin,Q,Phillips,benjamin.phillips@tamu.edu,1,0, -617634,Melissa,R,Campbell,melissa.campbell@tamu.edu,1,0, -305257,Tyler,F,Parker,tyler.parker@tamu.edu,1,0, -2332343,Kimberly,D,Evans,kimberly.evans@tamu.edu,0,0, -675964,Eric,L,Edwards,eric.edwards@tamu.edu,0,0, -64785,Katherine,C,Collins,katherine.collins@tamu.edu,1,0, -670154,Sean,M,Stewart,sean.stewart@tamu.edu,0,0, -2755727,Heather,A,Sanchez,heather.sanchez@tamu.edu,0,0, -1740388,Kevin,B,Morris,kevin.morris@tamu.edu,1,1, -100615,Rebecca,O,Rogers,rebecca.rogers@tamu.edu,0,1, -2708588,Nathan,W,Reed,nathan.reed@tamu.edu,1,0, -3103405,Cynthia,P,Cook,cynthia.cook@tamu.edu,0,0, -3178380,Steven,G,Morgan,steven.morgan@tamu.edu,1,0, -2200830,Angela,K,Bell,angela.bell@tamu.edu,1,0, -667690,Alex,Z,Murphy,alex.murphy@tamu.edu,1,0, -667624,Megan,Q,Bailey,megan.bailey@tamu.edu,1,0, -2938935,Evan,R,Rivera,evan.rivera@tamu.edu,1,0, -3099007,Brittany,J,Cooper,brittany.cooper@tamu.edu,1,0, -2392253,Anthony,L,Richardson,anthony.richardson@tamu.edu,1,1, -673362,Brooke,V,Cox,brooke.cox@tamu.edu,0,0, -669904,John,C,Howard,john.howard@tamu.edu,1,0, -672480,Stephanie,I,Ward,stephanie.ward@tamu.edu,1,0, -516097,Patrick,T,Torres,patrick.torres@tamu.edu,0,0, -301656,Allison,N,Peterson,allison.peterson@tamu.edu,1,0, -2188757,Connor,M,Gray,connor.gray@tamu.edu,0,0, -667603,Jacqueline,S,Ramirez,jacqueline.ramirez@tamu.edu,1,1, -1636279,Andrew,D,James,andrew.james@tamu.edu,1,0, -131784,Olivia,U,Watson,olivia.watson@tamu.edu,1,1, -3253135,Jason,F,Brooks,jason.brooks@tamu.edu,0,0, -1636280,Caroline,E,Kelly,caroline.kelly@tamu.edu,0,1, -2274553,Dylan,O,Sanders,dylan.sanders@tamu.edu,0,0, -3242193,Natalie,K,Price,natalie.price@tamu.edu,0,0, -3233114,Jared,V,Bennett,jared.bennett@tamu.edu,0,0, -672510,Christina,W,Wood,christina.wood@tamu.edu,0,0, -1300757,Ethan,J,Barnes,ethan.barnes@tamu.edu,0,0, -3242194,Nicole,Z,Ross,nicole.ross@tamu.edu,0,0, -193825,Tyler,A,Henderson,tyler.henderson@tamu.edu,0,0, \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb index 905ec1b..af669a9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -12,115 +12,115 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2024_11_15_032725) do - create_table "courses", force: :cascade do |t| - t.string "course_number" - t.integer "max_seats" - t.string "lecture_type" - t.integer "num_labs" - t.integer "schedule_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "hide", default: false, null: false - t.string "section_numbers" - t.index ["schedule_id"], name: "index_courses_on_schedule_id" +ActiveRecord::Schema[7.2].define(version: 20_241_115_032_725) do + create_table 'courses', force: :cascade do |t| + t.string 'course_number' + t.integer 'max_seats' + t.string 'lecture_type' + t.integer 'num_labs' + t.integer 'schedule_id', null: false + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.boolean 'hide', default: false, null: false + t.string 'section_numbers' + t.index ['schedule_id'], name: 'index_courses_on_schedule_id' end - create_table "instructor_preferences", force: :cascade do |t| - t.integer "instructor_id", null: false - t.integer "preference_level" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "course_id", null: false - t.index ["course_id"], name: "index_instructor_preferences_on_course_id" - t.index ["instructor_id"], name: "index_instructor_preferences_on_instructor_id" + create_table 'instructor_preferences', force: :cascade do |t| + t.integer 'instructor_id', null: false + t.integer 'preference_level' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.integer 'course_id', null: false + t.index ['course_id'], name: 'index_instructor_preferences_on_course_id' + t.index ['instructor_id'], name: 'index_instructor_preferences_on_instructor_id' end - create_table "instructors", force: :cascade do |t| - t.integer "id_number" - t.string "last_name" - t.string "first_name" - t.string "middle_name" - t.string "email" - t.boolean "before_9" - t.boolean "after_3" - t.text "beaware_of" - t.integer "schedule_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "max_course_load", default: 1 - t.index ["schedule_id"], name: "index_instructors_on_schedule_id" + create_table 'instructors', force: :cascade do |t| + t.integer 'id_number' + t.string 'last_name' + t.string 'first_name' + t.string 'middle_name' + t.string 'email' + t.boolean 'before_9' + t.boolean 'after_3' + t.text 'beaware_of' + t.integer 'schedule_id' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.integer 'max_course_load', default: 1 + t.index ['schedule_id'], name: 'index_instructors_on_schedule_id' end - create_table "room_bookings", force: :cascade do |t| - t.integer "room_id", null: false - t.integer "time_slot_id", null: false - t.boolean "is_available", default: true - t.boolean "is_lab" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "instructor_id" - t.boolean "is_locked" - t.integer "course_id" - t.index ["course_id"], name: "index_room_bookings_on_course_id" - t.index ["instructor_id"], name: "index_room_bookings_on_instructor_id" - t.index ["room_id"], name: "index_room_bookings_on_room_id" - t.index ["time_slot_id"], name: "index_room_bookings_on_time_slot_id" + create_table 'room_bookings', force: :cascade do |t| + t.integer 'room_id', null: false + t.integer 'time_slot_id', null: false + t.boolean 'is_available', default: true + t.boolean 'is_lab' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.integer 'instructor_id' + t.boolean 'is_locked' + t.integer 'course_id' + t.index ['course_id'], name: 'index_room_bookings_on_course_id' + t.index ['instructor_id'], name: 'index_room_bookings_on_instructor_id' + t.index ['room_id'], name: 'index_room_bookings_on_room_id' + t.index ['time_slot_id'], name: 'index_room_bookings_on_time_slot_id' end - create_table "rooms", force: :cascade do |t| - t.integer "campus" - t.boolean "is_lecture_hall" - t.boolean "is_learning_studio" - t.boolean "is_lab" - t.string "building_code" - t.string "room_number" - t.integer "capacity" - t.boolean "is_active" - t.string "comments" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "schedule_id", default: -1, null: false - t.index ["schedule_id"], name: "index_rooms_on_schedule_id" + create_table 'rooms', force: :cascade do |t| + t.integer 'campus' + t.boolean 'is_lecture_hall' + t.boolean 'is_learning_studio' + t.boolean 'is_lab' + t.string 'building_code' + t.string 'room_number' + t.integer 'capacity' + t.boolean 'is_active' + t.string 'comments' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.integer 'schedule_id', default: -1, null: false + t.index ['schedule_id'], name: 'index_rooms_on_schedule_id' end - create_table "schedules", force: :cascade do |t| - t.string "schedule_name" - t.string "semester_name" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "user_id", null: false - t.index ["user_id"], name: "index_schedules_on_user_id" + create_table 'schedules', force: :cascade do |t| + t.string 'schedule_name' + t.string 'semester_name' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.integer 'user_id', null: false + t.index ['user_id'], name: 'index_schedules_on_user_id' end - create_table "time_slots", force: :cascade do |t| - t.string "day" - t.string "start_time" - t.string "end_time" - t.string "slot_type" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + create_table 'time_slots', force: :cascade do |t| + t.string 'day' + t.string 'start_time' + t.string 'end_time' + t.string 'slot_type' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false end - create_table "users", force: :cascade do |t| - t.string "email" - t.string "first_name" - t.string "last_name" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "uid" - t.string "provider" - t.index ["email"], name: "index_users_on_email", unique: true + create_table 'users', force: :cascade do |t| + t.string 'email' + t.string 'first_name' + t.string 'last_name' + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.string 'uid' + t.string 'provider' + t.index ['email'], name: 'index_users_on_email', unique: true end - add_foreign_key "courses", "schedules" - add_foreign_key "instructor_preferences", "courses" - add_foreign_key "instructor_preferences", "instructors" - add_foreign_key "instructors", "schedules" - add_foreign_key "room_bookings", "courses" - add_foreign_key "room_bookings", "instructors" - add_foreign_key "room_bookings", "rooms" - add_foreign_key "room_bookings", "time_slots" - add_foreign_key "rooms", "schedules" - add_foreign_key "schedules", "users" + add_foreign_key 'courses', 'schedules' + add_foreign_key 'instructor_preferences', 'courses' + add_foreign_key 'instructor_preferences', 'instructors' + add_foreign_key 'instructors', 'schedules' + add_foreign_key 'room_bookings', 'courses' + add_foreign_key 'room_bookings', 'instructors' + add_foreign_key 'room_bookings', 'rooms' + add_foreign_key 'room_bookings', 'time_slots' + add_foreign_key 'rooms', 'schedules' + add_foreign_key 'schedules', 'users' end diff --git a/db/teaching_preferences_anonymized.csv b/db/teaching_preferences_anonymized.csv deleted file mode 100644 index 1648bc6..0000000 --- a/db/teaching_preferences_anonymized.csv +++ /dev/null @@ -1,77 +0,0 @@ -IDNO,Q20_1,Q20_2,Q20_3,Q20_4,Q20_5,Q20_6,Q20_7,Q20_8,Q20_9,Q20_10,Q20_11,Q20_12,Q20_13,Q20_14,Q20_15,Q20_16,Q20_17,Q20_18,Q20_19,Q20_20,Q20_21,Q20_22,Q20_23,Q20_24,Q20_25,Q20_26,Q20_27,Q20_28,Q20_29,Q20_30,Q20_31,Q20_32,Q20_33,Q20_34,Q20_35,Q20_36,Q20_37,Q20_38,Q20_39,Q20_40,Q20_41,Q20_42,Q20_43,Q20_44,Q20_45,Q20_46,Q20_47,Q20_48,Q20_49,Q20_50,Q20_51,Q20_52,Q20_53,Q20_54,Q20_55,Q20_56,Q20_57,Q20_58,Q5_1,Q5_2,Q5_3,Q5_4,Q5_5,Q5_6,Q5_7,Q5_8,Q5_9,Q5_10,Q5_11,Q5_12,Q5_65,Q5_13,Q5_14,Q5_15,Q5_16,Q5_17,Q5_18,Q5_19,Q5_20,Q5_21,Q5_22,Q5_23,Q5_24,Q5_25,Q5_90,Q5_26,Q5_27,Q5_28,Q5_29,Q5_30,Q5_66,Q5_32,Q5_33,Q5_87,Q5_34,Q5_35,Q5_36,Q5_37,Q5_38,Q5_39,Q5_40,Q5_67,Q5_67,Q5_41,Q5_42,Q5_43,Q5_44,Q5_45,Q5_46,Q5_47,Q5_48,Q5_49,Q5_50,Q5_51,Q5_52,Q5_53,Q5_54,Q5_55,Q5_56,Q5_57,Q5_58,Q5_59,Q5_67,Q5_61,Q5_68,Q5_69,Q5_72,Q5_62,Q5_63,Q5_88,Q5_77,Q5_71,Q5_70,Q5_79,Q5_75,Q5_81,Q5_74,Q5_80,Q5_76,Q5_82,Q5_83,Q5_84,Q5_85,Q5_86,Q5_89,Q7,Q22,Q21,Q12,Q13,Q17,Q18 -anonimized ID,Please rate your capability/interest in teaching each undergraduate course. - 110/707 - Programming I (Python),Please rate your capability/interest in teaching each undergraduate course. - 111/708 - Introduction to Computer Science Concepts and Programming (Java),Please rate your capability/interest in teaching each undergraduate course. - 121/120/709 - Introduction to Program Design and Concepts (C++),Please rate your capability/interest in teaching each undergraduate course. - 181 - Introduction to Computing (intro seminar; half teaching credit),Please rate your capability/interest in teaching each undergraduate course. - 201 - Fundamentals of Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 206 - Structured Programming in C,Please rate your capability/interest in teaching each undergraduate course. - 221 - Data Structures and Algorithms,Please rate your capability/interest in teaching each undergraduate course. - 222 - Discrete Structures for Computing,Please rate your capability/interest in teaching each undergraduate course. - 305 - Computational Data Science (rarely taught by us),Please rate your capability/interest in teaching each undergraduate course. - 310 - Database Systems,Please rate your capability/interest in teaching each undergraduate course. - 312 - Computer Organization,Please rate your capability/interest in teaching each undergraduate course. - 313 - Introduction to Computer Systems,Please rate your capability/interest in teaching each undergraduate course. - 314 - Programming Languages,Please rate your capability/interest in teaching each undergraduate course. - 320 - Principles of Data Science,Please rate your capability/interest in teaching each undergraduate course. - 315/331 - Foundations of Software Engineering,Please rate your capability/interest in teaching each undergraduate course. - 350 - Computer Architecture and Design,Please rate your capability/interest in teaching each undergraduate course. - 402/702 - Law & Policy in Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 410 - Operating Systems,Please rate your capability/interest in teaching each undergraduate course. - 411 - Design and Analysis of Algoirthms,Please rate your capability/interest in teaching each undergraduate course. - 412 - Cloud Computing,Please rate your capability/interest in teaching each undergraduate course. - 413 - Software Security,Please rate your capability/interest in teaching each undergraduate course. - 416 - Introduction to Hardware Design Verification,Please rate your capability/interest in teaching each undergraduate course. - 420 - Artificial Intelligence,Please rate your capability/interest in teaching each undergraduate course. - 421 - Machine Learning,Please rate your capability/interest in teaching each undergraduate course. - 430 - Problem Solving Programming Strategies,Please rate your capability/interest in teaching each undergraduate course. - 431 - Software Engineering,Please rate your capability/interest in teaching each undergraduate course. - 432 - Accessible Computing,Please rate your capability/interest in teaching each undergraduate course. - 433 - Formal Languages and Automata,Please rate your capability/interest in teaching each undergraduate course. - 434 - Compiler Design,Please rate your capability/interest in teaching each undergraduate course. - 435 - Parallel Computing,Please rate your capability/interest in teaching each undergraduate course. - 436 - Human Computer Interaction,Please rate your capability/interest in teaching each undergraduate course. - 438 - Distributed Objects Programming,Please rate your capability/interest in teaching each undergraduate course. - 439 - Data Analytics for Cybersecurity,Please rate your capability/interest in teaching each undergraduate course. - 440 - Quantum Algorithms,Please rate your capability/interest in teaching each undergraduate course. - 441 - Computer Graphics,Please rate your capability/interest in teaching each undergraduate course. - 442 - Scientific Programming,Please rate your capability/interest in teaching each undergraduate course. - 443 - Game Development,Please rate your capability/interest in teaching each undergraduate course. - 444 - Structures of Interactive Information,Please rate your capability/interest in teaching each undergraduate course. - 445 - Computers and New Media,Please rate your capability/interest in teaching each undergraduate course. - 446 - Virtual Reality,Please rate your capability/interest in teaching each undergraduate course. - 447 - Data Visualization,Please rate your capability/interest in teaching each undergraduate course. - 448 - Computational Photography,Please rate your capability/interest in teaching each undergraduate course. - 449 - Applied Cryptography,Please rate your capability/interest in teaching each undergraduate course. - 450 - Computer Animation,Please rate your capability/interest in teaching each undergraduate course. - 451 - Software Reverse Engineering,Please rate your capability/interest in teaching each undergraduate course. - 452 - Robotics and Spatial Intelligence,Please rate your capability/interest in teaching each undergraduate course. - 456 - RealTime Computing,Please rate your capability/interest in teaching each undergraduate course. - 461 - Embedded Systems for Medical Applications,Please rate your capability/interest in teaching each undergraduate course. - 462 - Microcomputer Systems,Please rate your capability/interest in teaching each undergraduate course. - 463 - Networking and Distributed Systems,Please rate your capability/interest in teaching each undergraduate course. - 464 - Wireless and Mobile Systems,Please rate your capability/interest in teaching each undergraduate course. - 465 - Computer and Network Security,Please rate your capability/interest in teaching each undergraduate course. - 469 - Advanced Computer Architecture,Please rate your capability/interest in teaching each undergraduate course. - 470- Information Storage and Retrieval,Please rate your capability/interest in teaching each undergraduate course. - 477 - Cybersecurity Risk Analysis,Please rate your capability/interest in teaching each undergraduate course. - 481 - Seminar (half teaching credit),Please rate your capability/interest in teaching each undergraduate course. - 482 - Senior Capstone Design (CS capstone),Please rate your capability/interest in teaching each undergraduate course. - 483 - Computer Systems Design (CE capstone),Please rate your capability/interest in teaching each graduate course. - 601 - Programming with C and Java (service course),"Please rate your capability/interest in teaching each graduate course. - 602 - Object-Oriented Programming, Development, and Software Engineering (service course)",Please rate your capability/interest in teaching each graduate course. - 603 - Database Analysis (service course often stacked with 310),Please rate your capability/interest in teaching each graduate course. - 604 - Programming Languages,Please rate your capability/interest in teaching each graduate course. - 605 - Compiler Design,Please rate your capability/interest in teaching each graduate course. - 606 - Software Engineering,Please rate your capability/interest in teaching each graduate course. - 608 - Database Systems,Please rate your capability/interest in teaching each graduate course. - 610 - Hypertext/Hypermedia Systems,Please rate your capability/interest in teaching each graduate course. - 611 - Operating Systems and Applications (service course often stacked with 410),Please rate your capability/interest in teaching each graduate course. - 612 - Applied Networks and Distributed Processing (service course often stacked with 463),Please rate your capability/interest in teaching each graduate course. - 613 - Operating Systems,Please rate your capability/interest in teaching each graduate course. - 614 - Computer Architecture,Please rate your capability/interest in teaching each graduate course. - 616 - Introduction to Hardware Design Verification,Please rate your capability/interest in teaching each graduate course. - 617 - CoDesign of Embedded Systems (CODES),Please rate your capability/interest in teaching each graduate course. - 619 - Networks and Distributed Computing,Please rate your capability/interest in teaching each graduate course. - 620 - Computational Geometry,"Please rate your capability/interest in teaching each graduate course. - 621 - Language, Library, and Program Design Using C++",Please rate your capability/interest in teaching each graduate course. - 622 - Generic Programming,Please rate your capability/interest in teaching each graduate course. - 624 - Sketch Recognition,Please rate your capability/interest in teaching each graduate course. - 625 - Artificial Intelligence,Please rate your capability/interest in teaching each graduate course. - 626 - Parallel Algorithm Design and Analysis,Please rate your capability/interest in teaching each graduate course. - 627 - Theory of Computability,Please rate your capability/interest in teaching each graduate course. - 628 - Computational Biology,Please rate your capability/interest in teaching each graduate course. - 629 - Analysis of Algorithms,Please rate your capability/interest in teaching each graduate course. - 630 - Speech Processing,Please rate your capability/interest in teaching each graduate course. - 631 - Intelligent Agents,Please rate your capability/interest in teaching each graduate course. - 632 - Accessible Computing,Please rate your capability/interest in teaching each graduate course. - 633 - Machine Learning,Please rate your capability/interest in teaching each graduate course. - 634 - Intelligent User Interfaces,Please rate your capability/interest in teaching each graduate course. - 635 - AI Robotics,Please rate your capability/interest in teaching each graduate course. - 636 - Deep Learning,Please rate your capability/interest in teaching each graduate course. - 637 - Complexity Theory,Please rate your capability/interest in teaching each graduate course. - 638 - Natural Language Processing: Foundations and Techniques,Please rate your capability/interest in teaching each graduate course. - 640 - Quantum Algorithms,Please rate your capability/interest in teaching each graduate course. - 641 - Computer Graphics,Please rate your capability/interest in teaching each graduate course. - 642 - Deep Reinforcement Learning,Please rate your capability/interest in teaching each graduate course. - 643 - Seminar in Intelligent Systems and Robotics,Please rate your capability/interest in teaching each graduate course. - 644 - Cortical Networks,Please rate your capability/interest in teaching each graduate course. - 645 - Geometric Modeling,Please rate your capability/interest in teaching each graduate course. - 646 - The Digital Image (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 647 - Image Synthesis (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 648 - Computer Aided Sculpting (usually taught by VIZA),Please rate your capability/interest in teaching each graduate course. - 649 - Physically-Based Modeling,Please rate your capability/interest in teaching each graduate course. - 650 - Virtual Reality,Please rate your capability/interest in teaching each graduate course. - 652 - Software Reverse Engineering,Please rate your capability/interest in teaching each graduate course. - 653 - Computer Methods in Applied Sciences,Please rate your capability/interest in teaching each graduate course. - 654 - Supercomputing,Please rate your capability/interest in teaching each graduate course. - 655 - Human-Centered Computing,Please rate your capability/interest in teaching each graduate course. - 656 - Computers and New Media,Please rate your capability/interest in teaching each graduate course. - 657 - High Performance Computing for Earth Science and Petroleum Engineering (jointly taught with PETE),Please rate your capability/interest in teaching each graduate course. - 658 - Randomized Algorithms,Please rate your capability/interest in teaching each graduate course. - 659 - Parallel/Distributed Numerical Algorithms and Applications,Please rate your capability/interest in teaching each graduate course. - 660 - Computational Linear Algebra,Please rate your capability/interest in teaching each graduate course. - 661 - Integrated Systems Design Automation,Please rate your capability/interest in teaching each graduate course. - 662 - Distributed Processing Systems,Please rate your capability/interest in teaching each graduate course. - 663 - Real-Time Systems,Please rate your capability/interest in teaching each graduate course. - 664 - Wireless and Mobile Systems,Please rate your capability/interest in teaching each graduate course. - 665 - Advanced Networking and Security,Please rate your capability/interest in teaching each graduate course. - 666 - Pattern Analysis,Please rate your capability/interest in teaching each graduate course. - 667 - Seminar in Human-Centered Computing,Please rate your capability/interest in teaching each graduate course. - 668 - Distributed Algorithms and Systems,Please rate your capability/interest in teaching each graduate course. - 669 - Computational Optimization,Please rate your capability/interest in teaching each graduate course. - 670 - Information Storage and Retrieval,Please rate your capability/interest in teaching each graduate course. - 671 - Computer-Human Interaction,Please rate your capability/interest in teaching each graduate course. - 672 - Computer Supported Collaborative Work,Please rate your capability/interest in teaching each graduate course. - 675 - Digital Libraries,Please rate your capability/interest in teaching each graduate course. - 676 - Data Mining and Analysis,Please rate your capability/interest in teaching each graduate course. - 678 - Distributed Ssytems and Cloud Computing,Please rate your capability/interest in teaching each graduate course. - 679 - Data Visualization,Please rate your capability/interest in teaching each graduate course. - 680 - Testing and Diagnosis of Digital Systems,Please rate your capability/interest in teaching each graduate course. - 681 - Seminar,Please rate your capability/interest in teaching each graduate course. - 682 - Introduction to Doctoral Studies,Please rate your capability/interest in teaching each graduate course. - 701 - Foundations of Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 702 - Law and Policy in Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 703 - Cybersecurity Risk,Please rate your capability/interest in teaching each graduate course. - 704 - Data Analytics for Cybersecurity,Please rate your capability/interest in teaching each graduate course. - 705 - Intro to Computing Systems,Please rate your capability/interest in teaching each graduate course. - 710 - Fundamentals of Software Analysis,Please rate your capability/interest in teaching each graduate course. - 711 - Intro to Modern Cryptography,Please rate your capability/interest in teaching each graduate course. - 712 - Digital Forensic Engineering,Please rate your capability/interest in teaching each graduate course. - 713 - Software Security,Please rate your capability/interest in teaching each graduate course. - 714 - Advanced Hardware Design Functional Verification,Please rate your capability/interest in teaching each graduate course. - 735 - Parallel Computing,Please rate your capability/interest in teaching each graduate course. - 748 - Computational Photography,Please rate your capability/interest in teaching each graduate course. - 749 - Applied Cryptography,Please rate your capability/interest in teaching each graduate course. - 752 - Robotics and Spatial Intelligence,Please rate your capability/interest in teaching each graduate course. - 753 - Computer Vision and Robot Perception,Do you plan on buying out of:,Number of courses to assign,"Is there anything else we should be aware of regarding your teaching load (special course reduction, ...)",Teaching before 9:00 am.,Teaching after 3:00 pm.,"Time Preferences -- We assume that everybody likes to teach late mornings or early/mid afternoons. -- Click sparingly! Your preference weight budget will be spread across your clicked preferences.",When teaching multiple classes... -,"{""ImportId"":""QID20_1""}","{""ImportId"":""QID20_2""}","{""ImportId"":""QID20_3""}","{""ImportId"":""QID20_4""}","{""ImportId"":""QID20_54""}","{""ImportId"":""QID20_5""}","{""ImportId"":""QID20_6""}","{""ImportId"":""QID20_7""}","{""ImportId"":""QID20_61""}","{""ImportId"":""QID20_8""}","{""ImportId"":""QID20_9""}","{""ImportId"":""QID20_10""}","{""ImportId"":""QID20_11""}","{""ImportId"":""QID20_47""}","{""ImportId"":""QID20_12""}","{""ImportId"":""QID20_13""}","{""ImportId"":""QID20_48""}","{""ImportId"":""QID20_14""}","{""ImportId"":""QID20_15""}","{""ImportId"":""QID20_42""}","{""ImportId"":""QID20_53""}","{""ImportId"":""QID20_41""}","{""ImportId"":""QID20_16""}","{""ImportId"":""QID20_49""}","{""ImportId"":""QID20_50""}","{""ImportId"":""QID20_17""}","{""ImportId"":""QID20_55""}","{""ImportId"":""QID20_18""}","{""ImportId"":""QID20_19""}","{""ImportId"":""QID20_20""}","{""ImportId"":""QID20_21""}","{""ImportId"":""QID20_22""}","{""ImportId"":""QID20_60""}","{""ImportId"":""QID20_23""}","{""ImportId"":""QID20_24""}","{""ImportId"":""QID20_25""}","{""ImportId"":""QID20_26""}","{""ImportId"":""QID20_27""}","{""ImportId"":""QID20_28""}","{""ImportId"":""QID20_43""}","{""ImportId"":""QID20_44""}","{""ImportId"":""QID20_56""}","{""ImportId"":""QID20_57""}","{""ImportId"":""QID20_58""}","{""ImportId"":""QID20_29""}","{""ImportId"":""QID20_30""}","{""ImportId"":""QID20_31""}","{""ImportId"":""QID20_45""}","{""ImportId"":""QID20_32""}","{""ImportId"":""QID20_33""}","{""ImportId"":""QID20_34""}","{""ImportId"":""QID20_35""}","{""ImportId"":""QID20_36""}","{""ImportId"":""QID20_37""}","{""ImportId"":""QID20_52""}","{""ImportId"":""QID20_38""}","{""ImportId"":""QID20_39""}","{""ImportId"":""QID20_40""}","{""ImportId"":""QID5_1""}","{""ImportId"":""QID5_2""}","{""ImportId"":""QID5_3""}","{""ImportId"":""QID5_4""}","{""ImportId"":""QID5_5""}","{""ImportId"":""QID5_6""}","{""ImportId"":""QID5_7""}","{""ImportId"":""QID5_8""}","{""ImportId"":""QID5_9""}","{""ImportId"":""QID5_10""}","{""ImportId"":""QID5_11""}","{""ImportId"":""QID5_12""}","{""ImportId"":""QID5_13""}","{""ImportId"":""QID5_14""}","{""ImportId"":""QID5_15""}","{""ImportId"":""QID5_16""}","{""ImportId"":""QID5_17""}","{""ImportId"":""QID5_18""}","{""ImportId"":""QID5_19""}","{""ImportId"":""QID5_20""}","{""ImportId"":""QID5_21""}","{""ImportId"":""QID5_22""}","{""ImportId"":""QID5_23""}","{""ImportId"":""QID5_24""}","{""ImportId"":""QID5_25""}","{""ImportId"":""QID5_26""}","{""ImportId"":""QID5_90""}","{""ImportId"":""QID5_27""}","{""ImportId"":""QID5_28""}","{""ImportId"":""QID5_29""}","{""ImportId"":""QID5_30""}","{""ImportId"":""QID5_31""}","{""ImportId"":""QID5_32""}","{""ImportId"":""QID5_34""}","{""ImportId"":""QID5_35""}","{""ImportId"":""QID5_87""}","{""ImportId"":""QID5_36""}","{""ImportId"":""QID5_37""}","{""ImportId"":""QID5_38""}","{""ImportId"":""QID5_39""}","{""ImportId"":""QID5_40""}","{""ImportId"":""QID5_41""}","{""ImportId"":""QID5_42""}","{""ImportId"":""QID5_67""}","{""ImportId"":""QID5_43""}","{""ImportId"":""QID5_44""}","{""ImportId"":""QID5_45""}","{""ImportId"":""QID5_46""}","{""ImportId"":""QID5_47""}","{""ImportId"":""QID5_48""}","{""ImportId"":""QID5_49""}","{""ImportId"":""QID5_50""}","{""ImportId"":""QID5_51""}","{""ImportId"":""QID5_52""}","{""ImportId"":""QID5_53""}","{""ImportId"":""QID5_54""}","{""ImportId"":""QID5_55""}","{""ImportId"":""QID5_56""}","{""ImportId"":""QID5_57""}","{""ImportId"":""QID5_58""}","{""ImportId"":""QID5_59""}","{""ImportId"":""QID5_60""}","{""ImportId"":""QID5_61""}","{""ImportId"":""QID5_62""}","{""ImportId"":""QID5_63""}","{""ImportId"":""QID5_64""}","{""ImportId"":""QID5_68""}","{""ImportId"":""QID5_69""}","{""ImportId"":""QID5_72""}","{""ImportId"":""QID5_65""}","{""ImportId"":""QID5_66""}","{""ImportId"":""QID5_88""}","{""ImportId"":""QID5_77""}","{""ImportId"":""QID5_71""}","{""ImportId"":""QID5_70""}","{""ImportId"":""QID5_79""}","{""ImportId"":""QID5_75""}","{""ImportId"":""QID5_81""}","{""ImportId"":""QID5_74""}","{""ImportId"":""QID5_80""}","{""ImportId"":""QID5_76""}","{""ImportId"":""QID5_82""}","{""ImportId"":""QID5_83""}","{""ImportId"":""QID5_84""}","{""ImportId"":""QID5_85""}","{""ImportId"":""QID5_86""}","{""ImportId"":""QID5_89""}","{""ImportId"":""QID7""}",,"{""ImportId"":""QID21_TEXT""}","{""ImportId"":""QID12""}","{""ImportId"":""QID13""}","{""ImportId"":""QID17""}","{""ImportId"":""QID18""}" -2755728,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,1,2,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,2,1,2,1,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,1,1,1,1,2,2,1,1,2,2,2,2,2,2,1,1,2,1,2,1,1,1,2,1,1,2,1,,,,, -672598,2,2,2,2,1,2,2,2,2,1,2,2,1,5,2,2,1,1,2,1,1,1,2,4,2,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,3,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,2,1,3,1,2,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,4,2,1,1,2,2,1,1,2,1,2,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,,,,,1 -670246,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,2,1,1,1,2,1,1,2,2,1,1,1,3,1,1,1,1,1,1,1,5,1,4,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,2,2,1,1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,2,1,1,2,3,5,3,1,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,1,,3,2 -2476413,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,3, -2332341,3,3,2,2,1,1,3,1,2,1,1,1,2,3,2,1,1,1,3,1,1,1,4,4,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,3,1,4,1,3,3,2,1,1,1,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,,,,3,2 -1295464,2,2,3,2,1,3,3,2,2,2,2,2,3,2,2,3,1,2,3,1,1,1,1,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,2,2,2,2,2,1,3,3,1,1,1,2,1,3,5,1,1,1,2,2,1,1,2,1,2,1,3,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,,1,,1,2 -1152574,3,3,4,3,2,3,4,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,,1, -2036178,2,2,2,2,2,2,3,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,1,1,1,1,1,1,1,5,1,2,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,,1,,3, -48906,3,3,2,2,3,2,2,2,2,2,2,2,5,2,4,1,3,1,1,5,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,2,3,3,1,3,1,2,1,2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,,2,1 -676911,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,,,3,1 -749735,4,1,1,1,1,4,2,3,1,1,4,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,1,"1,3", -2938931,3,3,2,3,3,3,3,4,2,3,2,4,3,2,2,2,1,3,1,4,3,1,2,1,2,3,1,2,2,2,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,4,1,4,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,1,,,"2,3" -674610,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,,1,1 -672529,3,3,3,3,3,3,5,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,,3, -424079,2,2,4,3,2,2,3,3,2,2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,2,5,1,1,1,5,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,,2,"1,3" -2202367,3,3,2,2,1,3,3,2,3,2,3,3,2,4,2,2,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,,,2,1 -670859,2,2,2,2,2,2,4,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,3,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,,1,,1,1 -713579,2,2,3,2,1,2,4,4,2,3,2,2,4,2,2,2,1,1,4,1,1,1,5,4,2,2,2,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,5,1,4,1,4,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,1,1,,,,,1 -617243,2,2,2,2,2,2,4,4,2,3,2,2,2,2,2,2,1,2,4,1,1,1,1,1,1,1,1,4,4,2,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,3,1,3,1,1,1,1,1,1,1,1,5,1,1,1,1,3,5,2,4,1,1,1,1,1,1,1,4,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,,,1,1 -2472710,3,3,3,3,3,3,4,5,2,2,2,4,3,2,2,2,2,3,3,2,2,1,1,1,1,1,1,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,1,1,5,1,1,3,3,2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,4,1,1,1,3,1,1,1,1,2,1,1,1,2,,,,3, -939540,3,3,3,3,3,3,3,3,2,2,4,4,2,2,2,4,1,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,1,,,1 -1636277,3,3,3,4,3,3,4,3,2,2,4,3,2,1,2,4,1,2,2,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,3,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,,,,1,2 -667061,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,"I am buying out, so I am not planning to teach anything in Spring 2024",,,, -233153,2,2,1,2,2,1,4,4,3,1,1,1,1,3,2,2,1,1,4,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,3,4,1,4,1,1,1,2,1,1,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,3,1,1,1,1,1,1,1,3,1,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,2 -2332340,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I will be on fac developmental leave for fall 24 and spring 25,,,, -676913,3,3,3,3,3,3,3,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,1,,1 -487444,2,2,2,2,2,2,3,5,2,2,2,2,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,1,,"1,3",1 -2623488,2,3,3,2,1,2,3,3,1,2,2,3,3,1,2,1,1,2,1,2,1,1,1,1,1,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,1,2,4,2,2,1,2,1,2,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,3 -118480,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,3,3,1,2,3,1,2,2,1,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,4,3,2,2,2,2,1,1,1,1,1,1,3,2,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,4,3,4,1,1,2,3,4,3,1,1,1,2,1,1,3,0,I currently plan to teach one course in Fall 24 and buyout in Spring 25 BUT I will work to support the department. ,,,1,1 -2944519,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1, -673660,2,2,2,2,3,2,2,2,2,2,2,3,2,2,2,2,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,1,1,1,5,1,1,3,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,4,3,1,3,4,4,1,1,1,3,1,1,2,1,,,,3,1 -2957849,2,2,2,3,5,2,2,2,2,2,3,3,2,2,2,2,2,4,1,2,5,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,1,1,5,1,1,4,3,2,2,1,1,1,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,3,5,1,2,1,5,5,1,1,1,1,1,1,1,1,,,,3,1 -2938933,3,3,3,3,1,3,3,3,2,1,2,2,2,2,2,2,1,1,1,1,1,1,3,1,3,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,0,Buyout plan is tentative,1,,, -555614,3,3,3,3,3,3,5,3,2,2,4,4,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I only teach in Spring.,,1,"2,3", -2938934,3,3,3,3,2,3,5,4,2,2,2,2,2,2,2,2,1,1,4,1,1,1,1,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,3,1 -676785,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,,1,1 -617634,2,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,,1,1,"1,3", -305257,3,2,2,4,1,2,2,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,5,1,1,2,4,1,1,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 -2332343,3,3,3,3,3,3,3,3,2,2,4,2,2,2,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,,,,3,1 -675964,3,3,3,3,3,3,3,3,2,2,2,2,2,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,,1,,1 -64785,4,4,4,2,2,4,4,4,2,4,2,3,5,2,4,2,2,2,4,4,4,1,3,2,3,4,2,4,3,2,2,2,2,1,1,2,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,3,1,1,2,2,5,4,2,2,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,3,,1,,"2,3",1 -670154,2,2,2,2,1,2,2,4,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,, -2755727,2,2,2,2,2,2,3,3,3,2,2,2,2,3,2,2,1,1,4,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3, -1740388,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,1,1,"1,3",1 -100615,3,3,3,2,1,3,4,3,1,2,2,2,2,1,4,2,1,1,4,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,I have a 3 course reduction per year for advising (typically reduction by 2 in the fall and by 1 in the spring -- meaning teaching 1 course in the fall and 2 courses in the spring). ,,1,3,"1,3" -2708588,2,2,2,2,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,,1,,"1,2", -3103405,4,4,4,3,3,4,4,3,3,4,4,4,4,2,4,4,1,4,4,1,1,1,1,1,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,4,4,4,4,1,4,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,,3,1 -3178380,3,3,3,3,1,3,3,2,2,2,3,3,3,3,3,3,2,3,2,1,2,1,3,3,3,3,3,2,1,3,3,3,3,1,3,2,3,3,3,3,3,3,1,3,3,1,1,1,1,1,1,2,3,3,1,3,3,2,3,3,3,3,1,3,3,3,3,1,3,3,1,1,1,2,1,1,3,3,2,2,1,2,3,3,3,3,4,3,3,1,3,1,3,3,3,1,1,1,1,1,3,3,1,1,1,4,3,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,1,1,1,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,"It's my first semester, and I might teach the special topics on Human-AI Interaction.",1,,1,3 -2200830,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,2,1,1,2,1,,1,,1, -667690,4,2,3,4,1,2,4,3,1,2,2,2,2,1,3,2,1,1,4,1,1,1,1,1,5,2,1,1,1,1,1,1,1,1,4,4,2,1,1,3,3,2,1,3,2,1,1,1,1,1,1,1,1,1,1,3,2,2,2,3,2,1,1,2,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,4,1,1,1,4,3,3,3,5,3,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,,1,,,1 -667624,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,,2 -2938935,2,2,4,3,1,4,4,4,3,2,2,2,2,3,2,2,1,2,4,1,1,1,3,4,2,1,1,4,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,3,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,3,4,4,3,4,1,1,1,4,1,1,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,2,1,2,4,1,1,1,1,3,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,,1,,"1,3", -3099007,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,,1,,, -2392253,3,3,3,3,4,3,3,3,2,2,4,4,3,3,3,4,1,4,3,4,4,2,1,1,2,3,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,2,1,4,1,2,1,2,2,1,4,3,1,2,3,2,2,3,3,2,2,2,3,2,1,4,2,4,3,2,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,2,1,1,3,1,1,3,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,4,1,3,1,2,1,1,1,1,,1,1,,3 -673362,2,2,2,2,2,2,2,2,2,2,4,3,2,2,2,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,2,1,1,3,1,2,4,4,5,1,1,1,1,1,1,1,1,1,1,1,3,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,,2 -669904,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,1,,1,"2,3" -672480,1,2,2,4,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,3,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,4,1,1,3,5,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,2,,1,,,2 -516097,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,, -301656,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1 -2188757,3,3,2,3,3,3,4,4,2,3,2,2,4,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,4,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,,,,, -667603,3,3,3,3,2,3,3,3,2,2,3,2,2,4,2,2,1,1,2,1,1,1,2,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,5,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,1,3,1,3,3,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,,1,1,"1,3",1 -1636279,2,2,3,3,2,3,4,4,2,2,2,2,2,2,2,2,1,2,4,1,1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,2,,1,,1,2 -131784,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,2,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,2,1,1,2,1,2,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,0,"I am teaching part time only, 1 course in the fall",1,1,"2,3", -3253135,4,3,1,4,1,1,3,3,2,1,1,1,2,3,1,1,1,1,1,1,1,1,2,5,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,3 -1636280,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,4,2,1,1,1,2,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,2,1,,,1,"2,3",1 -2274553,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,,,,,1 -3242193,2,1,2,2,1,2,3,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1, -3233114,4,2,4,3,2,2,3,2,2,2,4,3,2,2,2,5,1,2,3,4,1,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,2,2,3,3,1,2,1,1,1,1,2,1,2,4,4,3,2,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,3,2,1,1,1,1,2,1,1,1,1,1,3,,,,, -672510,3,3,4,3,2,4,4,4,2,2,2,3,2,2,2,1,1,2,2,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,1,2,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,,,,2, -1300757,1,1,1,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,3,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,3, -3242194,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,4,4,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,2,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,2,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,,,,,1 -193825,2,4,3,5,5,3,3,3,2,2,2,2,2,2,4,2,5,2,2,2,5,1,2,1,2,4,2,1,1,1,3,1,2,1,1,2,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,5,4,4,2,3,4,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,2,1,2,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,4,1,5,5,5,3,1,1,3,1,5,1,1,1,1,1,1,1,3,,,,,1 diff --git a/features/room_bookings.feature b/features/room_bookings.feature index 605fe7b..5023c50 100644 --- a/features/room_bookings.feature +++ b/features/room_bookings.feature @@ -10,8 +10,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | When I visit the room bookings page for "Sched 1" Then I should see "View Data" And I should see "09:00 - 10:00" @@ -27,8 +27,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | When I visit the room bookings page for "Sched 1" And I click "MW" Then I should see "View Data" @@ -62,8 +62,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -84,8 +84,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -107,8 +107,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -131,8 +131,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -159,8 +159,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -187,8 +187,8 @@ Feature: Rooms Page | CS | BLDG3 | 102 | 50 | false | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 96 | F2F | 4 | 100,101 | @@ -242,8 +242,8 @@ Feature: Rooms Page | CS | BLDG2 | 102 | 50 | true | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | TR | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | TR | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 50 | F2F | 4 | 100,101 | @@ -255,7 +255,7 @@ Feature: Rooms Page When I visit the room bookings page for "Sched 1" Then I should see "Generate Remaining" When I click the "Generate Remaining" button - Then I should see "Schedule generated with 100% satisfaction" + Then I should see "Schedule generated" Scenario: User can see that schedule dissatisfies a professor Given I am logged in as a user with first name "Test" @@ -266,20 +266,21 @@ Feature: Rooms Page | CS | BLDG2 | 102 | 50 | true | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | TR | 08:00 | 10:00 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | + | MW | 09:00 | 10:00 | LEC | + | TR | 08:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 50 | F2F | 4 | 100,101 | | 111 | 25 | F2F | 4 | 100 | And the following instructors exist for schedule "Sched 1": | id_number | first_name | last_name | middle_name | email | before_9 | after_3 | beaware_of | max_course_load - | 1001 | John | Doe | A | john@example.com | false | false | test | 1 - | 1002 | Jane | Smith | B | jane@example.com | true | false | | 1 + | 1001 | John | Doe | A | john@example.com | false | false | test | 3 + | 1002 | Jane | Smith | B | jane@example.com | true | false | | 2 When I visit the room bookings page for "Sched 1" Then I should see "Generate Remaining" When I click the "Generate Remaining" button - Then I should see "Schedule generated with 90% satisfaction" + Then I should see "Schedule generated" Scenario: User receives an error when schedule is infeasible Given I am logged in as a user with first name "Test" @@ -289,8 +290,7 @@ Feature: Rooms Page | CS | BLDG1 | 101 | 30 | true | true | true | true | And the following time slots exist: | day | start_time | end_time | slot_type | - | MWF | 09:00 | 10:00 | "LEC" | - | MW | 08:00 | 9:35 | "LEC" | + | MWF | 09:00 | 10:00 | LEC | And the following courses and their sections exist for schedule "Sched 1": | course_number | max_seats | lecture_type | num_labs | sections | | 110 | 20 | F2F | 4 | 100,101 | diff --git a/features/step_definitions/instructors_steps.rb b/features/step_definitions/instructors_steps.rb index 90cb526..78d9963 100644 --- a/features/step_definitions/instructors_steps.rb +++ b/features/step_definitions/instructors_steps.rb @@ -19,7 +19,7 @@ before_9: hash['before_9'] == 'true', after_3: hash['after_3'] == 'true', beaware_of: hash['beaware_of'], - + max_course_load: hash['max_course_load'] || 1, schedule: # Associate instructors with the created schedule ) end diff --git a/spec/services/schedule_solver_spec.rb b/spec/services/schedule_solver_spec.rb index bd267c6..1cc18ef 100644 --- a/spec/services/schedule_solver_spec.rb +++ b/spec/services/schedule_solver_spec.rb @@ -56,37 +56,52 @@ end end - context 'when timeslots conflict' do - it 'raises an error due to conflicting times' do - expect do - ScheduleSolver.solve([small_course, large_course], - [large_room], - [morning, friday_lab], - [amicable, evening_hater], - []) - end.to raise_error(StandardError, 'Solution infeasible!') - end - end + # NOTE: See commentary in schedule_solver.rb for overlap functionality + # context 'when timeslots conflict' do + # it 'raises an error due to conflicting times' do + # expect do + # ScheduleSolver.solve([small_course, large_course], + # [large_room], + # [morning, friday_lab], + # [amicable, evening_hater], + # []) + # end.to raise_error(StandardError, 'Solution infeasible!') + # end + # end context 'when a morning hater is assigned to a morning class' do - it 'returns a nonzero unhappiness' do - unhappiness = ScheduleSolver.solve([small_course], - [large_room], - [morning], - [morning_hater], - []) - expect(unhappiness).to be > 0 + it 'returns a schedule, with a warning about relaxed constraints' do + result, relax = ScheduleSolver.solve([small_course], + [large_room], + [morning], + [morning_hater], + []) + expect(result.nil?).to be false + expect(relax).to be true end end context 'when a evening hater is assigned to a evening class' do - it 'returns a nonzero unhappiness' do - unhappiness = ScheduleSolver.solve([small_course], - [large_room], - [evening], - [evening_hater], - []) - expect(unhappiness).to be > 0 + it 'returns a schedule, with a warning about relaxed constraints' do + result, relax = ScheduleSolver.solve([small_course], + [large_room], + [evening], + [evening_hater], + []) + expect(result.nil?).to be false + expect(relax).to be true + end + end + + context 'when a professor is forced to be in two places at once' do + it 'return an error' do + expect do + ScheduleSolver.solve([small_course, large_course], + [small_room, large_room], + [morning], + [amicable], + []) + end.to raise_error(StandardError, 'Solution infeasible!') end end end @@ -103,11 +118,11 @@ end end - context 'professor is contracted for multiple classes' do - it 'assigns the professor to multiple classes' do + context 'professors teach multiple courses' do + it 'finds a schedule' do result = ScheduleSolver.solve([small_course, large_course], [large_room], - [morning, evening], + [morning, evening, friday_lab], [amicable], []) expect(result.nil?).to be false