US20210342720A1 - Event Recommendation System - Google Patents
Event Recommendation System Download PDFInfo
- Publication number
- US20210342720A1 US20210342720A1 US17/375,292 US202117375292A US2021342720A1 US 20210342720 A1 US20210342720 A1 US 20210342720A1 US 202117375292 A US202117375292 A US 202117375292A US 2021342720 A1 US2021342720 A1 US 2021342720A1
- Authority
- US
- United States
- Prior art keywords
- event
- attendee
- candidate
- reoccurring
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims 4
- 238000007726 management method Methods 0.000 description 90
- 230000000474 nursing effect Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 17
- 230000003993 interaction Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 230000008676 import Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003442 weekly effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
- G06Q10/1095—Meeting or appointment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Definitions
- the present disclosure relates to event management and recommendation.
- the present disclosure relates to an interface for selecting, ordering, and presenting events for a candidate attendee.
- a student at a higher education institution must typically interact with multiple systems, web sites, and paper documents to complete tasks. The student may need to complete tasks such as scheduling classes, asking questions, and paying bills.
- the interaction paradigm in the higher education industry as a whole is a self-service model.
- Students are faced with the challenge to choose courses in which to enroll for every academic period. Depending on the context, a student may have many, or few, alternative courses from which to choose. In cases in which many alternative courses are available, the best choice of courses may not be transparent to the student.
- a virtual assistant is a software agent used to execute tasks. Generally, a virtual assistant executes a simple task responsive to a request. For example, responsive to the voice command “What is the weather like today?” a virtual assistant obtains, and displays, today's weather forecast. A virtual assistant may accept an instruction from a user via voice commands, text commands, and/or user interaction with a user interface.
- FIGS. 1A-1E illustrate a system in accordance with one or more embodiments
- FIGS. 2A-2B illustrate event management interfaces in accordance with one or more embodiments
- FIG. 3 illustrates an example set of operations for generating an event schedule in accordance with one or more embodiments
- FIG. 4 illustrates an example set of operations for recommending an event for a candidate attendee in accordance with one or more embodiments.
- FIG. 5 shows a block diagram that illustrates a computer system in accordance with one or more embodiments.
- One or more embodiments include an event recommendation system.
- the event recommendation system recommends events for a candidate attendee.
- the event recommendations are based on (a) the characteristics of the candidate attendee and (b) characteristics of prior attendees that attended a prior occurrence of the event.
- a prior attendee may have a positive experience or a negative experience with the prior occurrence of the event.
- a positive experience may be defined, for example, as enjoying the event, completing the event, or performing well in the tasks or evaluation metrics associated with the event.
- a negative experience may be defined, for example, as not enjoying the event, not completing the event, or not performing well in the tasks or evaluation metrics associated with the event.
- An event is recommended to a candidate attendee if the candidate attendee has similar characteristics to a prior attendee that had a positive experience.
- An event is not recommended to a candidate attendee if the candidate attendee has similar characteristics as a prior attendee that had a negative experience.
- a machine-learning algorithm may continually update a database of attendee characteristics associated with positive experiences and attendee characteristics associated with negative experiences. The database is used to generate the event recommendations.
- An example of an event, that may be recommended, is a course in a higher education institution.
- a course is a unit of academic content.
- English 4 and Introduction to Nursing are courses.
- Courses may be offered on a reoccurring basis (for example, every semester over several years).
- Another example of an event, that may be recommended, is a class in a higher education institution.
- a class is a specific instance of a course.
- Physics 101 Section A, on Wednesdays in the Spring 2017 semester with Professor Smith, is an example of a class.
- One or more embodiments select and recommend courses in a higher education institution.
- a machine-learning algorithm builds a database of characteristics of students that have done well in a course. Alternatively, or additionally, the machine-learning algorithm builds a database of characteristics of students have not done well in the course.
- the system recommends the course to a student if the characteristics of the student are similar to the characteristics of students that have done well in the course.
- the system does not recommend the course to a student if the characteristics of the student are similar to the characteristics of students have not done well in the course.
- the system may recommend or not recommend a course to a current student based on an event score computed for the current student.
- the event score is computed based on a comparison of the characteristics of the current student with characteristics of prior students that previously took the course. If the characteristics of a current student and the characteristics of a prior student meet a similarity threshold, then the prior student is determined to be similar to the current student.
- the system identifies a subset of the prior students that are determined to be similar to the current student. If the number or percentage of students, in the subset of prior students, that performed well in the course meets a recommendation threshold, then the course is recommended to the current student. If the number or percentage of students, in the subset of prior students, that performed well in the course does not meet the recommendation threshold, then the course is not recommended to the current student.
- One or more embodiments select and recommend classes to a student.
- the system may identify a set of candidate classes corresponding to a recommended course.
- the system may select one of the candidate classes based on a location and time of the class, and the student's expected location at or near that time. As an example, Joe has a first class on the north side of a large campus from 9 am to 10:30 am on Wednesdays.
- the system may recommend a second class, from a set of candidate classes, that is scheduled for the north side of campus at 11 am on Wednesdays. The time and location proximity between the classes helps the student quickly travel from the first class to the second class.
- FIG. 1A illustrates an event management and recommendation system 100 in accordance with one or more embodiments.
- the event management and recommendation system 100 includes an event management interface 110 , scheduling engine 120 , template modeling engine 140 , event recommendation engine 180 , and database 130 .
- the event management and recommendation system 100 may include more or fewer components than the components illustrated in FIG. 1A .
- the components illustrated in FIG. 1A may be local to or remote from each other.
- the components illustrated in FIG. 1A may be implemented in software and/or hardware. Each component may be distributed over multiple applications and/or machines. Multiple components may be combined into one application and/or machine. Operations described with respect to one component may instead be performed by another component.
- an event 124 is a planned occurrence.
- an event 124 is a class or course in a higher education institution.
- an event 124 is a business meeting.
- an event 124 is a practice session for a team sport.
- an event schedule 122 is an ordered set of events corresponding to an event order 126 .
- the event order 126 may specify the arrangement of a set of events 124 with respect to other events and/or with respect to a timeline.
- the event order 126 may organize events into time slots.
- the event order 126 may specify that four courses are scheduled in the Spring 2016 semester.
- the event order may specify time slots throughout the week in which reoccurring classes are to be scheduled.
- the scheduling engine 120 includes hardware and/or software configured to manage an event schedule 122 .
- the scheduling engine 120 may determine how to schedule an event with respect to other events.
- the scheduling engine 120 may determine an event order 126 for the events 124 based on a set of ordering rules 138 .
- the ordering rules 138 prescribe an order in which events must be completed.
- the scheduling engine 120 may modify the event schedule according to user input and the set of ordering rules 138 .
- the scheduling engine 120 may enroll an attendee in events, based on the event schedule.
- the scheduling engine 120 may be configured to schedule events such as courses and/or classes.
- FIG. 1B illustrates a course scheduling engine 120 a .
- Course scheduling engine 120 a is configured to generate a course schedule 122 a comprising a set of courses 124 a.
- a course 124 a is a unit of academic content.
- Physics 101 is a course.
- Introduction to Nursing is a course.
- a course 124 a may be, as non-limiting examples, formatted as a lecture, seminar, or lab.
- a course 124 a may be an internship, to be completed for credit.
- Courses may be offered on a reoccurring basis.
- Math 101 is offered twice per semester over the course of several years.
- English 330 is offered in alternate Spring quarters.
- a course schedule 122 a (also referred to herein as a course plan) is an ordered set of courses to be completed towards an academic goal.
- the academic goal may be the completion of an academic program.
- the course schedule may correspond to the requirements for completion of an undergraduate degree, graduate degree, or certificate program.
- a course schedule 122 a may span across multiple academic terms.
- the course schedule 122 a may include courses to be completed over eight semesters comprised in a four-year plan.
- course order 126 a is the order in which courses are configured.
- Courses in a course plan may be grouped by academic term. For example, four courses are assigned to the Spring 2020 semester. Courses in a course plan may be ordered without scheduling a specific time slot. As an example, four courses are listed in Spring 2020, but days and times corresponding to the courses are not specified.
- FIG. 1C illustrates a class scheduling engine 120 b .
- Class scheduling engine 120 b is configured to generate a class schedule 122 b comprising a set of classes 124 b.
- a class 124 b is a particular offering of a course.
- Physics 101 is offered as Section A, taught by Professor Jones on Mondays, Wednesdays, and Fridays in the Spring 2018 semester.
- Physics 101 is also offered as Section B, taught by Professor Smith on Tuesdays and Thursdays in the Spring 2018 semester.
- a class 124 b may be associated with a specific time slot, as with Physics 101 in the previous example.
- a class may not be allocated a specific time slot.
- a final capstone project does not correspond to a particular time slot.
- a class 124 b may be an externship, thesis project, seminar, or internship.
- a class 124 b may be associated with a particular teacher.
- a class 124 b may be associated with a particular location.
- a class 124 b may be offered in-person or online.
- a class schedule 122 b is an ordered set of classes in a particular academic term.
- a class schedule 122 b may include three classes for the Spring 2019 semester.
- the class schedule 122 b may specify times, locations, and professors associated with each respective class.
- class order 126 b is the order in which classes are configured.
- the class order 126 b may include a specific time slot.
- a class schedule 122 b specifies that Nursing 301 A is scheduled prior to Nursing 330 C on Mondays and Wednesdays. Specifically, Nursing 301 A is scheduled Mondays and Wednesdays from 9:00 am-10:15 am. Nursing 330 C is scheduled Mondays and Wednesdays from 1:00 pm-3:00 pm.
- the event management interface 110 refers to hardware and/or software configured to facilitate communications between a user and the scheduling engine 120 and/or the event recommendation engine 180 .
- the event management interface 110 may render user interface elements.
- the event management interface 110 may receive user input via user interface elements. Examples of interfaces include a graphical user interface (GUI), a command line interface (CLI), a haptic interface, and a voice command interface. Examples of user interface elements include checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms.
- different components of the event management interface 110 are specified in different languages.
- the behavior of user interface elements is specified in a dynamic programming language, such as JavaScript.
- the content of user interface elements is specified in a markup language, such as hypertext markup language (HTML) or extensible markup language (XML) User Interface Language (XUL).
- the layout of user interface elements is specified in a style sheet language, such as Cascading Style Sheets (CSS).
- event management interface 110 is specified in one or more other languages, such as Java, C, or C++.
- the event management interface 110 is implemented on one or more digital devices.
- digital device generally refers to any hardware device that includes a processor.
- a digital device may refer to a physical device executing an application or a virtual machine. Examples of digital devices include a computer, a tablet, a laptop, a desktop, a netbook, a mobile handset, a smartphone, a personal digital assistant (“PDA”), and/or a client device.
- PDA personal digital assistant
- the event management interface 110 includes functionality to accept user input to configure an event schedule 122 .
- the event management interface may, for example, accept user input moving an event from one time period to another time period.
- the virtual assistant 102 includes hardware and/or software configured to assist the user in configuring an event schedule.
- the virtual assistant 102 may guide the user through the process of configuring the event schedule. Additionally, the virtual assistant 102 may assist the user in other tasks.
- the virtual assistant may assist a student with completing a college application. As other examples, the virtual assistant may assist the student with obtaining financial aid, paying bills, and obtaining a student identification.
- the virtual assistant 102 communicates with the user via a modal displayed on the event management interface 110 .
- the virtual assistant 102 may display a pop-up window displaying the text, “Hi, would you like to schedule your classes for the semester?”.
- the virtual assistant 102 may further be configured to receive user input.
- the virtual assistant displays buttons labeled “Yes” and “No.” Responsive to detecting user input selecting the “Yes” button, the virtual assistant may initiate event scheduling via the scheduling engine 120 .
- the virtual assistant 102 includes functionality to proactively initiate actions. As an example, the virtual assistant determines that financial aid paperwork is due in a week. Responsive to determining that financial aid paperwork is coming due, the virtual assistant 102 displays a message asking the user if the user would like to complete a financial aid application.
- the filters 112 are user-configurable guidelines for the scheduling engine 120 to use in selecting and ordering events.
- a filter 112 may cause the scheduling engine to disfavor, or refrain from, scheduling events before 2 pm.
- a filter 112 may cause the scheduling engine to disfavor, or refrain from, scheduling events during the weekend.
- a filter 112 may cause the scheduling engine to refrain from scheduling classes during a particular semester when the student will be interning at a company instead of taking classes.
- the filters 112 may be displayed via the event management interface 110 .
- a set of filters are displayed with corresponding slider buttons.
- the event management interface 110 may receive user input, via the slider buttons, to select a subset of the filters 112 .
- the database 130 is any type of storage unit and/or device (e.g., a file system, collection of tables, or any other storage mechanism) for storing data. Further, database 130 may include multiple different storage units and/or devices. The multiple different storage units and/or devices may or may not be of the same type or located at the same physical site. Further, database 130 may be implemented or may execute on the same computing system as the event management interface 110 , scheduling engine 120 , event recommendation engine 180 , and template modeling engine 140 . Alternatively, or additionally, the database 130 may be implemented or executed on a computing system separate from the event management interface 110 , scheduling engine 120 , event recommendation engine 180 , and template modeling engine 140 . The database 130 may be communicatively coupled to the event management interface 110 , scheduling engine 120 , event recommendation engine 180 , and template modeling engine 140 via a direct connection or via a network.
- database 130 may be communicatively coupled to the event management interface 110 , scheduling engine 120 , event recommendation engine 180 , and template modeling engine 140 via a direct connection or via
- event availability 132 describes times in which an event may be scheduled.
- the events 124 are college classes.
- the event availability 132 specifies times that a particular class is offered in a particular semester (e.g., Sculpting 101 is offered in Section A, Mondays 8 am-10 am and Section B, Wednesdays 4 pm-6 pm).
- the events 124 are fitness classes.
- the event availability 132 specifies times that a particular fitness class is offered at a gym (e.g. Spinning is offered Tuesday, Thursday, and Saturday from 7 am-8 am).
- the requirements 134 are events to be completed by the attendee to meet an event completion target.
- the event completion target is the completion of the coursework needed to earn a law degree.
- the requirements 134 include completing 20 core courses corresponding to the law degree and 12 units of elective courses.
- the records 136 describe prior occurrences of events in association with attendees.
- the records 136 may include a list of attendees that attended a particular event. Records 136 may further specify event outcomes.
- the event is a course.
- the records 136 include information specifying students who have enrolled in the course. The records 136 further specify whether each student has passed or failed the course. As another example, the records may specify each student's letter grade in the course. Records 136 may correspond to events at the institution for which an event or event schedule is being generated. Alternatively, or additionally, records 136 may correspond to events at other institutions, such as classes completed by a transfer student.
- the ordering rules 138 prescribe an order in which events must be completed.
- the course Painting I is a prerequisite for the course Painting II. Accordingly, an ordering rule 138 prohibits Painting II from being positioned before or concurrently with Painting I in a course schedule.
- an ordering rule specifies that the lab section of Chemistry 101 must be scheduled later in the week than the lecture section of Chemistry 101 .
- the event recommendation engine 180 includes hardware and/or software configured to select an event for recommendation to a particular attendee.
- the event recommendation engine 180 may implement a machine-learning algorithm to select events for recommendation based on attendee characteristics 182 and/or records 136 .
- the event recommendation engine 180 may base the selection of events for recommendation on additional factors such as requirements 134 and ordering rules 138 .
- the attendee characteristics 182 are parameters describing an attendee.
- Attendee characteristics may include academic characteristics such as Psychology Major and 3.5 GPA.
- Attendee characteristics 182 may describe time constraints on an attendee.
- a student has a full course load or is working full-time in addition to attending school.
- Attendee characteristics 182 may include behavioral characteristics.
- the system may obtain web browsing data specifying that an attendee spends a certain amount of time per day browsing the internet.
- Attendee characteristics 182 may correspond to candidate attendees, for whom recommendations are being generated.
- Attendee characteristics 182 may correspond to prior attendees, who may or may not have enrolled in a particular event in the past.
- the event score 186 is a scoring value attributed to a particular event for a particular attendee.
- the event score may be determined based on a comparison of attendee characteristics 182 of a candidate attendee for an event and attendee characteristics 182 of prior attendees that attended a prior instance of the event.
- the event score 186 may be a measure of a candidate attendee's likelihood of having a positive experience with the event.
- the event recommendation engine 180 may be configured to recommend events such as courses and/or classes.
- FIG. 1D illustrates a course recommendation engine 180 a .
- Course recommendation engine 180 a is configured to recommend one or more courses 124 a for a student.
- attendee characteristics 182 a include the features described above with respect to attendee characteristics 182 in FIG. 1A .
- attendee characteristics 182 a may include characteristics that are pertinent to an overall plan of study.
- attendee characteristics 182 a may include a declared major and a target number of years for degree completion.
- course score 186 a is similar to event score 186 described with respect to FIG. 1A .
- Course score 186 a is based on a comparison of attendee characteristics 182 a of a candidate attendee for a course and attendee characteristics 182 a of prior attendees that have enrolled in a prior occurrence of the course.
- FIG. 1E illustrates a class recommendation engine 180 b .
- Class recommendation engine 180 b is configured to recommend one or more classes 124 b for a student.
- attendee characteristics 182 b are similar to the attendee characteristics 182 described above with respect to FIG. 1A . Additionally, attendee characteristics 182 b may include availability information. As an example, attendee characteristics 182 b may include attendee availability obtained from a linked work calendar. Attendee characteristics 182 b may include professor preferences. As an example, a student may specify that the student does not want to take any classes with Professor Smith. Attendee characteristics 182 b may include locational information. As an example, the attendee characteristics 182 b specify that a student works in New Jersey on Monday mornings.
- class score 186 b is similar to event score 186 , described above with respect to FIG. 1A .
- Class score 186 b is based on a comparison of attendee characteristics 182 a of a candidate attendee for a class and attendee characteristics 182 a of prior attendees that have enrolled in the class in prior academic terms.
- Class score 186 b may be further based on the target attendee's availability for the academic term.
- Class score 186 b may further be based on the target attendee's preferences with regard to times, professors, and locations.
- a template plan 142 is a default event schedule. Embodiments herein include using the template plan as a starting point for generating an event schedule customized for a particular attendee.
- a university department head may configure a template plan corresponding to a suggested plan of study for completing degree requirements.
- the system may customize the template plan, for an attendee, based on requirements 134 for the attendee's degree, and credits transferred-in or coursework already completed by the attendee.
- template plans may vary by program. A first department may have a 4-year template plan, while a second department has a 5-year template plan. The system may select the appropriate template plan based on the attendee and/or program.
- the template modeling engine 140 updates the template plans 142 based on user input.
- the template modeling engine 140 may implement a machine-learning algorithm to modify a template plan 142 based on a history of modifications to the template plan.
- the system identifies a pattern of multiple attendees rescheduling math classes from prior to 9 am to after 9 am. Based on the pattern, the system modifies the template plan to exclude math classes prior to 9 am.
- the system identifies a pattern of multiple attendees rescheduling chemistry courses from a first semester in a course plan to later semesters in the course plan. Based on the pattern, the system modifies the template plan to exclude chemistry courses from the courses selected for the first semester in a course plan.
- the calendar application 150 is an application which includes data describing an attendee's availability.
- the calendar application 150 may be external to the event management and recommendation system.
- the event management system and recommendation system 100 is associated with a university.
- the event management and recommendation system 100 is used to manage an attendee's continuing education class schedule.
- the calendar application 150 corresponds to the attendee's employment.
- the calendar application 150 tracks meetings associated with the attendee's employment.
- the calendar application 150 may be integrated within the event management and recommendation system 100 .
- the calendar application 150 may be an application for tracking the candidate attendee's extracurricular activities at the university for which classes are being scheduled.
- the event management and recommendation system 100 may be communicatively coupled to the calendar application 150 .
- the event management and recommendation system 100 may obtain data, from the calendar application 150 , for tailoring the event schedule 122 to the candidate attendee's availability.
- FIG. 2A illustrates an example of a course management interface 110 a in accordance with one or more embodiments.
- a course management interface 110 a is a type of event management interface 110 .
- the course management interface 110 a illustrates generating, displaying, and modifying a course plan 122 a .
- the example is equally applicable to generating, displaying and modifying any type of an event schedule 122 .
- Components and operations described in relation to this example should not be construed as limiting the scope of any of the claims.
- the course management interface 110 a is used to configure a course plan 122 a for a student.
- the course plan comprises a set of courses 124 a that satisfy the requirements for earning a nursing degree at Victory University.
- a first subset of the courses 124 a corresponds to transferred units 202 .
- Transferred units 202 include units corresponding to courses which the student has already completed at another institution.
- a second subset of the courses 124 a correspond to courses 204 which are to be completed at Victory University.
- the courses to be completed 204 are displayed in association with a corresponding period of time, a semester.
- the courses in a course plan 122 a may represent placeholders for classes to be included in a schedule for a particular semester.
- the course plan includes Nursing Elective in the Spring 2020 semester.
- the system Based on the course plan, the system generates a schedule for the Fall 2020 semester which includes a particular nursing elective, Nursing 414 .
- the courses 124 a may be reordered based on user input.
- the system may receive user input modifying the courses.
- User input modifying the courses may include deleting, reordering, or moving a course to another term.
- the course management interface 110 a may permit the user to drag and drop a course from one semester to another semester (e.g., a course may be dragged from Spring 2019 and dropped to Spring 2018).
- the system may further present a search interface (not shown). Via the search interface, the system may accept user input to search for available courses. The system may accept user input to add courses directly to a time period. The system may further accept user input adding a new time period (e.g., a summer term or an additional semester to finish program requirements).
- a search interface Via the search interface, the system may accept user input to search for available courses. The system may accept user input to add courses directly to a time period. The system may further accept user input adding a new time period (e.g., a summer term or an additional semester to finish program requirements).
- the course management interface 110 a displays a sidebar to show general education requirements 206 and major requirements 208 .
- the system may update the requirements panel to reflect requirements satisfied by the course plan.
- NURS 412 210
- the system updates the major requirements panel 208 .
- the course management interface 110 a updates the major requirements panel 208 to include a check mark, indicating that the NURS 412 requirement is included in the class schedule ( 166 ).
- the course management interface 110 a displays an anticipated graduation date 212 .
- the course management interface 110 a may update the anticipated graduation date 212 as the course schedule is reconfigured.
- the course management interface 110 a displays units completed 214 .
- the system may determine the units completed 214 based on the records 136 .
- the units completed 214 correspond to 24 transferred units ( 202 ).
- the course management interface 110 a displays units planned 216 .
- the system may determine the units planned 216 based on the course plan.
- the units planned 216 correspond to the 96 units planned via the courses to be completed 204 .
- the system may update the units planned as the course plan is configured. As an example, if a user were to remove a 4-unit course, the course management interface 110 a would update to display 92/96 units planned instead of 96/96 units planned.
- the system may display a metric in the form (units completed)/(units included in plan)/(units remaining).
- a metric in the form (units completed)/(units included in plan)/(units remaining).
- a student has completed 2 units, has 2 units planned in a course plan, and needs 4 units to satisfy a requirement.
- the system displays the metric 2/2/4 for the student, indicating the student's (units completed)/(units included in plan)/(units remaining).
- the course management interface 110 a may further display a wish-list element (not pictured).
- the wish-list element may accept user input adding courses to a wish-list of courses. Based on the wish-list, the system may prioritize courses for selection.
- FIG. 2B illustrates an example of a class management interface 110 b in accordance with one or more embodiments.
- a class management interface 110 b is a type of event management interface 110 .
- the class management interface 110 b illustrates generating, displaying, and modifying a class schedule 122 b .
- the example is equally applicable to generating, displaying and modifying any type of an event schedule 122 .
- Components and operations described in relation to this example should not be construed as limiting the scope of any of the claims.
- the class management interface 110 b is used to configure a class schedule 122 b for a particular candidate attendee, Chris.
- the class schedule 122 b includes a set of classes 124 b for the Fall 2017 semester ( 226 ).
- the class schedule 122 b is a part of Nursing Plan 1.
- Nursing Plan 1 corresponds to an overall course plan 122 a for Chris, as illustrated in FIG. 2A .
- the class schedule 122 b includes four classes 124 b .
- SCI 111 Chemistry ( 220 ) is a course to be taken in the Fall 2017 semester. Two class sections ( 220 a , 220 b ) of course 220 are available.
- the class management interface 110 b displays both sections, along with the corresponding time 232 , location 234 , professor 236 , and availability 238 .
- SCI 111 Section A ( 220 a ) is offered Mondays and Wednesdays from 2 pm-4 pm ( 232 ).
- SCI 111 Section A ( 220 a ) is taught by instructor Jane Oritz ( 236 ).
- SCI 111 Section A ( 220 a ) is to be held in Angela Hall 322 ( 234 ).
- SCI 111 Section A 12 of 32 seats are available ( 238 ) for SCI 111 Section A.
- SCI 111 Section B 220 b
- SCI 111 Section B 220 b
- SCI 111 Section B 220 b
- SCI 111 Section B 220 b
- SCI 111 Section B 220 b
- SCI 111 Section B 220 b
- Angela Hall 322 234
- 12 of 32 seats are available ( 238 ) for SCI 111 Section B ( 220 b ).
- the class management interface 110 b further displays course 222 —GFA 225 Art of the Giant Monster. Two sections of course 222 are available. Each section ( 222 a , 222 b ) is displayed along with the corresponding time 232 , location 234 , professor 236 , and availability 238 .
- the class management interface 110 b further displays course 224 -NURS 301 Nursing Care of Adult I.
- Course 224 includes a clinical section ( 224 a ) and a theory section ( 224 b ). Each section ( 224 a , 224 b ) is displayed along with the corresponding time 232 , location 234 , professor 236 , and availability 238 .
- the class management interface 110 b displays the classes 124 b both in a calendar and in a sidebar. Via the sidebar, the class management interface 110 b may accept user input selecting a class section. As an example, SCI 111 Section B has been selected, as indicated by the checkmark in the sidebar. Responsive to receiving user input selecting a section in the sidebar, the class management interface 110 b may update the calendar. Alternatively, or additionally, the class management interface 110 b may accept user input modifying the schedule through interaction with the calendar. As an example, the class management interface 110 b may accept user input dragging-and-dropping SCI 111 from Monday to Tuesday. Responsive to the user input, the class management interface 110 b may switch the scheduled class from SCI 111 Section A, on Mondays and Wednesdays, to SCI 111 Section B, on Tuesdays and Thursdays.
- the class management interface 110 b includes functionality to accept user input to filter class selections.
- the class management interface 110 b displays a button 228 labeled “Filter Class Selections.” Responsive to detecting user interaction with the “filter class selections” button, the system may display a modal with a set of filters.
- the modal may include sliders marked “Morning (before 9 am); Evening (after 5 pm); Late Evening (after 9 pm); and Weekends.
- the interface may accept user input to select or deselect a time preference by adjusting the sliders. Classes corresponding to selected time preferences may be recommended or scheduled by the system. Classes corresponding to deselected time preferences may not be recommended or scheduled by the system.
- the modal may further include sliders or other UI elements to allow a user to select formats (e.g. onsite or online).
- the modal may further include sliders or other UI elements to allow a user to select locations (e.g. San Jose or San Ramon campus).
- the class management interface 110 b includes functionality to accept user input to manually block times.
- the class management interface 110 b displays a button 228 labeled “block times.” Responsive to user interaction with the “block times” button, the class management interface 110 b may permit a user to highlight portions of the calendar. Highlighted portions of the calendar may be blocked. For blocked times, the system may refrain from recommending or scheduling a class.
- the class management interface 110 b includes functionality for the user to import availability from a calendar, such as a work calendar or social calendar.
- the class management interface 110 b displays a button 242 labeled “import calendar.” Responsive to user interaction with the “import calendar” button, the class management interface 110 b imports a calendar.
- the system may use information imported from the calendar to block times when the candidate attendee is unavailable.
- the system may further identify locations based on information imported from the calendar.
- the system may determine a commute time between the location of the event and the location of a class.
- the system may block times when the candidate attendee is not available by greying out portions of the calendar with time constraints 230 .
- the time constraints 230 show that Chris is not available for courses between 9 am and 4 pm on Mondays, Tuesdays, Wednesdays, and Thursdays.
- the time constraints 230 further show that Chris is not available for courses between 10 am and 2 pm on Fridays.
- the class management interface 110 b may display an alert.
- the class management interface 110 b displays an alert 240 , indicated by an explanation mark, on class 222 b on the calendar. Responsive to user interaction with the alert, the class management interface 110 b may display a modal explaining the alert. If a user selects the alert, the class management interface 110 b may display a modal reading, “(!) Potential Timing Conflict: Your commute is 20 minutes from work and this section starts immediately after. The only other option is a section with a waitlist with the same conflict. How should we proceed?” The modal may include buttons labeled “Switch it,” “Keep it,” and “Choose a new course.” Responsive to user interaction with a button, the class management interface may modify the schedule and/or remove the alert.
- FIG. 3 illustrates an example set of operations for generating an event schedule in accordance with one or more embodiments.
- One or more operations illustrated in FIG. 3 may be modified, rearranged, or omitted altogether. Accordingly, the particular sequence of operations illustrated in FIG. 3 should not be construed as limiting the scope of one or more embodiments.
- the scheduling engine determines, for an attendee, events in an initial order (Operation 302 ).
- the scheduling engine may determine the initial order of events for the attendee based on completed events corresponding to the attendee.
- the scheduling engine may further determine the initial order of events based on to-be-completed events.
- the scheduling engine identifies events in an initial order for a student. The events satisfy the requirements for a Bachelor of Arts degree in English.
- the scheduling engine determines that the student has completed a portion of the courses required for the degree.
- the scheduling engine selects courses, from a set of required courses in the English program, which the student has not completed.
- the scheduling engine identifies a set of courses to-be-completed to satisfy the requirements for the degree.
- the scheduling engine may identify events based on event recommendations generated by the event recommendation engine, as described below in Section 5 .
- the scheduling engine may determine the events in the initial order based on ordering rules. As an example, the scheduling engine generates a course plan comprising a set of courses. The scheduling engine orders the set of courses such that prerequisite requirements are met for each of the courses.
- the scheduling engine determines the initial event order based on attendee availability.
- the attendee availability may be provided by the attendee.
- the system displays, via the event management interface, a pop-up window for configuring filters.
- the attendee who works from 8 am to 5 pm on weekdays, selects a filter dictating that events are only to be scheduled on evenings and weekends.
- the system may obtain attendee availability data from a calendar application.
- the system may execute a request to pull scheduling data via a web service associated with a calendar application. Prior to obtaining information from a calendar application, the system may request, from the attendee, access to the calendar.
- the virtual assistant displays the text, “May I import your work calendar?”.
- the scheduling engine determines the events, in the initial order, based on event location.
- the scheduling engine includes the classes Math 101 A and Science 3 in a class schedule. Math 101 A is held on Mondays and Wednesdays at 9 am on the north side of Victory University's Santa Clara campus. Science 3 B is held on Mondays and Wednesdays at 1 pm on the west side of Victory University's Santa Clara campus.
- the scheduling engine determines whether to select section A, B, or C of another class to be scheduled, English 4 .
- the scheduling engine determines the walking path between Math 101 A, Science 3 B, and each section of English 4 .
- the scheduling engine selects English 4 C for the schedule, because English 4 C is held Mondays and Wednesdays at 11 am along a convenient walking path between Math 101 A and Science 3 B.
- the scheduling engine may further base event selection on a student's schedule outside of the institution corresponding to the events. As an example, a student works in San Francisco on Friday mornings. Accordingly, the system selects a class which is held in San Francisco on Friday afternoons.
- the scheduling engine determines the events, in the initial order, based on a template plan.
- the scheduling engine may locate a stored template plan corresponding to a particular event schedule.
- the system is configuring a course plan which includes the courses required to earn a certificate in early childhood education.
- the system locates a stored early childhood education template plan comprising an ordered set of courses which a student could take over three semesters.
- the system presents the events, in the initial order, corresponding to the early childhood education template plan.
- the system updates a template plan based on user input.
- the system may implement a machine-learning model to update the template plan.
- the system may keep, or remove, an event based on a score assigned to the event.
- the score may be assigned to the event based on historical user selection of the event.
- the system presents a template plan comprising three required courses and a suggested elective course. A student modifies the event schedule to replace the suggested elective course with a different elective course.
- the system decrements a score value for the suggested elective course. As students repeatedly reject the suggested elective course, the score for the suggested elective course is further decremented. When the score reaches a threshold value, the system no longer includes the suggested elected course in the template plan.
- the system presents the event management interface with the events in the initial order (Operation 304 ).
- the system may display the events with respect to a timeline.
- the system displays courses represented by blocks in association with respective semesters, as illustrated in FIG. 2A .
- the system may display the events in a plain-text list.
- the system may display the events in a weekly, daily, or monthly calendar (e.g., the weekly calendar illustrated in FIG. 2B ).
- the event management interface receives user input modifying the initial event order (Operation 306 ).
- the event management interface may receive user input modifying the initial event order via a drag-and-drop operation.
- the user drags a course from the Fall 2014 semester to the Spring 2013 semester.
- the user drags a class from Tuesday/Thursday to an alternate class section on Monday/Wednesday.
- the event management interface may receive user input modifying the event order via text input.
- the user deletes a weekly meeting from a first time slot. The user types the weekly meeting into a second time slot.
- the system may receive user confirmation accepting the events in the initial order.
- the user may elect not to modify the event order.
- the virtual assistant displays the text, “I've prepared a schedule for your classes this semester. Do you have any changes?”.
- the virtual assistant displays buttons labeled “Yes” and “No.”
- the system receives user input selecting “No,” indicating acceptance of the events in the initial order. If the user accepts the events in the initial order, then operations 306 - 314 may be omitted from the sequence of operations.
- the system determines whether the user input complies with ordering rules (Operation 308 ).
- the system may compare the new event order, indicated by the user input, with stored ordering rules.
- ordering rules As an example, a user attempts to move a particular course in a course schedule. The system determines both: (a) whether another course that is a prerequisite for the particular course is now scheduled prior to the particular course, and (b) whether the particular course is a prerequisite for a course that is now scheduled subsequent to the particular course.
- the system displays a proposed study plan for a physics bachelor's degree program.
- a user attempts to move a course, Physics 562 , to an earlier position in the first semester of the study plan.
- Physics 562 requires two years of prerequisite courses. Accordingly, the system determines that the modification does not comply with the ordering rules.
- the user attempts to move Physics 562 to a later position in the eighth semester of the study plan.
- Physics 562 is a prerequisite for Physics 570 , scheduled in the seventh semester of the study plan. Accordingly, the system determines that the modification does not comply with the ordering rules.
- the user attempts to move Physics 522 to a later position in the fifth semester in the study plan.
- the prerequisites for Physics 522 are scheduled prior to the fifth semester.
- Physics 522 is not a prerequisite for any other courses. Accordingly, the system determines that the modification complies with the ordering rules.
- the system may determine that a modification is permitted, or not permitted, based on non-course requirements.
- enrollment in a particular class may be contingent upon professor approval. If the system identifies a lack of professor approval for such a class, the system may determine that the modification does not comply with the ordering rules.
- course enrollment may be contingent on a student scoring above a threshold score on an entrance exam. If the system identifies that a student scored above the threshold score, the system may determine that the addition of the course to a course plan complies with the ordering rules.
- the system modifies the event order (Operation 310 ).
- the system may modify the event order upon determining that the user input complies with the ordering rules.
- the system may modify the order of events, in the event schedule, as directed by the user.
- the system refrains from modifying the event order. (Operation 312 ).
- the system may refrain from modifying the event order upon determining that the user input does not comply with the ordering rules.
- the system may retain the initial order.
- the system determines whether additional user input is received modifying the event order (Operation 314 ). As an example, the system may detect user input moving a second event to a different position in the timeline via a drag-and-drop operation. If the system receives additional user input modifying the event order, then the system may repeat operations 308 - 312 , as described above.
- the scheduling engine finalizes the event schedule. (Operation 316 ).
- the scheduling engine may finalize the event schedule upon determining that no additional user input has been received modifying the event order.
- the scheduling engine may finalize the event schedule upon receiving an instruction, from the user, to finalize the event schedule.
- the system detects that the user has clicked a “Complete Plan” button on the event management interface.
- the scheduling engine may finalize the event schedule by saving the event schedule.
- the scheduling engine may save the event schedule to the database and/or a device associated with the attendee.
- the scheduling engine may enroll the attendee in events based on the event schedule.
- the system generates an event schedule comprising the attendee's classes for a semester.
- the scheduling engine enrolls the attendee in the classes via a university enrollment system.
- the system monitors an event for availability changes.
- the system has generated a class schedule for a student for a semester.
- the system periodically obtains enrollment data for the classes in the schedule via a university enrollment system.
- the system may, for example, execute a polling operation via an exposed Application Programming Interface (API) of a university enrollment system.
- API Application Programming Interface
- the system may execute an appropriate action. Appropriate actions may include notifying the attendee and/or enrolling the attendee in the event.
- the system determines that there is only one seat left in a class. Accordingly, the system enrolls the attendee in the class and transmits a notification to the attendee.
- the system determines that a class in an attendee's schedule has become full.
- the system may present a message to the attendee asking whether the attendee wants to be placed on a wait list.
- the system may modify the attendee's schedule to replace the full class with an available class.
- the system may generate a first event schedule based on a previously-generated event schedule.
- the system generates a course plan which includes courses over 5 semesters.
- the course plan specifies four courses for the Spring 2018 semester.
- the system Based on the course plan, the system generates a class schedule for the Spring 2018 semester, including four classes corresponding to the four courses in the course plan.
- the system may update a course plan based on classes in a class schedule.
- a course plan includes English 101 in the Spring 2018 semester.
- the system determines that English 101 has been scheduled in the Fall 2017 semester. Accordingly, the system updates the course plan to move English 101 from the Spring 2018 semester to the Fall 2017 semester.
- the system identifies a new student enrolled in a nursing program at Victory University.
- the system determines a proposed course plan for the student.
- the system identifies a template plan.
- the template plan lists thirty-two courses, arranged as four courses per semester over eight semesters. Together, the thirty-two courses satisfy the requirements for the nursing program.
- the system identifies records corresponding to the student's transfer credits. The student has completed six courses that satisfy various requirements of the nursing program. Accordingly, the system adjusts the course plan to omit courses for which the student has already fulfilled the corresponding requirement.
- the system presents, to the student via the virtual assistant, the message, “Hi! Are you ready to make a course plan for your nursing degree?”.
- the system displays, below the message, buttons labeled “Yes” and “No.”
- the system receives user input selecting the “Yes” button.
- the event management interface displays a visual representation of the course plan.
- the course plan may be displayed via a timeline of semesters as illustrated in FIG. 2A .
- the system receives user input adjusting the position of a course in the plan.
- the student drags and drops the course Adult Nursing Care III from Fall 2019 to Spring 2018.
- the system analyzes the user input in light of stored ordering rules.
- the ordering rules dictate that Adult Nursing Care III must be taken subsequent to Adult Nursing Care II.
- the system determines that the user input would result in Adult Nursing Care II and Adult Nursing Care III being taken concurrently. Accordingly, the system determines that the user input does not comply with the ordering rules.
- the system refrains from modifying the event order.
- the system displays, via the virtual assistant, the message, “Sorry, you cannot take Adult Nursing Care III until you have passed Adult Nursing Care II.”
- Adult Nursing Care III remains in the Fall 2019 position.
- the system receives additional user input.
- the student drags and drops Adult Nursing Care III from Fall 2019 to Spring 2019.
- the system determines that the second user modification would result in Adult Nursing Care III being scheduled subsequent to Adult Nursing Care II. Accordingly, the system determines that the user input complies with the ordering rules.
- the system modifies the event order according to the user input.
- the system displays, via the virtual assistant, the message, “OK, I made the changes. Do you want to make any other changes?”
- the system displays, below the message, buttons labeled “Yes” and “No.”
- the system receives user input selecting “No.”
- the system finalizes the schedule by storing the study plan to the database.
- the system determines that a student at Victory University has not enrolled in any courses for the upcoming Fall 2017 semester. Accordingly, the system determines a proposed class schedule for the student for the upcoming semester.
- the system identifies a previously generated course plan for the student (e.g., the course plan shown in FIG. 2A ).
- the system identifies four courses that are in the student's course plan for the Fall 2017 semester.
- the system further identifies records corresponding to classes the student has completed at Victory University.
- the system further identifies records corresponding to the student's transfer credits. Based on the courses in the course plan, and the student's completed classes, the system generates an initial class schedule.
- the system presents, to the student via the virtual assistant, the message, “Hi! Are you ready to make a class schedule for next semester?”.
- the system displays, below the message, buttons labeled “Yes” and “No.”
- the system receives user input selecting the “Yes” button.
- the class management interface displays a visual representation of the class schedule.
- the class schedule may be displayed via a weekly calendar as illustrated in FIG. 2B .
- the system displays a modal comprising the message, “Would you like me to import your work calendar?”.
- the system displays, below the message, buttons labeled “Yes” and “No.”
- the system receives user input selecting the “Yes” button.
- the system imports data from a third-party calendar application. The data specifies that the student works Tuesdays and Thursdays from 7 am to 1 pm. Accordingly, the system adjusts the schedule so that the student does not have classes between 7 am and 1 pm on Tuesdays and Thursdays. Further, the system determines that the student has a 20-minute commute from work to school. Accordingly, the system schedules the classes on Tuesdays and Thursdays to allow for commute time.
- the system presents the updated proposed schedule to the student.
- the system presents a modal with the message, “Here is the schedule I have prepared. Would you like to make any changes?”.
- the system receives user input adjusting the position of a class in the schedule.
- the student drags and drops the course Math 101 from 9 am Monday to 2 pm Monday.
- the system analyzes the user input in light of class availability.
- the system determines that Math 101 is not available at 2 pm on Mondays, but Math 101 is available at 2 pm on Fridays.
- the system further determines that the student is available at 2 pm on Fridays.
- the system displays, via the virtual assistant, the message, “Math 101 is available at 2 pm on Fridays or 9 am on Mondays. What should we do?”.
- the system further displays buttons labeled “Keep it, and “Move it.” Responsive to detecting user selection of the “Move it” button, the system reschedules Math 101 to 2 pm on Fridays.
- the system receives additional user input.
- the student selects a button labeled “Filter Classes.”
- the system displays a modal displaying a list of campuses, professors, and course formats.
- the student deselects two professors. Responsive to identifying the deselected professors, the system changes the section of English 4 in the student's schedule, so that the student is not scheduled in any classes from any deselected professors.
- the system displays, via the virtual assistant, the message, “OK, I made the changes. Do you want to make any other changes?”
- the system displays, below the message, buttons labeled “Yes” and “No.”
- the system receives user input selecting “No.”
- the system finalizes the schedule by storing the class schedule to the database.
- FIG. 4 illustrates an example set of operations for selecting events for recommendation in accordance with one or more embodiments.
- One or more operations illustrated in FIG. 4 may be modified, rearranged, or omitted altogether. Accordingly, the particular sequence of operations illustrated in FIG. 4 should not be construed as limiting the scope of one or more embodiments.
- the event recommendation engine determines characteristics of a candidate attendee (Operation 402 ).
- the event recommendation engine may retrieve stored characteristics of the candidate attendee.
- the event recommendation engine may determine characteristics of the candidate attendee via user input.
- the virtual assistant presents the message, “Do you work nights?”.
- the system receives user input specifying that the candidate attendee works nights.
- the system stores “Works Nights” as a characteristic of candidate attendee.
- the event recommendation engine identifies records identifying a set of prior attendees that have attended an occurrence of a reoccurring event (Operation 404 ).
- the event recommendation engine may select a particular reoccurring event for analysis.
- the event recommendation engine may select a particular course from a subset of available courses.
- the subset of available courses may be selected based on factors such as prerequisite requirements and courses completed by the candidate attendee.
- the event recommendation engine may select a particular reoccurring event based on an event schedule and/or major.
- the recommendation engine identifies a potential elective class for recommending to Jane Doe in Fall 2020, based on a course plan stored for Jane Doe's English degree program.
- the event recommendation engine may select a reoccurring event based on another event that the candidate attendee attended.
- the candidate attendee completed a course, English 4 .
- the event recommendation selects a course, Literature 109 , because other students that completed English 4 also completed Literature 109 .
- the course, Literature 109 may be selected based further on determining that the candidate attendee's major is related to Literature 109 .
- the event recommendation engine may select a reoccurring event based on an interest profile corresponding to the candidate attendee.
- the interest profile may, for example, include interests of the candidate attendee obtained from web browsing data and/or surveys associated with the candidate attendee.
- the event recommendation engine may select a reoccurring event based on popularity of the event.
- the event recommendation engine may establish a threshold number or threshold percentage of event attendees to attend the reoccurring event in a prior time period. If the number of event attendees that attended the reoccurring event meets the threshold, the event recommendation engine may select the reoccurring event.
- the event recommendation engine identifies records corresponding to the prior attendees in association with the event.
- the event recommendation engine may analyze the records to identify characteristics of the prior attendees.
- the event recommendation engine may identify characteristics of prior attendees that had a positive experience with a prior occurrence of the event.
- the event recommendation engine identifies characteristics of prior attendees who have enrolled in and/or passed Chemistry 101 .
- the event recommendation engine may identify characteristics of prior attendees that had a negative experience with a prior occurrence of the event.
- the event recommendation engine identifies characteristics of prior attendees who have failed Chemistry 101 .
- the event recommendation engine identifies characteristics of prior attendees that did not enjoy an opera performance.
- the event recommendation engine computes an event score for the reoccurring event (Operation 406 ).
- the event recommendation engine may compute the event score based on a comparison of (a) characteristics of the candidate attendee and (b) characteristics of the set of prior attendees.
- the system may identify characteristics which are shared between the candidate attendee and the prior attendees.
- the system may identify characteristics which differ between the candidate attendee and the prior attendees.
- the system may compare the characteristics using a subset of prior attendees. As an example, the system may identify characteristics which are shared between the candidate attendee and prior attendees that have reported enjoying the reoccurring event.
- the system may compute the event score by incrementing and/or decrementing a value, based on the comparison.
- the system may increment an event score, for a candidate attendee, for each characteristic that the candidate attendee shares with prior attendees that had a positive experience with a prior occurrence of an event.
- the system may decrement the event score for characteristics that the candidate attendee shares with prior attendees that had a negative experience with a prior occurrence of an event.
- the system may modify the event score based on a comparison of particular attendee characteristics in association with the event.
- the system may increment or decrement the event score based on whether the candidate attendee shares characteristics with prior attendees who have received an A grade in a course.
- the characteristics compared may include academic characteristics such as grades, as well as non-academic characteristics such as demographic information.
- the characteristics compared may include student experiences. As an example, if the candidate attendee and the set of prior attendees both participated in a foreign exchange program in Japan, the system may increase the event score for a class completed by the set of prior attendees.
- the event score is based on a success rate of each of the set of prior attendees. Success may be measured according to one or more metrics. As examples, succeeding may be defined as graduating from an educational institution, obtaining employment after graduating, or graduating within a threshold time period (e.g., four years). Based on the success rate of the prior attendees, the event score may be increased. As an example, 70% of prior students that took a particular class historically graduated early. Accordingly, the system increases event score for the particular class.
- the event recommendation engine refines the event score based on characteristics of the candidate attendee.
- the system may increment or decrement the event score based on the candidate attendee's interests.
- the system may increment an event score if the candidate attendee has indicated an interest in the subject matter of the event on social media or by web browsing history.
- the system may increment an event score if the candidate attendee has indicated an interest in the subject matter of the event by attending similar events at a current or prior educational institution.
- the event score is based on institutional preferences.
- the system is selecting a class to recommend for a Georgia student.
- the student is scheduling classes for the student's first semester at a college.
- the college requires freshmen to take both math and English in the first year of attendance.
- the college has specified a preference to enroll half of incoming freshmen in math in the first semester of attendance.
- the college has specified a preference to enroll half of incoming freshmen in English in the first semester of attendance.
- the preferences are established to evenly distribute the freshmen between math and English.
- the system determines that more freshmen are currently enrolled in math than in English. Accordingly, the system increments the event score for the student for English.
- the system decrements the event score for the student for math.
- the system may increment or decrement the event score based on a target number of students for a class.
- the target number of students for the class may correspond to distributing students evenly, as described above.
- the target number of students for the class may correspond to available seats in a class.
- the event recommendation engine determines whether the event score meets a threshold value (Operation 408 ).
- the event recommendation engine may retrieve a stored threshold value.
- the event recommendation engine may compare the event score to the threshold value, to determine whether the event score meets the threshold vale.
- the system recommends the reoccurring event for the candidate attendee (Operation 410 ).
- the system may recommend the reoccurring event if the event score meets the threshold value.
- the system may recommend the reoccurring event by presenting the event directly to the candidate attendee.
- the system may recommend an event with or without the event management interface.
- the system may recommend an event by including the event in an event schedule presented via the event management interface.
- the system may recommend a particular time period for the candidate attendee to attend the event based on prior events attended by the candidate attendee. As an example, the system may only recommend a course in an upcoming semester after determining that a pre-requisite for that course has been completed.
- the system may recommend a particular time period for the candidate attendee to attend the event based an event schedule for the candidate attendee.
- the system may recommend a course for the fall semester in 2018 based on a pre-requisite for the course being scheduled for the candidate attendee during the spring semester in 2018.
- the system may request user input accepting or rejecting the recommendation.
- the system may present the recommendation on a stand-alone basis, via the event management interface.
- the system may present the recommendation via email or text message.
- the system recommends two continuing education courses, for a candidate attendee, via email.
- the system recommends a medical convention for a candidate attendee via text message.
- the system may present the recommendation via the virtual assistant.
- the system may recommend the reoccurring event for the candidate attendee by presenting the event to an administrator, such as a school counselor or a travel agent.
- the system may present a course recommendation to a guidance counselor via email.
- the guidance counselor can assess the recommendation and approve or reject the recommendation.
- An approved recommendation may be presented to the student via the event management interface.
- the guidance counselor may recommend the course to the student in-person or via email.
- the system refrains from recommending the reoccurring event for the candidate attendee (Operation 412 ).
- the system may refrain from recommending the event if the event score is less than the threshold value.
- the system selects a course to recommend for inclusion in a course plan for a student, Chris Sanchez.
- the system determines characteristics of Chris.
- the system determines that Chris is a transfer student.
- the system determines that Chris is 20 years old, male, Caucasian, and from Arizona.
- the system determines that Chris earned a 3.6 GPA at the college from which Chris is transferring.
- the system determines that Chris earned a 3.3 GPA in high school.
- the system determines that Chris participates in hockey and water polo.
- the system determines that Chris is a political science major.
- the system determines that Chris spends an average of two hours a day browsing the internet.
- the system identifies a potential course to include in the course plan. Much of the course plan is determined based on a template plan for a political science transfer student. There are several openings for elective courses that are flexible in the template plan. The system analyzes one potential elective course, Introduction to Pottery.
- the system identifies event records for students that have previously enrolled in Introduction to Pottery.
- the system identifies characteristics for each of the students that has enrolled in Introduction to Pottery.
- the characteristics include demographic characteristics, as listed above for Chris Sanchez. Additionally, the characteristics identified for prior students include whether the students passed, failed, or dropped Introduction to Pottery.
- the characteristics identified for prior students further includes a grade received by the students in Introduction to Pottery.
- the characteristics identified for prior students further include an overall GPA for the students in the semester in which the students took Introduction to Pottery.
- the system compares the characteristics of Chris Sanchez to the characteristics of the set of prior attendees that have previously attended Introduction to Pottery.
- the system uses a machine-learning model to compute the event score based on interrelated attendee characteristics.
- the system divides prior attendees of Introduction to Pottery into two groups: those who received a grade of C or better in the course, and those who did not receive a grade of C or better.
- Characteristics of Chris are compared to the characteristics of the students that received a grade of C or better. For each characteristic that Chris shares with a particular student that received a C, Chris's event score is incremented by 0.01. for each characteristic that Chris shares with a particular student that received a B, Chris's event score is incremented by 0.03. for each characteristic Chris shares with a particular student that received an A, Chris's event score is incremented by 0.08. Based on the comparison, the system assigns Introduction to Pottery an event score of 8 for Chris Sanchez.
- the system refines the event score based on Chris's interests.
- the system determines that Chris follows pottery-related pages on social media.
- the system determines that Chris has frequently enrolled in art classes in the past. Accordingly, the system increments Chris's event score from 8 to 9.
- the system compares the event score of 9 to a threshold value for recommendation.
- the threshold value for recommendation is 7. Accordingly, the system determines that the event score meets the threshold value.
- the system recommends Introduction to Pottery for Chris.
- the system recommends the course by including the course in a course schedule presented to Chris Sanchez via the course management interface.
- a class may be recommended using the same considerations described above with respect to recommending a course in Section 5 A (given that a class is a specific instance of a course). Additionally, the system may factor in class-specific elements such as location, time slots, and professors, when selecting a class for recommendation.
- the system identifies characteristics for Chris, as described above with respect to Section 5 A.
- the system further identifies availability and preferences for Chris.
- Chris has specified, via the class management interface, that he does not want to take any classes before 10 am.
- Chris has also specified that he prefers to take classes taught by a professor, rather than by a teaching assistant.
- the system uses a machine-learning model to compare characteristic for Chris to characteristics for students that have previously taken Introduction to Pottery, as described above with respect to Section 5 A.
- the system computes an event score.
- Introduction to Pottery receives an event score of 9.
- the system accounts for Chris's availability and preferences.
- the system analyzes two sections of Introduction to Pottery. Section A is offered at 11 am and is taught by a professor. Section B is offered at 9 am and is taught by a professor. Section C is offered at 2 pm and is taught by a teaching assistant. Based on Chris's preference for scheduling classes after 9 am, the event score for Section B is decremented by 4 points to 5. Based on Chris's preference for classes taught by a professor, the event score for Section C is decremented by 3 points to 6. Accordingly, Section A has the highest event score of 9.
- the system compares the respective event score for each section to a threshold value of 7.
- the system determines that the event score for Section A meets the threshold value, while the event scores for Sections B and C do not meet the threshold value. Accordingly, the system recommends Introduction to Pottery Section A to Chris.
- the system refrains from recommending Introduction to Pottery Sections B and C to Chris.
- the system recommends introduction to Pottery Section A by including the class in a class schedule.
- the class schedule is presented to Chris via the class management interface.
- Embodiments are directed to a system with one or more devices that include a hardware processor and that are configured to perform any of the operations described herein and/or recited in any of the claims below.
- a non-transitory computer readable storage medium comprises instructions which, when executed by one or more hardware processors, causes performance of any of the operations described herein and/or recited in any of the claims.
- the techniques described herein are implemented by one or more special-purpose computing devices.
- the special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or network processing units (NPUs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
- ASICs application-specific integrated circuits
- FPGAs field programmable gate arrays
- NPUs network processing units
- Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, FPGAs, or NPUs with custom programming to accomplish the techniques.
- the special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
- FIG. 5 is a block diagram that illustrates a computer system 500 upon which an embodiment of the invention may be implemented.
- Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a hardware processor 504 coupled with bus 502 for processing information.
- Hardware processor 504 may be, for example, a general-purpose microprocessor.
- Computer system 500 also includes a main memory 506 , such as a random-access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504 .
- Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504 .
- Such instructions when stored in non-transitory storage media accessible to processor 504 , render computer system 500 into a special-purpose machine that is customized to perform the operations specified in the instructions.
- Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504 .
- ROM read only memory
- a storage device 510 such as a magnetic disk or optical disk, is provided and coupled to bus 502 for storing information and instructions.
- Computer system 500 may be coupled via bus 502 to a display 512 , such as a cathode ray tube (CRT), for displaying information to a computer user.
- a display 512 such as a cathode ray tube (CRT)
- An input device 514 is coupled to bus 502 for communicating information and command selections to processor 504 .
- cursor control 516 is Another type of user input device
- cursor control 516 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512 .
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- Computer system 500 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506 . Such instructions may be read into main memory 506 from another storage medium, such as storage device 510 . Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
- Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510 .
- Volatile media includes dynamic memory, such as main memory 506 .
- Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, content-addressable memory (CAM), and ternary content-addressable memory (TCAM).
- a floppy disk a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium
- CD-ROM any other optical data storage medium
- any physical medium with patterns of holes a RAM, a PROM, and EPROM
- FLASH-EPROM any other memory chip or cartridge
- CAM content-addressable memory
- TCAM ternary content-addressable memory
- Storage media is distinct from but may be used in conjunction with transmission media.
- Transmission media participates in transferring information between storage media.
- transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502 .
- transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
- Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution.
- the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
- a modem local to computer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
- An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 502 .
- Bus 502 carries the data to main memory 506 , from which processor 504 retrieves and executes the instructions.
- the instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504 .
- Computer system 500 also includes a communication interface 518 coupled to bus 502 .
- Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522 .
- communication interface 518 may be an integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN integrated-services digital network
- communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Wireless links may also be implemented.
- communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 520 typically provides data communication through one or more networks to other data devices.
- network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526 .
- ISP 526 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the “Internet” 528 .
- Internet 528 uses electrical, electromagnetic or optical signals that carry digital data streams.
- the signals through the various networks and the signals on network link 520 and through communication interface 518 which carry the digital data to and from computer system 500 , are example forms of transmission media.
- Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518 .
- a server 350 might transmit a requested code for an application program through Internet 528 , ISP 526 , local network 522 and communication interface 518 .
- the received code may be executed by processor 504 as it is received, and/or stored in storage device 510 , or other non-volatile storage for later execution.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
An event recommendation system recommends events for a candidate attendee. The system recommends an event based on characteristics of the candidate attendee and characteristics of prior attendees that attended a prior occurrence of the event. A prior attendee may have a positive or negative experience with the prior occurrence of the event. A positive experience may be defined, for example, as enjoying the event, completing the event, or performing well in the event. A negative experience may be defined, for example, as not enjoying the event, not completing the event, or not performing well in the event. An event is recommended to a candidate attendee if the candidate attendee has similar characteristics to a prior attendee that had a positive experience. An event is not recommended to a candidate attendee if the candidate attendee has similar characteristics as a prior attendee that had a negative experience.
Description
- Each of the following applications are hereby incorporated by reference: application Ser. No. 15/933,300 filed on Mar. 22, 2018; application No. 62/566,394 filed on Sep. 30, 2017; application No. 62/566,405 filed on Sep. 30, 2017. The Applicant hereby rescinds any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advises the USPTO that the claims in this application may be broader than any claim in the parent application(s).
- The present disclosure relates to event management and recommendation. In particular, the present disclosure relates to an interface for selecting, ordering, and presenting events for a candidate attendee.
- A student at a higher education institution must typically interact with multiple systems, web sites, and paper documents to complete tasks. The student may need to complete tasks such as scheduling classes, asking questions, and paying bills. The interaction paradigm in the higher education industry as a whole is a self-service model.
- Students are faced with the challenge to choose courses in which to enroll for every academic period. Depending on the context, a student may have many, or few, alternative courses from which to choose. In cases in which many alternative courses are available, the best choice of courses may not be transparent to the student.
- A virtual assistant is a software agent used to execute tasks. Generally, a virtual assistant executes a simple task responsive to a request. For example, responsive to the voice command “What is the weather like today?” a virtual assistant obtains, and displays, today's weather forecast. A virtual assistant may accept an instruction from a user via voice commands, text commands, and/or user interaction with a user interface.
- The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
- The embodiments are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and they mean at least one. In the drawings:
-
FIGS. 1A-1E illustrate a system in accordance with one or more embodiments; -
FIGS. 2A-2B illustrate event management interfaces in accordance with one or more embodiments; -
FIG. 3 illustrates an example set of operations for generating an event schedule in accordance with one or more embodiments; -
FIG. 4 illustrates an example set of operations for recommending an event for a candidate attendee in accordance with one or more embodiments; and -
FIG. 5 shows a block diagram that illustrates a computer system in accordance with one or more embodiments. - In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some examples, well-known structures and devices are described with reference to a block diagram form in order to avoid unnecessarily obscuring the present invention.
-
- 1. GENERAL OVERVIEW
- 2. EVENT MANAGEMENT & RECOMMENDATION SYSTEM
- 3. EVENT MANAGEMENT INTERFACE
- A. COURSE MANAGEMENT INTERFACE
- B. CLASS MANAGEMENT INTERFACE
- 4. GENERATING AN EVENT SCHEDULE
- A. COURSE PLANNING
- B. CLASS SCHEDULING
- 5. SELECTING EVENTS FOR RECOMMENDATION
- A. RECOMMENDING A COURSE
- B. RECOMMENDING A CLASS
- 6. MISCELLANEOUS; EXTENSIONS
- 7. HARDWARE OVERVIEW
- 1. General Overview
- One or more embodiments include an event recommendation system. The event recommendation system recommends events for a candidate attendee. The event recommendations are based on (a) the characteristics of the candidate attendee and (b) characteristics of prior attendees that attended a prior occurrence of the event. A prior attendee may have a positive experience or a negative experience with the prior occurrence of the event. A positive experience may be defined, for example, as enjoying the event, completing the event, or performing well in the tasks or evaluation metrics associated with the event. A negative experience may be defined, for example, as not enjoying the event, not completing the event, or not performing well in the tasks or evaluation metrics associated with the event. An event is recommended to a candidate attendee if the candidate attendee has similar characteristics to a prior attendee that had a positive experience. An event is not recommended to a candidate attendee if the candidate attendee has similar characteristics as a prior attendee that had a negative experience. A machine-learning algorithm may continually update a database of attendee characteristics associated with positive experiences and attendee characteristics associated with negative experiences. The database is used to generate the event recommendations.
- An example of an event, that may be recommended, is a course in a higher education institution. A course is a unit of academic content.
English 4 and Introduction to Nursing are courses. Courses may be offered on a reoccurring basis (for example, every semester over several years). Another example of an event, that may be recommended, is a class in a higher education institution. A class is a specific instance of a course. Physics 101, Section A, on Wednesdays in theSpring 2017 semester with Professor Smith, is an example of a class. - One or more embodiments select and recommend courses in a higher education institution. A machine-learning algorithm builds a database of characteristics of students that have done well in a course. Alternatively, or additionally, the machine-learning algorithm builds a database of characteristics of students have not done well in the course. The system recommends the course to a student if the characteristics of the student are similar to the characteristics of students that have done well in the course. The system does not recommend the course to a student if the characteristics of the student are similar to the characteristics of students have not done well in the course.
- As an example, the system may recommend or not recommend a course to a current student based on an event score computed for the current student. The event score is computed based on a comparison of the characteristics of the current student with characteristics of prior students that previously took the course. If the characteristics of a current student and the characteristics of a prior student meet a similarity threshold, then the prior student is determined to be similar to the current student. The system identifies a subset of the prior students that are determined to be similar to the current student. If the number or percentage of students, in the subset of prior students, that performed well in the course meets a recommendation threshold, then the course is recommended to the current student. If the number or percentage of students, in the subset of prior students, that performed well in the course does not meet the recommendation threshold, then the course is not recommended to the current student.
- One or more embodiments select and recommend classes to a student. The system may identify a set of candidate classes corresponding to a recommended course. The system may select one of the candidate classes based on a location and time of the class, and the student's expected location at or near that time. As an example, Joe has a first class on the north side of a large campus from 9 am to 10:30 am on Wednesdays. The system may recommend a second class, from a set of candidate classes, that is scheduled for the north side of campus at 11 am on Wednesdays. The time and location proximity between the classes helps the student quickly travel from the first class to the second class.
- One or more embodiments described in this Specification and/or recited in the claims may not be included in this General Overview section.
- 2. Event Management & Recommendation System
-
FIG. 1A illustrates an event management andrecommendation system 100 in accordance with one or more embodiments. As illustrated inFIG. 1A , the event management andrecommendation system 100 includes anevent management interface 110,scheduling engine 120,template modeling engine 140,event recommendation engine 180, anddatabase 130. In one or more embodiments, the event management andrecommendation system 100 may include more or fewer components than the components illustrated inFIG. 1A . The components illustrated inFIG. 1A may be local to or remote from each other. The components illustrated inFIG. 1A may be implemented in software and/or hardware. Each component may be distributed over multiple applications and/or machines. Multiple components may be combined into one application and/or machine. Operations described with respect to one component may instead be performed by another component. - In an embodiment, an
event 124 is a planned occurrence. As an example, anevent 124 is a class or course in a higher education institution. As another example, anevent 124 is a business meeting. As another example, anevent 124 is a practice session for a team sport. - In an embodiment, an
event schedule 122 is an ordered set of events corresponding to anevent order 126. Theevent order 126 may specify the arrangement of a set ofevents 124 with respect to other events and/or with respect to a timeline. Theevent order 126 may organize events into time slots. As an example, theevent order 126 may specify that four courses are scheduled in the Spring 2016 semester. As another example, the event order may specify time slots throughout the week in which reoccurring classes are to be scheduled. - In an embodiment, the
scheduling engine 120 includes hardware and/or software configured to manage anevent schedule 122. Thescheduling engine 120 may determine how to schedule an event with respect to other events. Thescheduling engine 120 may determine anevent order 126 for theevents 124 based on a set of ordering rules 138. As described further below with respect todatabase 130, the orderingrules 138 prescribe an order in which events must be completed. Thescheduling engine 120 may modify the event schedule according to user input and the set of ordering rules 138. Thescheduling engine 120 may enroll an attendee in events, based on the event schedule. - As illustrated in
FIGS. 1B-1C , thescheduling engine 120 may be configured to schedule events such as courses and/or classes.FIG. 1B illustrates acourse scheduling engine 120 a.Course scheduling engine 120 a is configured to generate acourse schedule 122 a comprising a set ofcourses 124 a. - In an embodiment, a
course 124 a is a unit of academic content. As an example, Physics 101 is a course. As another example, Introduction to Nursing is a course. Acourse 124 a may be, as non-limiting examples, formatted as a lecture, seminar, or lab. Acourse 124 a may be an internship, to be completed for credit. Courses may be offered on a reoccurring basis. As an example, Math 101 is offered twice per semester over the course of several years. As another example, English 330 is offered in alternate Spring quarters. - In an embodiment, a
course schedule 122 a (also referred to herein as a course plan) is an ordered set of courses to be completed towards an academic goal. The academic goal may be the completion of an academic program. As examples, the course schedule may correspond to the requirements for completion of an undergraduate degree, graduate degree, or certificate program. Acourse schedule 122 a may span across multiple academic terms. As an example, thecourse schedule 122 a may include courses to be completed over eight semesters comprised in a four-year plan. - In an embodiment,
course order 126 a is the order in which courses are configured. Courses in a course plan may be grouped by academic term. For example, four courses are assigned to theSpring 2020 semester. Courses in a course plan may be ordered without scheduling a specific time slot. As an example, four courses are listed inSpring 2020, but days and times corresponding to the courses are not specified. -
FIG. 1C illustrates aclass scheduling engine 120 b.Class scheduling engine 120 b is configured to generate aclass schedule 122 b comprising a set ofclasses 124 b. - In an embodiment, a
class 124 b is a particular offering of a course. As an example, Physics 101 is offered as Section A, taught by Professor Jones on Mondays, Wednesdays, and Fridays in theSpring 2018 Semester. Physics 101 is also offered as Section B, taught by Professor Smith on Tuesdays and Thursdays in theSpring 2018 Semester. Aclass 124 b may be associated with a specific time slot, as with Physics 101 in the previous example. Alternatively, a class may not be allocated a specific time slot. As an example, a final capstone project does not correspond to a particular time slot. As additional examples, aclass 124 b may be an externship, thesis project, seminar, or internship. Aclass 124 b may be associated with a particular teacher. Aclass 124 b may be associated with a particular location. Aclass 124 b may be offered in-person or online. - In an embodiment, a
class schedule 122 b is an ordered set of classes in a particular academic term. As an example, aclass schedule 122 b may include three classes for theSpring 2019 semester. Theclass schedule 122 b may specify times, locations, and professors associated with each respective class. - In an embodiment,
class order 126 b is the order in which classes are configured. Theclass order 126 b may include a specific time slot. As an example, aclass schedule 122 b specifies that Nursing 301A is scheduled prior to Nursing 330C on Mondays and Wednesdays. Specifically, Nursing 301A is scheduled Mondays and Wednesdays from 9:00 am-10:15 am. Nursing 330C is scheduled Mondays and Wednesdays from 1:00 pm-3:00 pm. - Returning to
FIG. 1A , in one or more embodiments, theevent management interface 110 refers to hardware and/or software configured to facilitate communications between a user and thescheduling engine 120 and/or theevent recommendation engine 180. Theevent management interface 110 may render user interface elements. Theevent management interface 110 may receive user input via user interface elements. Examples of interfaces include a graphical user interface (GUI), a command line interface (CLI), a haptic interface, and a voice command interface. Examples of user interface elements include checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms. - In an embodiment, different components of the
event management interface 110 are specified in different languages. The behavior of user interface elements is specified in a dynamic programming language, such as JavaScript. The content of user interface elements is specified in a markup language, such as hypertext markup language (HTML) or extensible markup language (XML) User Interface Language (XUL). The layout of user interface elements is specified in a style sheet language, such as Cascading Style Sheets (CSS). Alternatively,event management interface 110 is specified in one or more other languages, such as Java, C, or C++. - In an embodiment, the
event management interface 110 is implemented on one or more digital devices. The term “digital device” generally refers to any hardware device that includes a processor. A digital device may refer to a physical device executing an application or a virtual machine. Examples of digital devices include a computer, a tablet, a laptop, a desktop, a netbook, a mobile handset, a smartphone, a personal digital assistant (“PDA”), and/or a client device. - In an embodiment, the
event management interface 110 includes functionality to accept user input to configure anevent schedule 122. The event management interface may, for example, accept user input moving an event from one time period to another time period. - In an embodiment, the
virtual assistant 102 includes hardware and/or software configured to assist the user in configuring an event schedule. Thevirtual assistant 102 may guide the user through the process of configuring the event schedule. Additionally, thevirtual assistant 102 may assist the user in other tasks. As an example, the virtual assistant may assist a student with completing a college application. As other examples, the virtual assistant may assist the student with obtaining financial aid, paying bills, and obtaining a student identification. - In an embodiment, the
virtual assistant 102 communicates with the user via a modal displayed on theevent management interface 110. As an example, thevirtual assistant 102 may display a pop-up window displaying the text, “Hi, would you like to schedule your classes for the semester?”. Thevirtual assistant 102 may further be configured to receive user input. As an example, the virtual assistant displays buttons labeled “Yes” and “No.” Responsive to detecting user input selecting the “Yes” button, the virtual assistant may initiate event scheduling via thescheduling engine 120. - In an embodiment, the
virtual assistant 102 includes functionality to proactively initiate actions. As an example, the virtual assistant determines that financial aid paperwork is due in a week. Responsive to determining that financial aid paperwork is coming due, thevirtual assistant 102 displays a message asking the user if the user would like to complete a financial aid application. - In an embodiment, the
filters 112 are user-configurable guidelines for thescheduling engine 120 to use in selecting and ordering events. As an example, afilter 112 may cause the scheduling engine to disfavor, or refrain from, scheduling events before 2 pm. As another example, afilter 112 may cause the scheduling engine to disfavor, or refrain from, scheduling events during the weekend. As another example, afilter 112 may cause the scheduling engine to refrain from scheduling classes during a particular semester when the student will be interning at a company instead of taking classes. Thefilters 112 may be displayed via theevent management interface 110. As an example, a set of filters are displayed with corresponding slider buttons. Theevent management interface 110 may receive user input, via the slider buttons, to select a subset of thefilters 112. - In an embodiment, the
database 130 is any type of storage unit and/or device (e.g., a file system, collection of tables, or any other storage mechanism) for storing data. Further,database 130 may include multiple different storage units and/or devices. The multiple different storage units and/or devices may or may not be of the same type or located at the same physical site. Further,database 130 may be implemented or may execute on the same computing system as theevent management interface 110,scheduling engine 120,event recommendation engine 180, andtemplate modeling engine 140. Alternatively, or additionally, thedatabase 130 may be implemented or executed on a computing system separate from theevent management interface 110,scheduling engine 120,event recommendation engine 180, andtemplate modeling engine 140. Thedatabase 130 may be communicatively coupled to theevent management interface 110,scheduling engine 120,event recommendation engine 180, andtemplate modeling engine 140 via a direct connection or via a network. - In an embodiment,
event availability 132 describes times in which an event may be scheduled. As an example, theevents 124 are college classes. Theevent availability 132 specifies times that a particular class is offered in a particular semester (e.g., Sculpting 101 is offered in Section A,Mondays 8 am-10 am and Section B,Wednesdays 4 pm-6 pm). As another example, theevents 124 are fitness classes. Theevent availability 132 specifies times that a particular fitness class is offered at a gym (e.g. Spinning is offered Tuesday, Thursday, and Saturday from 7 am-8 am). - In an embodiment, the
requirements 134 are events to be completed by the attendee to meet an event completion target. As an example, the event completion target is the completion of the coursework needed to earn a law degree. Therequirements 134 include completing 20 core courses corresponding to the law degree and 12 units of elective courses. - In an embodiment, the
records 136 describe prior occurrences of events in association with attendees. Therecords 136 may include a list of attendees that attended a particular event.Records 136 may further specify event outcomes. As an example, the event is a course. Therecords 136 include information specifying students who have enrolled in the course. Therecords 136 further specify whether each student has passed or failed the course. As another example, the records may specify each student's letter grade in the course.Records 136 may correspond to events at the institution for which an event or event schedule is being generated. Alternatively, or additionally,records 136 may correspond to events at other institutions, such as classes completed by a transfer student. - In an embodiment, the ordering
rules 138 prescribe an order in which events must be completed. As an example, the course Painting I is a prerequisite for the course Painting II. Accordingly, anordering rule 138 prohibits Painting II from being positioned before or concurrently with Painting I in a course schedule. As another example, an ordering rule specifies that the lab section of Chemistry 101 must be scheduled later in the week than the lecture section of Chemistry 101. - In an embodiment, the
event recommendation engine 180 includes hardware and/or software configured to select an event for recommendation to a particular attendee. Theevent recommendation engine 180 may implement a machine-learning algorithm to select events for recommendation based onattendee characteristics 182 and/or records 136. Theevent recommendation engine 180 may base the selection of events for recommendation on additional factors such asrequirements 134 and ordering rules 138. - In an embodiment, the
attendee characteristics 182 are parameters describing an attendee. Attendee characteristics may include academic characteristics such as Psychology Major and 3.5 GPA.Attendee characteristics 182 may describe time constraints on an attendee. As examples, a student has a full course load or is working full-time in addition to attending school.Attendee characteristics 182 may include behavioral characteristics. As an example, the system may obtain web browsing data specifying that an attendee spends a certain amount of time per day browsing the internet.Attendee characteristics 182 may correspond to candidate attendees, for whom recommendations are being generated.Attendee characteristics 182 may correspond to prior attendees, who may or may not have enrolled in a particular event in the past. - In an embodiment, the
event score 186 is a scoring value attributed to a particular event for a particular attendee. The event score may be determined based on a comparison ofattendee characteristics 182 of a candidate attendee for an event andattendee characteristics 182 of prior attendees that attended a prior instance of the event. Theevent score 186 may be a measure of a candidate attendee's likelihood of having a positive experience with the event. - As illustrated in
FIGS. 1D-1E , theevent recommendation engine 180 may be configured to recommend events such as courses and/or classes.FIG. 1D illustrates acourse recommendation engine 180 a.Course recommendation engine 180 a is configured to recommend one ormore courses 124 a for a student. - In an embodiment, attendee characteristics 182 a include the features described above with respect to
attendee characteristics 182 inFIG. 1A . For course recommendation, attendee characteristics 182 a may include characteristics that are pertinent to an overall plan of study. As examples, attendee characteristics 182 a may include a declared major and a target number of years for degree completion. - In an embodiment, course score 186 a is similar to event score 186 described with respect to
FIG. 1A .Course score 186 a is based on a comparison of attendee characteristics 182 a of a candidate attendee for a course and attendee characteristics 182 a of prior attendees that have enrolled in a prior occurrence of the course. -
FIG. 1E illustrates aclass recommendation engine 180 b.Class recommendation engine 180 b is configured to recommend one ormore classes 124 b for a student. - In an embodiment,
attendee characteristics 182 b are similar to theattendee characteristics 182 described above with respect toFIG. 1A . Additionally,attendee characteristics 182 b may include availability information. As an example,attendee characteristics 182 b may include attendee availability obtained from a linked work calendar.Attendee characteristics 182 b may include professor preferences. As an example, a student may specify that the student does not want to take any classes with Professor Smith.Attendee characteristics 182 b may include locational information. As an example, theattendee characteristics 182 b specify that a student works in New Jersey on Monday mornings. - In an embodiment,
class score 186 b is similar toevent score 186, described above with respect toFIG. 1A .Class score 186 b is based on a comparison of attendee characteristics 182 a of a candidate attendee for a class and attendee characteristics 182 a of prior attendees that have enrolled in the class in prior academic terms.Class score 186 b may be further based on the target attendee's availability for the academic term.Class score 186 b may further be based on the target attendee's preferences with regard to times, professors, and locations. - Returning to
FIG. 1A , atemplate plan 142 is a default event schedule. Embodiments herein include using the template plan as a starting point for generating an event schedule customized for a particular attendee. As an example, a university department head may configure a template plan corresponding to a suggested plan of study for completing degree requirements. The system may customize the template plan, for an attendee, based onrequirements 134 for the attendee's degree, and credits transferred-in or coursework already completed by the attendee. In the higher-education context, template plans may vary by program. A first department may have a 4-year template plan, while a second department has a 5-year template plan. The system may select the appropriate template plan based on the attendee and/or program. - In an embodiment, the
template modeling engine 140 updates the template plans 142 based on user input. Thetemplate modeling engine 140 may implement a machine-learning algorithm to modify atemplate plan 142 based on a history of modifications to the template plan. As an example, the system identifies a pattern of multiple attendees rescheduling math classes from prior to 9 am to after 9 am. Based on the pattern, the system modifies the template plan to exclude math classes prior to 9 am. As another example, the system identifies a pattern of multiple attendees rescheduling chemistry courses from a first semester in a course plan to later semesters in the course plan. Based on the pattern, the system modifies the template plan to exclude chemistry courses from the courses selected for the first semester in a course plan. - In an embodiment, the
calendar application 150 is an application which includes data describing an attendee's availability. Thecalendar application 150 may be external to the event management and recommendation system. As an example, the event management system andrecommendation system 100 is associated with a university. The event management andrecommendation system 100 is used to manage an attendee's continuing education class schedule. Thecalendar application 150 corresponds to the attendee's employment. Thecalendar application 150 tracks meetings associated with the attendee's employment. Alternatively, or additionally, thecalendar application 150 may be integrated within the event management andrecommendation system 100. Thecalendar application 150 may be an application for tracking the candidate attendee's extracurricular activities at the university for which classes are being scheduled. - The event management and
recommendation system 100 may be communicatively coupled to thecalendar application 150. The event management andrecommendation system 100 may obtain data, from thecalendar application 150, for tailoring theevent schedule 122 to the candidate attendee's availability. - 3. Event Management Interface
- A. Course Management Interface
-
FIG. 2A illustrates an example of acourse management interface 110 a in accordance with one or more embodiments. Acourse management interface 110 a is a type ofevent management interface 110. Thecourse management interface 110 a illustrates generating, displaying, and modifying acourse plan 122 a. However, the example is equally applicable to generating, displaying and modifying any type of anevent schedule 122. Components and operations described in relation to this example should not be construed as limiting the scope of any of the claims. - The
course management interface 110 a is used to configure acourse plan 122 a for a student. The course plan comprises a set ofcourses 124 a that satisfy the requirements for earning a nursing degree at Victory University. A first subset of thecourses 124 a corresponds to transferred units 202. Transferred units 202 include units corresponding to courses which the student has already completed at another institution. A second subset of thecourses 124 a correspond to courses 204 which are to be completed at Victory University. The courses to be completed 204 are displayed in association with a corresponding period of time, a semester. The courses in acourse plan 122 a may represent placeholders for classes to be included in a schedule for a particular semester. As an example, the course plan includes Nursing Elective in theSpring 2020 semester. Based on the course plan, the system generates a schedule for theFall 2020 semester which includes a particular nursing elective, Nursing 414. - The
courses 124 a may be reordered based on user input. The system may receive user input modifying the courses. User input modifying the courses may include deleting, reordering, or moving a course to another term. As an example, thecourse management interface 110 a may permit the user to drag and drop a course from one semester to another semester (e.g., a course may be dragged fromSpring 2019 and dropped to Spring 2018). - The system may further present a search interface (not shown). Via the search interface, the system may accept user input to search for available courses. The system may accept user input to add courses directly to a time period. The system may further accept user input adding a new time period (e.g., a summer term or an additional semester to finish program requirements).
- The
course management interface 110 a displays a sidebar to showgeneral education requirements 206 andmajor requirements 208. When acourse 124 a is added to thecourse plan 122 a, the system may update the requirements panel to reflect requirements satisfied by the course plan. As an example, when a four-unit nursing course, NURS 412 (210) is added to the course plan, the system updates themajor requirements panel 208. Thecourse management interface 110 a updates themajor requirements panel 208 to include a check mark, indicating that theNURS 412 requirement is included in the class schedule (166). - The
course management interface 110 a displays an anticipated graduation date 212. Thecourse management interface 110 a may update the anticipated graduation date 212 as the course schedule is reconfigured. - The
course management interface 110 a displays units completed 214. The system may determine the units completed 214 based on therecords 136. Here, the units completed 214 correspond to 24 transferred units (202). - The
course management interface 110 a displays units planned 216. The system may determine the units planned 216 based on the course plan. Here, the units planned 216 correspond to the 96 units planned via the courses to be completed 204. The system may update the units planned as the course plan is configured. As an example, if a user were to remove a 4-unit course, thecourse management interface 110 a would update to display 92/96 units planned instead of 96/96 units planned. - Alternatively, or additionally, the system may display a metric in the form (units completed)/(units included in plan)/(units remaining). As an example, a student has completed 2 units, has 2 units planned in a course plan, and needs 4 units to satisfy a requirement. The system displays the
metric 2/2/4 for the student, indicating the student's (units completed)/(units included in plan)/(units remaining). - The
course management interface 110 a may further display a wish-list element (not pictured). The wish-list element may accept user input adding courses to a wish-list of courses. Based on the wish-list, the system may prioritize courses for selection. - B. Class Management Interface
-
FIG. 2B illustrates an example of a class management interface 110 b in accordance with one or more embodiments. A class management interface 110 b is a type ofevent management interface 110. The class management interface 110 b illustrates generating, displaying, and modifying aclass schedule 122 b. However, the example is equally applicable to generating, displaying and modifying any type of anevent schedule 122. Components and operations described in relation to this example should not be construed as limiting the scope of any of the claims. - The class management interface 110 b is used to configure a
class schedule 122 b for a particular candidate attendee, Chris. Theclass schedule 122 b includes a set ofclasses 124 b for theFall 2017 semester (226). Theclass schedule 122 b is a part ofNursing Plan 1.Nursing Plan 1 corresponds to anoverall course plan 122 a for Chris, as illustrated inFIG. 2A . - The
class schedule 122 b includes fourclasses 124 b. SCI111—Chemistry (220) is a course to be taken in theFall 2017 semester. Two class sections (220 a, 220 b) ofcourse 220 are available. The class management interface 110 b displays both sections, along with thecorresponding time 232,location 234, professor 236, andavailability 238. SCI111 Section A (220 a) is offered Mondays and Wednesdays from 2 pm-4 pm (232). SCI111 Section A (220 a) is taught by instructor Jane Oritz (236). SCI 111 Section A (220 a) is to be held in Angela Hall 322 (234). 12 of 32 seats are available (238) for SCI 111 Section A. SCI111 Section B (220 b) is offered Tuesdays and Thursdays from 7 am-8:30 am (232). SCI111 Section B (220 b) is taught by instructor Jane Oritz (236). SCI111 Section B (220 b) is to be held in Angela Hall 322 (234). 12 of 32 seats are available (238) for SCI111 Section B (220 b). - The class management interface 110 b further displays
course 222—GFA225 Art of the Giant Monster. Two sections ofcourse 222 are available. Each section (222 a, 222 b) is displayed along with thecorresponding time 232,location 234, professor 236, andavailability 238. - The class management interface 110 b further displays course 224-NURS301 Nursing Care of Adult I. Course 224 includes a clinical section (224 a) and a theory section (224 b). Each section (224 a, 224 b) is displayed along with the
corresponding time 232,location 234, professor 236, andavailability 238. - The class management interface 110 b displays the
classes 124 b both in a calendar and in a sidebar. Via the sidebar, the class management interface 110 b may accept user input selecting a class section. As an example, SCI111 Section B has been selected, as indicated by the checkmark in the sidebar. Responsive to receiving user input selecting a section in the sidebar, the class management interface 110 b may update the calendar. Alternatively, or additionally, the class management interface 110 b may accept user input modifying the schedule through interaction with the calendar. As an example, the class management interface 110 b may accept user input dragging-and-dropping SCI111 from Monday to Tuesday. Responsive to the user input, the class management interface 110 b may switch the scheduled class from SCI111 Section A, on Mondays and Wednesdays, to SCI111 Section B, on Tuesdays and Thursdays. - The class management interface 110 b includes functionality to accept user input to filter class selections. The class management interface 110 b displays a
button 228 labeled “Filter Class Selections.” Responsive to detecting user interaction with the “filter class selections” button, the system may display a modal with a set of filters. The modal may include sliders marked “Morning (before 9 am); Evening (after 5 pm); Late Evening (after 9 pm); and Weekends. The interface may accept user input to select or deselect a time preference by adjusting the sliders. Classes corresponding to selected time preferences may be recommended or scheduled by the system. Classes corresponding to deselected time preferences may not be recommended or scheduled by the system. The modal may further include sliders or other UI elements to allow a user to select formats (e.g. onsite or online). The modal may further include sliders or other UI elements to allow a user to select locations (e.g. San Jose or San Ramon campus). - The class management interface 110 b includes functionality to accept user input to manually block times. The class management interface 110 b displays a
button 228 labeled “block times.” Responsive to user interaction with the “block times” button, the class management interface 110 b may permit a user to highlight portions of the calendar. Highlighted portions of the calendar may be blocked. For blocked times, the system may refrain from recommending or scheduling a class. - The class management interface 110 b includes functionality for the user to import availability from a calendar, such as a work calendar or social calendar. The class management interface 110 b displays a
button 242 labeled “import calendar.” Responsive to user interaction with the “import calendar” button, the class management interface 110 b imports a calendar. The system may use information imported from the calendar to block times when the candidate attendee is unavailable. The system may further identify locations based on information imported from the calendar. Using the location of a calendared event, the system may determine a commute time between the location of the event and the location of a class. The system may block times when the candidate attendee is not available by greying out portions of the calendar with time constraints 230. The time constraints 230 show that Chris is not available for courses between 9 am and 4 pm on Mondays, Tuesdays, Wednesdays, and Thursdays. The time constraints 230 further show that Chris is not available for courses between 10 am and 2 pm on Fridays. - Based on factors such as candidate attendee availability, the class management interface 110 b may display an alert. In the schedule shown, there is a potential timing conflict between GFA225 Section A (222 b) and an event in Chris's calendar. The class management interface 110 b displays an alert 240, indicated by an explanation mark, on class 222 b on the calendar. Responsive to user interaction with the alert, the class management interface 110 b may display a modal explaining the alert. If a user selects the alert, the class management interface 110 b may display a modal reading, “(!) Potential Timing Conflict: Your commute is 20 minutes from work and this section starts immediately after. The only other option is a section with a waitlist with the same conflict. How should we proceed?” The modal may include buttons labeled “Switch it,” “Keep it,” and “Choose a new course.” Responsive to user interaction with a button, the class management interface may modify the schedule and/or remove the alert.
- 4. Generating an Event Schedule
-
FIG. 3 illustrates an example set of operations for generating an event schedule in accordance with one or more embodiments. One or more operations illustrated inFIG. 3 may be modified, rearranged, or omitted altogether. Accordingly, the particular sequence of operations illustrated inFIG. 3 should not be construed as limiting the scope of one or more embodiments. - In an embodiment, the scheduling engine determines, for an attendee, events in an initial order (Operation 302). The scheduling engine may determine the initial order of events for the attendee based on completed events corresponding to the attendee. The scheduling engine may further determine the initial order of events based on to-be-completed events. As an example, the scheduling engine identifies events in an initial order for a student. The events satisfy the requirements for a Bachelor of Arts degree in English. The scheduling engine determines that the student has completed a portion of the courses required for the degree. The scheduling engine selects courses, from a set of required courses in the English program, which the student has not completed. The scheduling engine identifies a set of courses to-be-completed to satisfy the requirements for the degree. Additionally, the scheduling engine may identify events based on event recommendations generated by the event recommendation engine, as described below in Section 5.
- Additionally, or alternatively, the scheduling engine may determine the events in the initial order based on ordering rules. As an example, the scheduling engine generates a course plan comprising a set of courses. The scheduling engine orders the set of courses such that prerequisite requirements are met for each of the courses.
- In an embodiment, the scheduling engine determines the initial event order based on attendee availability. The attendee availability may be provided by the attendee. As an example, the system displays, via the event management interface, a pop-up window for configuring filters. The attendee, who works from 8 am to 5 pm on weekdays, selects a filter dictating that events are only to be scheduled on evenings and weekends. Alternatively, or additionally, the system may obtain attendee availability data from a calendar application. As an example, the system may execute a request to pull scheduling data via a web service associated with a calendar application. Prior to obtaining information from a calendar application, the system may request, from the attendee, access to the calendar. As an example, the virtual assistant displays the text, “May I import your work calendar?”.
- In an embodiment, the scheduling engine determines the events, in the initial order, based on event location. As an example, the scheduling engine includes the classes Math 101A and Science 3 in a class schedule. Math 101A is held on Mondays and Wednesdays at 9 am on the north side of Victory University's Santa Clara campus. Science 3B is held on Mondays and Wednesdays at 1 pm on the west side of Victory University's Santa Clara campus. The scheduling engine determines whether to select section A, B, or C of another class to be scheduled,
English 4. The scheduling engine determines the walking path between Math 101A, Science 3B, and each section ofEnglish 4. The scheduling engine selects English 4C for the schedule, because English 4C is held Mondays and Wednesdays at 11 am along a convenient walking path between Math 101A and Science 3B. The scheduling engine may further base event selection on a student's schedule outside of the institution corresponding to the events. As an example, a student works in San Francisco on Friday mornings. Accordingly, the system selects a class which is held in San Francisco on Friday afternoons. - In an embodiment, the scheduling engine determines the events, in the initial order, based on a template plan. The scheduling engine may locate a stored template plan corresponding to a particular event schedule. As an example, the system is configuring a course plan which includes the courses required to earn a certificate in early childhood education. The system locates a stored early childhood education template plan comprising an ordered set of courses which a student could take over three semesters. The system presents the events, in the initial order, corresponding to the early childhood education template plan.
- In an embodiment, the system updates a template plan based on user input. The system may implement a machine-learning model to update the template plan. The system may keep, or remove, an event based on a score assigned to the event. The score may be assigned to the event based on historical user selection of the event. As an example, the system presents a template plan comprising three required courses and a suggested elective course. A student modifies the event schedule to replace the suggested elective course with a different elective course. The system decrements a score value for the suggested elective course. As students repeatedly reject the suggested elective course, the score for the suggested elective course is further decremented. When the score reaches a threshold value, the system no longer includes the suggested elected course in the template plan.
- In an embodiment, the system presents the event management interface with the events in the initial order (Operation 304). The system may display the events with respect to a timeline. As an example, the system displays courses represented by blocks in association with respective semesters, as illustrated in
FIG. 2A . Alternatively, or additionally, the system may display the events in a plain-text list. Alternatively, or additionally, the system may display the events in a weekly, daily, or monthly calendar (e.g., the weekly calendar illustrated inFIG. 2B ). - In an embodiment, the event management interface receives user input modifying the initial event order (Operation 306). The event management interface may receive user input modifying the initial event order via a drag-and-drop operation. As an example, the user drags a course from the Fall 2014 semester to the Spring 2013 semester. As another example, the user drags a class from Tuesday/Thursday to an alternate class section on Monday/Wednesday. Alternatively, the event management interface may receive user input modifying the event order via text input. As an example, the user deletes a weekly meeting from a first time slot. The user types the weekly meeting into a second time slot.
- Alternatively, the system may receive user confirmation accepting the events in the initial order. The user may elect not to modify the event order. As an example, the virtual assistant displays the text, “I've prepared a schedule for your classes this semester. Do you have any changes?”. The virtual assistant displays buttons labeled “Yes” and “No.” The system receives user input selecting “No,” indicating acceptance of the events in the initial order. If the user accepts the events in the initial order, then operations 306-314 may be omitted from the sequence of operations.
- In an embodiment, the system determines whether the user input complies with ordering rules (Operation 308). The system may compare the new event order, indicated by the user input, with stored ordering rules. As an example, a user attempts to move a particular course in a course schedule. The system determines both: (a) whether another course that is a prerequisite for the particular course is now scheduled prior to the particular course, and (b) whether the particular course is a prerequisite for a course that is now scheduled subsequent to the particular course.
- As a detailed example, the system displays a proposed study plan for a physics bachelor's degree program. A user attempts to move a course, Physics 562, to an earlier position in the first semester of the study plan. However, Physics 562 requires two years of prerequisite courses. Accordingly, the system determines that the modification does not comply with the ordering rules. As another example, the user attempts to move Physics 562 to a later position in the eighth semester of the study plan. However, Physics 562 is a prerequisite for Physics 570, scheduled in the seventh semester of the study plan. Accordingly, the system determines that the modification does not comply with the ordering rules. As another example, the user attempts to move
Physics 522 to a later position in the fifth semester in the study plan. The prerequisites forPhysics 522 are scheduled prior to the fifth semester.Physics 522 is not a prerequisite for any other courses. Accordingly, the system determines that the modification complies with the ordering rules. - In an embodiment, the system may determine that a modification is permitted, or not permitted, based on non-course requirements. As an example, enrollment in a particular class may be contingent upon professor approval. If the system identifies a lack of professor approval for such a class, the system may determine that the modification does not comply with the ordering rules. As another example, course enrollment may be contingent on a student scoring above a threshold score on an entrance exam. If the system identifies that a student scored above the threshold score, the system may determine that the addition of the course to a course plan complies with the ordering rules.
- In an embodiment, the system modifies the event order (Operation 310). The system may modify the event order upon determining that the user input complies with the ordering rules. The system may modify the order of events, in the event schedule, as directed by the user.
- In an embodiment, the system refrains from modifying the event order. (Operation 312). The system may refrain from modifying the event order upon determining that the user input does not comply with the ordering rules. The system may retain the initial order.
- In an embodiment, the system determines whether additional user input is received modifying the event order (Operation 314). As an example, the system may detect user input moving a second event to a different position in the timeline via a drag-and-drop operation. If the system receives additional user input modifying the event order, then the system may repeat operations 308-312, as described above.
- In an embodiment, the scheduling engine finalizes the event schedule. (Operation 316). The scheduling engine may finalize the event schedule upon determining that no additional user input has been received modifying the event order. Alternatively, or additionally, the scheduling engine may finalize the event schedule upon receiving an instruction, from the user, to finalize the event schedule. As an example, the system detects that the user has clicked a “Complete Plan” button on the event management interface.
- The scheduling engine may finalize the event schedule by saving the event schedule. The scheduling engine may save the event schedule to the database and/or a device associated with the attendee.
- In an embodiment, the scheduling engine may enroll the attendee in events based on the event schedule. As an example, the system generates an event schedule comprising the attendee's classes for a semester. The scheduling engine enrolls the attendee in the classes via a university enrollment system.
- In an embodiment, the system monitors an event for availability changes. As an example, the system has generated a class schedule for a student for a semester. The system periodically obtains enrollment data for the classes in the schedule via a university enrollment system. The system may, for example, execute a polling operation via an exposed Application Programming Interface (API) of a university enrollment system. If the system determines that an event is no longer available, or an event may soon become unavailable, the system may execute an appropriate action. Appropriate actions may include notifying the attendee and/or enrolling the attendee in the event. As an example, the system determines that there is only one seat left in a class. Accordingly, the system enrolls the attendee in the class and transmits a notification to the attendee. As another example, the system determines that a class in an attendee's schedule has become full. The system may present a message to the attendee asking whether the attendee wants to be placed on a wait list. Alternatively, the system may modify the attendee's schedule to replace the full class with an available class.
- In an embodiment, the system may generate a first event schedule based on a previously-generated event schedule. As an example, the system generates a course plan which includes courses over 5 semesters. The course plan specifies four courses for the
Spring 2018 semester. Based on the course plan, the system generates a class schedule for theSpring 2018 semester, including four classes corresponding to the four courses in the course plan. As another example, the system may update a course plan based on classes in a class schedule. A course plan includes English 101 in theSpring 2018 semester. The system determines that English 101 has been scheduled in theFall 2017 semester. Accordingly, the system updates the course plan to move English 101 from theSpring 2018 semester to theFall 2017 semester. - A. Course Planning
- The following detailed example illustrates operations in accordance with one or more embodiments. The following detailed example should not be construed as limiting the scope of any of the claims. The system identifies a new student enrolled in a nursing program at Victory University. The system determines a proposed course plan for the student.
- The system identifies a template plan. The template plan lists thirty-two courses, arranged as four courses per semester over eight semesters. Together, the thirty-two courses satisfy the requirements for the nursing program. The system identifies records corresponding to the student's transfer credits. The student has completed six courses that satisfy various requirements of the nursing program. Accordingly, the system adjusts the course plan to omit courses for which the student has already fulfilled the corresponding requirement.
- The system presents, to the student via the virtual assistant, the message, “Hi! Are you ready to make a course plan for your nursing degree?”. The system displays, below the message, buttons labeled “Yes” and “No.” The system receives user input selecting the “Yes” button. The event management interface displays a visual representation of the course plan. The course plan may be displayed via a timeline of semesters as illustrated in
FIG. 2A . - The system receives user input adjusting the position of a course in the plan. The student drags and drops the course Adult Nursing Care III from
Fall 2019 toSpring 2018. The system analyzes the user input in light of stored ordering rules. The ordering rules dictate that Adult Nursing Care III must be taken subsequent to Adult Nursing Care II. The system determines that the user input would result in Adult Nursing Care II and Adult Nursing Care III being taken concurrently. Accordingly, the system determines that the user input does not comply with the ordering rules. The system refrains from modifying the event order. The system displays, via the virtual assistant, the message, “Sorry, you cannot take Adult Nursing Care III until you have passed Adult Nursing Care II.” Adult Nursing Care III remains in theFall 2019 position. - The system receives additional user input. The student drags and drops Adult Nursing Care III from
Fall 2019 toSpring 2019. The system determines that the second user modification would result in Adult Nursing Care III being scheduled subsequent to Adult Nursing Care II. Accordingly, the system determines that the user input complies with the ordering rules. The system modifies the event order according to the user input. - The system displays, via the virtual assistant, the message, “OK, I made the changes. Do you want to make any other changes?” The system displays, below the message, buttons labeled “Yes” and “No.” The system receives user input selecting “No.” The system finalizes the schedule by storing the study plan to the database.
- B. Class Scheduling
- The following detailed example illustrates operations in accordance with one or more embodiments. The following detailed example should not be construed as limiting the scope of any of the claims. The system determines that a student at Victory University has not enrolled in any courses for the
upcoming Fall 2017 semester. Accordingly, the system determines a proposed class schedule for the student for the upcoming semester. - The system identifies a previously generated course plan for the student (e.g., the course plan shown in
FIG. 2A ). The system identifies four courses that are in the student's course plan for theFall 2017 semester. The system further identifies records corresponding to classes the student has completed at Victory University. The system further identifies records corresponding to the student's transfer credits. Based on the courses in the course plan, and the student's completed classes, the system generates an initial class schedule. - The system presents, to the student via the virtual assistant, the message, “Hi! Are you ready to make a class schedule for next semester?”. The system displays, below the message, buttons labeled “Yes” and “No.” The system receives user input selecting the “Yes” button. The class management interface displays a visual representation of the class schedule. The class schedule may be displayed via a weekly calendar as illustrated in
FIG. 2B . - The system displays a modal comprising the message, “Would you like me to import your work calendar?”. The system displays, below the message, buttons labeled “Yes” and “No.” The system receives user input selecting the “Yes” button. The system imports data from a third-party calendar application. The data specifies that the student works Tuesdays and Thursdays from 7 am to 1 pm. Accordingly, the system adjusts the schedule so that the student does not have classes between 7 am and 1 pm on Tuesdays and Thursdays. Further, the system determines that the student has a 20-minute commute from work to school. Accordingly, the system schedules the classes on Tuesdays and Thursdays to allow for commute time.
- The system presents the updated proposed schedule to the student. The system presents a modal with the message, “Here is the schedule I have prepared. Would you like to make any changes?”.
- The system receives user input adjusting the position of a class in the schedule. The student drags and drops the course Math 101 from 9 am Monday to 2 pm Monday. The system analyzes the user input in light of class availability. The system determines that Math 101 is not available at 2 pm on Mondays, but Math 101 is available at 2 pm on Fridays. The system further determines that the student is available at 2 pm on Fridays. The system displays, via the virtual assistant, the message, “Math 101 is available at 2 pm on Fridays or 9 am on Mondays. What should we do?”. The system further displays buttons labeled “Keep it, and “Move it.” Responsive to detecting user selection of the “Move it” button, the system reschedules Math 101 to 2 pm on Fridays.
- The system receives additional user input. The student selects a button labeled “Filter Classes.” The system displays a modal displaying a list of campuses, professors, and course formats. The student deselects two professors. Responsive to identifying the deselected professors, the system changes the section of
English 4 in the student's schedule, so that the student is not scheduled in any classes from any deselected professors. - The system displays, via the virtual assistant, the message, “OK, I made the changes. Do you want to make any other changes?” The system displays, below the message, buttons labeled “Yes” and “No.” The system receives user input selecting “No.” The system finalizes the schedule by storing the class schedule to the database.
- 5. Selecting Events for Recommendation
-
FIG. 4 illustrates an example set of operations for selecting events for recommendation in accordance with one or more embodiments. One or more operations illustrated inFIG. 4 may be modified, rearranged, or omitted altogether. Accordingly, the particular sequence of operations illustrated inFIG. 4 should not be construed as limiting the scope of one or more embodiments. - In an embodiment, the event recommendation engine determines characteristics of a candidate attendee (Operation 402). The event recommendation engine may retrieve stored characteristics of the candidate attendee. Alternatively, or additionally, the event recommendation engine may determine characteristics of the candidate attendee via user input. As an example, the virtual assistant presents the message, “Do you work nights?”. The system receives user input specifying that the candidate attendee works nights. The system stores “Works Nights” as a characteristic of candidate attendee.
- In an embodiment, the event recommendation engine identifies records identifying a set of prior attendees that have attended an occurrence of a reoccurring event (Operation 404). The event recommendation engine may select a particular reoccurring event for analysis. As an example, the event recommendation engine may select a particular course from a subset of available courses. The subset of available courses may be selected based on factors such as prerequisite requirements and courses completed by the candidate attendee. The event recommendation engine may select a particular reoccurring event based on an event schedule and/or major. As an example, the recommendation engine identifies a potential elective class for recommending to Jane Doe in
Fall 2020, based on a course plan stored for Jane Doe's English degree program. - Alternatively, or additionally, the event recommendation engine may select a reoccurring event based on another event that the candidate attendee attended. As an example, the candidate attendee completed a course,
English 4. The event recommendation selects a course, Literature 109, because other students that completedEnglish 4 also completed Literature 109. The course, Literature 109, may be selected based further on determining that the candidate attendee's major is related to Literature 109. - Alternatively, or additionally, the event recommendation engine may select a reoccurring event based on an interest profile corresponding to the candidate attendee. The interest profile may, for example, include interests of the candidate attendee obtained from web browsing data and/or surveys associated with the candidate attendee.
- Alternatively, or additionally, the event recommendation engine may select a reoccurring event based on popularity of the event. The event recommendation engine may establish a threshold number or threshold percentage of event attendees to attend the reoccurring event in a prior time period. If the number of event attendees that attended the reoccurring event meets the threshold, the event recommendation engine may select the reoccurring event.
- In an embodiment, the event recommendation engine identifies records corresponding to the prior attendees in association with the event. The event recommendation engine may analyze the records to identify characteristics of the prior attendees. The event recommendation engine may identify characteristics of prior attendees that had a positive experience with a prior occurrence of the event. As an example, the event recommendation engine identifies characteristics of prior attendees who have enrolled in and/or passed Chemistry 101. Alternatively, or additionally, the event recommendation engine may identify characteristics of prior attendees that had a negative experience with a prior occurrence of the event. As an example, the event recommendation engine identifies characteristics of prior attendees who have failed Chemistry 101. As another example, the event recommendation engine identifies characteristics of prior attendees that did not enjoy an opera performance.
- In an embodiment, the event recommendation engine computes an event score for the reoccurring event (Operation 406). The event recommendation engine may compute the event score based on a comparison of (a) characteristics of the candidate attendee and (b) characteristics of the set of prior attendees. To determine the event score, the system may identify characteristics which are shared between the candidate attendee and the prior attendees. Alternatively, or additionally, the system may identify characteristics which differ between the candidate attendee and the prior attendees. The system may compare the characteristics using a subset of prior attendees. As an example, the system may identify characteristics which are shared between the candidate attendee and prior attendees that have reported enjoying the reoccurring event.
- The system may compute the event score by incrementing and/or decrementing a value, based on the comparison. As an example, the system may increment an event score, for a candidate attendee, for each characteristic that the candidate attendee shares with prior attendees that had a positive experience with a prior occurrence of an event. The system may decrement the event score for characteristics that the candidate attendee shares with prior attendees that had a negative experience with a prior occurrence of an event. The system may modify the event score based on a comparison of particular attendee characteristics in association with the event. As an example, the system may increment or decrement the event score based on whether the candidate attendee shares characteristics with prior attendees who have received an A grade in a course. The characteristics compared may include academic characteristics such as grades, as well as non-academic characteristics such as demographic information. The characteristics compared may include student experiences. As an example, if the candidate attendee and the set of prior attendees both participated in a foreign exchange program in Japan, the system may increase the event score for a class completed by the set of prior attendees.
- In an embodiment, the event score is based on a success rate of each of the set of prior attendees. Success may be measured according to one or more metrics. As examples, succeeding may be defined as graduating from an educational institution, obtaining employment after graduating, or graduating within a threshold time period (e.g., four years). Based on the success rate of the prior attendees, the event score may be increased. As an example, 70% of prior students that took a particular class historically graduated early. Accordingly, the system increases event score for the particular class.
- In an embodiment, the event recommendation engine refines the event score based on characteristics of the candidate attendee. As an example, the system may increment or decrement the event score based on the candidate attendee's interests. The system may increment an event score if the candidate attendee has indicated an interest in the subject matter of the event on social media or by web browsing history. The system may increment an event score if the candidate attendee has indicated an interest in the subject matter of the event by attending similar events at a current or prior educational institution.
- In an embodiment, the event score is based on institutional preferences. As an example, the system is selecting a class to recommend for a freshman student. The student is scheduling classes for the student's first semester at a college. The college requires freshmen to take both math and English in the first year of attendance. The college has specified a preference to enroll half of incoming freshmen in math in the first semester of attendance. The college has specified a preference to enroll half of incoming freshmen in English in the first semester of attendance. The preferences are established to evenly distribute the freshmen between math and English. The system determines that more freshmen are currently enrolled in math than in English. Accordingly, the system increments the event score for the student for English. The system decrements the event score for the student for math. As another example, the system may increment or decrement the event score based on a target number of students for a class. The target number of students for the class may correspond to distributing students evenly, as described above. Alternatively, or additionally, the target number of students for the class may correspond to available seats in a class.
- In an embodiment, the event recommendation engine determines whether the event score meets a threshold value (Operation 408). The event recommendation engine may retrieve a stored threshold value. The event recommendation engine may compare the event score to the threshold value, to determine whether the event score meets the threshold vale.
- In an embodiment, the system recommends the reoccurring event for the candidate attendee (Operation 410). The system may recommend the reoccurring event if the event score meets the threshold value.
- The system may recommend the reoccurring event by presenting the event directly to the candidate attendee. The system may recommend an event with or without the event management interface. The system may recommend an event by including the event in an event schedule presented via the event management interface. The system may recommend a particular time period for the candidate attendee to attend the event based on prior events attended by the candidate attendee. As an example, the system may only recommend a course in an upcoming semester after determining that a pre-requisite for that course has been completed. The system may recommend a particular time period for the candidate attendee to attend the event based an event schedule for the candidate attendee. As an example, during December 2017, the system may recommend a course for the fall semester in 2018 based on a pre-requisite for the course being scheduled for the candidate attendee during the spring semester in 2018. The system may request user input accepting or rejecting the recommendation. Alternatively, or additionally, the system may present the recommendation on a stand-alone basis, via the event management interface. Alternatively, or additionally, the system may present the recommendation via email or text message. As an example, the system recommends two continuing education courses, for a candidate attendee, via email. As another example, the system recommends a medical convention for a candidate attendee via text message. Alternatively, or additionally, the system may present the recommendation via the virtual assistant.
- In an embodiment, the system may recommend the reoccurring event for the candidate attendee by presenting the event to an administrator, such as a school counselor or a travel agent. As an example, the system may present a course recommendation to a guidance counselor via email. The guidance counselor can assess the recommendation and approve or reject the recommendation. An approved recommendation may be presented to the student via the event management interface. Alternatively, or additionally, the guidance counselor may recommend the course to the student in-person or via email.
- In an embodiment, the system refrains from recommending the reoccurring event for the candidate attendee (Operation 412). The system may refrain from recommending the event if the event score is less than the threshold value.
- A. Recommending a Course
- The following detailed example illustrates operations in accordance with one or more embodiments. The following detailed example should not be construed as limiting the scope of any of the claims. The system selects a course to recommend for inclusion in a course plan for a student, Chris Sanchez.
- The system determines characteristics of Chris. The system determines that Chris is a transfer student. The system determines that Chris is 20 years old, male, Caucasian, and from Arizona. The system determines that Chris earned a 3.6 GPA at the college from which Chris is transferring. The system determines that Chris earned a 3.3 GPA in high school. The system determines that Chris participates in hockey and water polo. The system determines that Chris is a political science major. The system determines that Chris spends an average of two hours a day browsing the internet.
- The system identifies a potential course to include in the course plan. Much of the course plan is determined based on a template plan for a political science transfer student. There are several openings for elective courses that are flexible in the template plan. The system analyzes one potential elective course, Introduction to Pottery.
- The system identifies event records for students that have previously enrolled in Introduction to Pottery. The system identifies characteristics for each of the students that has enrolled in Introduction to Pottery. The characteristics include demographic characteristics, as listed above for Chris Sanchez. Additionally, the characteristics identified for prior students include whether the students passed, failed, or dropped Introduction to Pottery. The characteristics identified for prior students further includes a grade received by the students in Introduction to Pottery. The characteristics identified for prior students further include an overall GPA for the students in the semester in which the students took Introduction to Pottery.
- The system compares the characteristics of Chris Sanchez to the characteristics of the set of prior attendees that have previously attended Introduction to Pottery. The system uses a machine-learning model to compute the event score based on interrelated attendee characteristics.
- The system divides prior attendees of Introduction to Pottery into two groups: those who received a grade of C or better in the course, and those who did not receive a grade of C or better. Characteristics of Chris are compared to the characteristics of the students that received a grade of C or better. For each characteristic that Chris shares with a particular student that received a C, Chris's event score is incremented by 0.01. for each characteristic that Chris shares with a particular student that received a B, Chris's event score is incremented by 0.03. for each characteristic Chris shares with a particular student that received an A, Chris's event score is incremented by 0.08. Based on the comparison, the system assigns Introduction to Pottery an event score of 8 for Chris Sanchez.
- The system refines the event score based on Chris's interests. The system determines that Chris follows pottery-related pages on social media. The system determines that Chris has frequently enrolled in art classes in the past. Accordingly, the system increments Chris's event score from 8 to 9.
- The system compares the event score of 9 to a threshold value for recommendation. The threshold value for recommendation is 7. Accordingly, the system determines that the event score meets the threshold value.
- Based on the event score meeting the threshold value, the system recommends Introduction to Pottery for Chris. The system recommends the course by including the course in a course schedule presented to Chris Sanchez via the course management interface.
- B. Recommending a Class
- The following detailed example illustrates operations in accordance with one or more embodiments. The following detailed example should not be construed as limiting the scope of any of the claims. The system selects a class to potentially recommend for Chris Sanchez for the
Fall 2019 semester. Chris is a sophomore at Victory University studying political science. - A class may be recommended using the same considerations described above with respect to recommending a course in Section 5A (given that a class is a specific instance of a course). Additionally, the system may factor in class-specific elements such as location, time slots, and professors, when selecting a class for recommendation.
- The system identifies characteristics for Chris, as described above with respect to Section 5A. The system further identifies availability and preferences for Chris. Chris has specified, via the class management interface, that he does not want to take any classes before 10 am. Chris has also specified that he prefers to take classes taught by a professor, rather than by a teaching assistant.
- The system uses a machine-learning model to compare characteristic for Chris to characteristics for students that have previously taken Introduction to Pottery, as described above with respect to Section 5A. The system computes an event score. Overall, Introduction to Pottery receives an event score of 9. In addition to comparison of Chris's characteristics and characteristics of students that have previously enrolled in Introduction to Pottery, the system accounts for Chris's availability and preferences. The system analyzes two sections of Introduction to Pottery. Section A is offered at 11 am and is taught by a professor. Section B is offered at 9 am and is taught by a professor. Section C is offered at 2 pm and is taught by a teaching assistant. Based on Chris's preference for scheduling classes after 9 am, the event score for Section B is decremented by 4 points to 5. Based on Chris's preference for classes taught by a professor, the event score for Section C is decremented by 3 points to 6. Accordingly, Section A has the highest event score of 9.
- The system compares the respective event score for each section to a threshold value of 7. The system determines that the event score for Section A meets the threshold value, while the event scores for Sections B and C do not meet the threshold value. Accordingly, the system recommends Introduction to Pottery Section A to Chris. The system refrains from recommending Introduction to Pottery Sections B and C to Chris. The system recommends introduction to Pottery Section A by including the class in a class schedule. The class schedule is presented to Chris via the class management interface.
- 6. Miscellaneous; Extensions
- Embodiments are directed to a system with one or more devices that include a hardware processor and that are configured to perform any of the operations described herein and/or recited in any of the claims below.
- In an embodiment, a non-transitory computer readable storage medium comprises instructions which, when executed by one or more hardware processors, causes performance of any of the operations described herein and/or recited in any of the claims.
- Any combination of the features and functionalities described herein may be used in accordance with one or more embodiments. In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
- 7. Hardware Overview
- According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or network processing units (NPUs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, FPGAs, or NPUs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
- For example,
FIG. 5 is a block diagram that illustrates acomputer system 500 upon which an embodiment of the invention may be implemented.Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and ahardware processor 504 coupled with bus 502 for processing information.Hardware processor 504 may be, for example, a general-purpose microprocessor. -
Computer system 500 also includes amain memory 506, such as a random-access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed byprocessor 504.Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed byprocessor 504. Such instructions, when stored in non-transitory storage media accessible toprocessor 504, rendercomputer system 500 into a special-purpose machine that is customized to perform the operations specified in the instructions. -
Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions forprocessor 504. Astorage device 510, such as a magnetic disk or optical disk, is provided and coupled to bus 502 for storing information and instructions. -
Computer system 500 may be coupled via bus 502 to adisplay 512, such as a cathode ray tube (CRT), for displaying information to a computer user. Aninput device 514, including alphanumeric and other keys, is coupled to bus 502 for communicating information and command selections toprocessor 504. Another type of user input device iscursor control 516, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections toprocessor 504 and for controlling cursor movement ondisplay 512. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. -
Computer system 500 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes orprograms computer system 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed bycomputer system 500 in response toprocessor 504 executing one or more sequences of one or more instructions contained inmain memory 506. Such instructions may be read intomain memory 506 from another storage medium, such asstorage device 510. Execution of the sequences of instructions contained inmain memory 506 causesprocessor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. - The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as
storage device 510. Volatile media includes dynamic memory, such asmain memory 506. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, content-addressable memory (CAM), and ternary content-addressable memory (TCAM). - Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
- Various forms of media may be involved in carrying one or more sequences of one or more instructions to
processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local tocomputer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 502. Bus 502 carries the data tomain memory 506, from whichprocessor 504 retrieves and executes the instructions. The instructions received bymain memory 506 may optionally be stored onstorage device 510 either before or after execution byprocessor 504. -
Computer system 500 also includes acommunication interface 518 coupled to bus 502.Communication interface 518 provides a two-way data communication coupling to anetwork link 520 that is connected to alocal network 522. For example,communication interface 518 may be an integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example,communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation,communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. - Network link 520 typically provides data communication through one or more networks to other data devices. For example,
network link 520 may provide a connection throughlocal network 522 to ahost computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526.ISP 526 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the “Internet” 528.Local network 522 andInternet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals onnetwork link 520 and throughcommunication interface 518, which carry the digital data to and fromcomputer system 500, are example forms of transmission media. -
Computer system 500 can send messages and receive data, including program code, through the network(s),network link 520 andcommunication interface 518. In the Internet example, a server 350 might transmit a requested code for an application program throughInternet 528,ISP 526,local network 522 andcommunication interface 518. - The received code may be executed by
processor 504 as it is received, and/or stored instorage device 510, or other non-volatile storage for later execution. - In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
Claims (20)
1. One or more non-transitory computer-readable media storing instructions, which when executed by one or more hardware processors, cause performance of operations comprising:
generating a schedule for a candidate attendee that includes a reoccurring event, the generating comprising:
identifying a plurality of scheduling constraints associated with the candidate attendee, the scheduling constraints including at least one scheduled time constraint during which the candidate attendee has a previously scheduled event;
identifying a plurality of event constraints associated with the reoccurring event, the plurality of event constraints including an availability schedule identifying a first set of times for the reoccurring event and a second set of times for the reoccurring event;
accessing a scheduling template; and
applying to the scheduling template (1) the scheduling constraints associated with the candidate attendee and (2) the plurality of event constraints to generate the schedule for the candidate attendee, the schedule comprising the reoccurring event at the first set of times.
2. The media of claim 1 , further comprising a set of ordering rules associated with the reoccurring event, the set of ordering rules specifying a sequence in which the reoccurring event must be attended relative to one or both of (1) a pre-requisite to the reoccurring event or (2) an event that is attended concurrently with the reoccurring event.
3. The media of claim 2 , further comprising accessing a candidate attendee attendance history listing a set of previously attended events and using the attendance history to determine whether the candidate attendee is eligible to attend a particular reoccurring event based on the set of ordering rules associated with the reoccurring event.
4. The media of claim 1 , wherein the plurality of scheduling constraints associated with the candidate attendee are identified by accessing a calendar associated with the candidate attendee, wherein the calendar identifies at least one scheduled time constraint.
5. The media of claim 1 , wherein:
the plurality of scheduling constraints associated with the candidate attendee further comprise a total number of hours or a total number of events during a measurement period to which the candidate attendee is already committed; and
responsive to determining that the total number of hours or the total number of events to which the candidate attendee is already committed during the measurement period is above a corresponding threshold value, prohibiting additional reoccurring events from being scheduled.
6. The media of claim 1 , wherein the plurality of scheduling constraints associated with the candidate attendee are identified based on a pattern of historical user scheduling behavior.
7. The media of claim 6 , wherein the pattern of historical user scheduling behavior comprises one or both of cancelation requests and rescheduling requests for reoccurring events during one or both of a time of day or a day of week.
8. The media of claim 1 , wherein the scheduling template identifies a set of reoccurring events that the candidate attendee is required to attend.
9. The media of claim 8 , wherein the set of reoccurring events that the candidate attendee is required to attend are determined based on requirements for completing a certification.
10. The media of claim 1 , wherein:
the plurality of scheduling constraints associated with the candidate attendee further comprise at least one filter criteria for ranking time periods during which reoccurring events may be scheduled according one or more corresponding user preferences;
the user is available at the first set of times and the second set of times; and
scheduling the reoccurring event at the first set of times is based on a particular filter criteria associated with user preferences of the candidate attendee.
11. The media of claim 1 , wherein the candidate attendee is available to attend the reoccurring event at both the first set of times and the second set of times, and wherein the first set of times is selected based on a pattern of historical user scheduling.
12. The media of claim 1 , further comprising refraining from selecting the second set of times for the reoccurring event in response to determining that the second set of times for the reoccurring event conflicts with the previously scheduled event.
13. A method comprising:
generating a schedule for a candidate attendee that includes a reoccurring event, the generating comprising:
identifying a plurality of scheduling constraints associated with the candidate attendee, the scheduling constraints including at least one scheduled time constraint during which the candidate attendee has a previously scheduled event;
identifying a plurality of event constraints associated with the reoccurring event, the plurality of event constraints including an availability schedule identifying a first set of times for the reoccurring event and a second set of times for the reoccurring event;
accessing a scheduling template; and
applying to the scheduling template (1) the scheduling constraints associated with the candidate attendee and (2) the plurality of event constraints to generate the schedule for the candidate attendee, the schedule comprising the reoccurring event at the first set of times.
14. The method of claim 13 , further comprising a set of ordering rules associated with the reoccurring event, the set of ordering rules specifying a sequence in which the reoccurring event must be attended relative to one or both of (1) a pre-requisite to the reoccurring event or (2) an event that is attended concurrently with the reoccurring event.
15. The method of claim 14 , further comprising accessing a candidate attendee attendance history listing a set of previously attended events and using the attendance history to determine whether the candidate attendee is eligible to attend a particular reoccurring event based on the set of ordering rules associated with the reoccurring event.
16. The method of claim 13 , wherein the plurality of scheduling constraints associated with the candidate attendee are identified by accessing a calendar associated with the candidate attendee, wherein the calendar identifies at least one scheduled time constraint.
17. The method of claim 13 , wherein:
the plurality of scheduling constraints associated with the candidate attendee further comprise a total number of hours or a total number of events during a measurement period to which the candidate attendee is already committed; and
responsive to determining that the total number of hours or the total number of events to which the candidate attendee is already committed during the measurement period is above a corresponding threshold value, prohibiting additional reoccurring events from being scheduled.
18. The method of claim 13 , wherein the plurality of scheduling constraints associated with the candidate attendee are identified based on a pattern of historical user scheduling behavior.
19. The method of claim 18 , wherein the pattern of historical user scheduling behavior comprises one or both of cancelation requests and rescheduling requests for reoccurring events during one or both of a time of day or a day of week.
20. The method of claim 13 , wherein the scheduling template identifies a set of reoccurring events that the candidate attendee is required to attend.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/375,292 US20210342720A1 (en) | 2017-09-30 | 2021-07-14 | Event Recommendation System |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762566405P | 2017-09-30 | 2017-09-30 | |
US201762566394P | 2017-09-30 | 2017-09-30 | |
US15/933,300 US11132612B2 (en) | 2017-09-30 | 2018-03-22 | Event recommendation system |
US17/375,292 US20210342720A1 (en) | 2017-09-30 | 2021-07-14 | Event Recommendation System |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/933,300 Continuation US11132612B2 (en) | 2017-09-30 | 2018-03-22 | Event recommendation system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210342720A1 true US20210342720A1 (en) | 2021-11-04 |
Family
ID=65896138
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/933,294 Active 2039-12-25 US11010677B2 (en) | 2017-09-30 | 2018-03-22 | Event management system |
US15/933,300 Active 2040-06-25 US11132612B2 (en) | 2017-09-30 | 2018-03-22 | Event recommendation system |
US17/375,292 Pending US20210342720A1 (en) | 2017-09-30 | 2021-07-14 | Event Recommendation System |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/933,294 Active 2039-12-25 US11010677B2 (en) | 2017-09-30 | 2018-03-22 | Event management system |
US15/933,300 Active 2040-06-25 US11132612B2 (en) | 2017-09-30 | 2018-03-22 | Event recommendation system |
Country Status (2)
Country | Link |
---|---|
US (3) | US11010677B2 (en) |
CN (2) | CN109598651B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606221B1 (en) * | 2021-12-13 | 2023-03-14 | International Business Machines Corporation | Event experience representation using tensile spheres |
WO2023166483A1 (en) * | 2022-03-04 | 2023-09-07 | Promethean Limited | Graphical user interface generation and content delivery systems and methods |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108881B2 (en) * | 2016-03-31 | 2021-08-31 | Rovi Guides, Inc. | Methods and systems for determining end dates for user profile modifications based on real-life events |
US11115359B2 (en) * | 2016-11-03 | 2021-09-07 | Samsung Electronics Co., Ltd. | Method and apparatus for importance filtering a plurality of messages |
US11836683B2 (en) * | 2018-01-05 | 2023-12-05 | Wyn.Net, Llc | Systems and methods for electronic lesson management |
US11270234B1 (en) * | 2018-06-27 | 2022-03-08 | Microsoft Technology Licensing, Llc | Inference-based computational alignment of data sets |
US11551140B1 (en) * | 2019-10-09 | 2023-01-10 | Meta Platforms, Inc. | Adjusting a value associated with presenting an online system user with a link that initiates a conversation with an entity via a messaging application |
US10789553B1 (en) * | 2019-12-30 | 2020-09-29 | Accenture Global Solutions Limited | Experience orchestration |
US11748660B2 (en) * | 2020-09-17 | 2023-09-05 | Google Llc | Automated assistant training and/or execution of inter-user procedures |
WO2022056893A1 (en) * | 2020-09-20 | 2022-03-24 | 曹庆恒 | Time scheduling system and time scheduling method |
US20220141044A1 (en) * | 2020-11-05 | 2022-05-05 | Intermedia.Net, Inc. | Video Conference Calendar Integration |
US20220245597A1 (en) * | 2021-02-01 | 2022-08-04 | Kognitiv, Inc. | System and method for managing event data |
USD1044827S1 (en) * | 2021-04-13 | 2024-10-01 | Recentive Analytics, Inc. | Display screen with a graphical user interface |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015188041A1 (en) * | 2014-06-06 | 2015-12-10 | Promethean Limited | Dynamic scheduling of participants into groups |
US20160026689A1 (en) * | 2013-02-08 | 2016-01-28 | College Scheduler LLC | System and process to facilitate course registration and optimal class selection |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5660176A (en) * | 1993-12-29 | 1997-08-26 | First Opinion Corporation | Computerized medical diagnostic and treatment advice system |
US5727950A (en) * | 1996-05-22 | 1998-03-17 | Netsage Corporation | Agent based instruction system and method |
JP2000511304A (en) | 1996-05-22 | 2000-08-29 | エージェント ベースド カリキュラー インコーポレイテッド | Agent-based instruction system and method |
US6427063B1 (en) * | 1997-05-22 | 2002-07-30 | Finali Corporation | Agent based instruction system and method |
EP0918296A1 (en) * | 1997-11-04 | 1999-05-26 | Cerep | Method of virtual retrieval of analogs of lead compounds by constituting potential libraries |
US6347333B2 (en) | 1999-01-15 | 2002-02-12 | Unext.Com Llc | Online virtual campus |
WO2001082150A2 (en) | 2000-04-24 | 2001-11-01 | Highmarks, Inc. | System for scheduling classes and managing educational resources |
US20040167786A1 (en) | 2002-03-08 | 2004-08-26 | Grace John J. | System for optimizing selection of a college or a university and a method for utilizing the system provided by a program |
US20040009462A1 (en) * | 2002-05-21 | 2004-01-15 | Mcelwrath Linda Kay | Learning system |
EP1550074A4 (en) * | 2002-08-22 | 2009-10-21 | Agency Science Tech & Res | Prediction by collective likelihood from emerging patterns |
AU2003270402A1 (en) | 2002-09-09 | 2004-03-29 | Adeboyejo A. Oni | Enablement of collaborative and integrated decision-making |
WO2004044812A1 (en) | 2002-11-12 | 2004-05-27 | Turning Point For Life, Inc. | Educational institution selection system and method |
US7584114B2 (en) * | 2003-01-22 | 2009-09-01 | International Business Machines Corporation | System and method for integrating projects events with personal calendar and scheduling clients |
US7305129B2 (en) | 2003-01-29 | 2007-12-04 | Microsoft Corporation | Methods and apparatus for populating electronic forms from scanned documents |
US7426496B2 (en) | 2004-03-03 | 2008-09-16 | Microsoft Corporation | Assisted form filling |
US20040161728A1 (en) | 2003-02-14 | 2004-08-19 | Benevento Francis A. | Distance learning system |
US8620831B1 (en) * | 2003-06-03 | 2013-12-31 | Phillip M. Adams | Student-centered, cross-institutional curriculum management system apparatus and method |
US7912528B2 (en) * | 2003-06-25 | 2011-03-22 | Siemens Medical Solutions Usa, Inc. | Systems and methods for automated diagnosis and decision support for heart related diseases and conditions |
US7882041B2 (en) | 2004-01-09 | 2011-02-01 | American Public University Systems, Inc. | System and method for optimizing the effectiveness of an educational institution |
US10339538B2 (en) * | 2004-02-26 | 2019-07-02 | Oath Inc. | Method and system for generating recommendations |
US20050222996A1 (en) * | 2004-03-30 | 2005-10-06 | Oracle International Corporation | Managing event-condition-action rules in a database system |
US20050227216A1 (en) * | 2004-04-12 | 2005-10-13 | Gupta Puneet K | Method and system for providing access to electronic learning and social interaction within a single application |
CN101292236A (en) * | 2004-04-30 | 2008-10-22 | 微软公司 | End-user application customization using rules |
US20060069576A1 (en) | 2004-09-28 | 2006-03-30 | Waldorf Gregory L | Method and system for identifying candidate colleges for prospective college students |
US20060265258A1 (en) | 2005-04-18 | 2006-11-23 | Craig Powell | Apparatus and methods for an application process and data analysis |
US20060252021A1 (en) * | 2005-05-03 | 2006-11-09 | Watkins Harold C | Requirements based registration system |
US20060271419A1 (en) * | 2005-05-31 | 2006-11-30 | O'sullivan Patrick | Method and system for prioritizing meeting attendees |
US20070211871A1 (en) * | 2006-03-08 | 2007-09-13 | David Sjolander | Method and system for organizing incident records in an electronic equipment |
US8457544B2 (en) | 2008-12-19 | 2013-06-04 | Xerox Corporation | System and method for recommending educational resources |
US20090035733A1 (en) * | 2007-08-01 | 2009-02-05 | Shmuel Meitar | Device, system, and method of adaptive teaching and learning |
US20090081629A1 (en) | 2007-09-24 | 2009-03-26 | Chad Walter Billmyer | System and method for matching students to schools |
US20090197234A1 (en) | 2008-01-31 | 2009-08-06 | Damian Creamer | System and method for a virtual school |
US20100009332A1 (en) | 2008-07-08 | 2010-01-14 | Starfish Retention Solutions, Inc. | Method for compelling engagement between students and providers |
US8333659B2 (en) * | 2009-09-30 | 2012-12-18 | Zynga Inc. | Apparatuses, methods and systems for a live online game tester |
US8412736B1 (en) | 2009-10-23 | 2013-04-02 | Purdue Research Foundation | System and method of using academic analytics of institutional data to improve student success |
US20110270684A1 (en) | 2010-04-28 | 2011-11-03 | Ayax Systems, Inc. | Decision-making system and method |
US8764454B1 (en) | 2010-06-14 | 2014-07-01 | Scott Christopher Turner | Individualized academic focus credential structure, system and methods thereof |
US9299266B2 (en) | 2010-09-24 | 2016-03-29 | Lexia Learning Systems Llc | System for performing assessment without testing |
US20120233108A1 (en) | 2011-03-10 | 2012-09-13 | Jenzabar, Inc. | System and Method for Determining Risk of Student Attrition |
US10896389B2 (en) | 2011-03-10 | 2021-01-19 | Jenzabar, Inc. | Workflow method and system for student retention management |
US20120233083A1 (en) | 2011-03-10 | 2012-09-13 | Jenzabar, Inc. | Method and System for Automatic Alert Generation in Retention Management System |
US20130011821A1 (en) | 2011-04-07 | 2013-01-10 | Tristan Denley | Course recommendation system and method |
US8775213B2 (en) * | 2011-07-21 | 2014-07-08 | Emergent Health Care Solutions, Llc | Method, apparatus, and system for reading, processing, presenting, and/or storing electronic medical record information |
US20140074896A1 (en) | 2011-07-21 | 2014-03-13 | Partant Technology, Inc. | System and method for data analysis and display |
WO2013066868A1 (en) | 2011-10-31 | 2013-05-10 | Umatch, Inc. | Student retention method and system |
US8855901B2 (en) * | 2012-06-25 | 2014-10-07 | Google Inc. | Providing route recommendations |
US20140052663A1 (en) | 2012-08-20 | 2014-02-20 | Milestones Media, LLC | System and method for electronic evaluation and selection of schools based on user inputs |
US9355415B2 (en) * | 2012-11-12 | 2016-05-31 | Google Inc. | Providing content recommendation to users on a site |
US9269064B2 (en) * | 2012-11-26 | 2016-02-23 | Microsoft Technology Licensing, Llc | For-your-information events |
US20140188442A1 (en) | 2012-12-27 | 2014-07-03 | Pearson Education, Inc. | System and Method for Selecting Predictors for a Student Risk Model |
US8972417B2 (en) | 2013-01-07 | 2015-03-03 | Linkedin Corporation | Suggested out of network communication recipients |
US20140205987A1 (en) | 2013-01-18 | 2014-07-24 | Steve Habermehl | Apparatus and method for enhancing academic planning and tracking via an interactive repository database |
US20150066559A1 (en) | 2013-03-08 | 2015-03-05 | James Robert Brouwer | College Planning System, Method and Article |
US9547695B2 (en) * | 2013-03-13 | 2017-01-17 | Abb Research Ltd. | Industrial asset event chronology |
US20140279620A1 (en) | 2013-03-15 | 2014-09-18 | Uversity, Inc. | Systems and methods for determining enrollment probability |
US20140372329A1 (en) * | 2013-06-18 | 2014-12-18 | Krishnadas Menon | Automated sourcing and screening of candidate profiles |
EP3011466A1 (en) * | 2013-06-18 | 2016-04-27 | Hewlett Packard Enterprise Development LP | Prioritizing event notices utilizing past-preference pairings |
US20140379602A1 (en) | 2013-06-25 | 2014-12-25 | Apollo Education Group, Inc. | Skill-driven education marketplace |
US8964962B1 (en) * | 2013-10-01 | 2015-02-24 | Avaya Inc. | Dialog reorder |
US9940606B2 (en) | 2013-10-30 | 2018-04-10 | Chegg, Inc. | Correlating jobs with personalized learning activities in online education platforms |
US20150134556A1 (en) | 2013-11-12 | 2015-05-14 | RevUp Software Inc. | Systems and methods for raising donations |
US20150149379A1 (en) | 2013-11-22 | 2015-05-28 | Jacob Dearmon | Student Evaluation Enrollment System |
US20150149380A1 (en) | 2013-11-23 | 2015-05-28 | Saagar Sunil Kulkarni | Method and System for College Matching |
US9397904B2 (en) * | 2013-12-30 | 2016-07-19 | International Business Machines Corporation | System for identifying, monitoring and ranking incidents from social media |
US9785627B2 (en) | 2014-01-23 | 2017-10-10 | Xerox Corporation | Automated form fill-in via form retrieval |
US20150220880A1 (en) | 2014-02-06 | 2015-08-06 | Apollo Education Group, Inc. | Suggesting a candidate enrollment item for a candidate student |
US20150248739A1 (en) | 2014-02-28 | 2015-09-03 | Linkedin Corporation | Recommendation system of educational opportunities to members in a social network |
US9519510B2 (en) * | 2014-03-31 | 2016-12-13 | Amazon Technologies, Inc. | Atomic writes for multiple-extent operations |
BR112016024182B1 (en) * | 2014-04-18 | 2023-04-25 | Telecom Italia S.P.A. | METHOD TO IDENTIFY AND LOCATE AT LEAST ONE RELEVANT LOCATION, AND, SYSTEM COUPLED TO A WIRELESS TELECOMMUNICATION NETWORK ADAPTED TO IMPLEMENT THE METHOD |
US20150317604A1 (en) | 2014-05-05 | 2015-11-05 | Zlemma, Inc. | Scoring model methods and apparatus |
US20160071424A1 (en) * | 2014-09-04 | 2016-03-10 | Megan Colleen Harney | Learning Network System |
US20160086134A1 (en) * | 2014-09-19 | 2016-03-24 | Eric Schwab | System and method for identifying high value candidates |
US9971976B2 (en) | 2014-09-23 | 2018-05-15 | International Business Machines Corporation | Robust selection of candidates |
US20160140678A1 (en) | 2014-11-14 | 2016-05-19 | Edunav, Inc. | System and method for optimizing an educational study path |
WO2016094348A1 (en) | 2014-12-09 | 2016-06-16 | Simple Entry, Llc | Identifying opportunities and/or complimentary personal traits |
US9984073B2 (en) | 2015-02-23 | 2018-05-29 | D2L Corporation | Systems and methods for motivation-based course selection |
US20160275634A1 (en) | 2015-03-18 | 2016-09-22 | Linkedln Corporation | Using large data sets to improve candidate analysis in social networking applications |
US20160358258A1 (en) * | 2015-06-02 | 2016-12-08 | Bank Of America Corporation | System for performing a stress test on a retirement plan |
US20180293679A1 (en) | 2015-06-16 | 2018-10-11 | ColleMark LLC | Systems and methods of a platform for candidate identification |
US10529043B2 (en) | 2015-06-16 | 2020-01-07 | Ellucian Company L.P. | Higher education data model systems and networks, and methods of organizing and operating the same |
US20170004453A1 (en) | 2015-06-30 | 2017-01-05 | Linkedin Corporation | Job type recommendation engine |
US10607298B1 (en) | 2015-07-30 | 2020-03-31 | Intuit Inc. | System and method for indicating sections of electronic tax forms for which narrative explanations can be presented |
CN105245435B (en) * | 2015-09-28 | 2018-11-06 | 广州市百果园网络科技有限公司 | A kind of friend recommendation method and system |
US20170154308A1 (en) | 2015-11-30 | 2017-06-01 | LindedIn Corporation | Recommendations based on skills gap identification |
US20170256172A1 (en) | 2016-03-04 | 2017-09-07 | Civitas Learning, Inc. | Student data-to-insight-to-action-to-learning analytics system and method |
US10229100B1 (en) | 2016-04-22 | 2019-03-12 | Intuit Inc. | Augmented reality form fill |
US20170316528A1 (en) | 2016-04-28 | 2017-11-02 | Karen E. Willcox | System and method for generating visual education maps |
US20180052919A1 (en) | 2016-08-22 | 2018-02-22 | Xinteractive Inc. | Systems and methods for conversion analytics |
US20180130155A1 (en) | 2016-11-10 | 2018-05-10 | Adeboyejo Adetokunbo Oni | Systems and Methods for Simultaneously Visualizing Academic and Career Interrelationship Arrays |
US11393061B2 (en) | 2017-01-05 | 2022-07-19 | Imam Abdulrahman Bin Faisal University | System and method for determining an amount of correlation between non-orthogonal vectors characterizing curricula participation |
US10909867B2 (en) | 2017-04-05 | 2021-02-02 | MF Genius, Corp. | Student engagement and analytics systems and methods with machine learning student behaviors based on objective measures of student engagement |
US20180350016A1 (en) | 2017-06-05 | 2018-12-06 | Bradley Ward | Method, apparatus, and system for predictive management of college search information and selection information |
US11068651B2 (en) | 2017-06-15 | 2021-07-20 | Estia, Inc. | Gap analysis on assessment data analysis platform |
US10650698B2 (en) | 2017-09-08 | 2020-05-12 | Sparxteq, Inc. | Systems and methods for analysis and interactive presentation of learning metrics |
-
2018
- 2018-03-22 US US15/933,294 patent/US11010677B2/en active Active
- 2018-03-22 US US15/933,300 patent/US11132612B2/en active Active
- 2018-05-17 CN CN201810471972.7A patent/CN109598651B/en active Active
- 2018-06-13 CN CN201810604135.7A patent/CN109598652B/en active Active
-
2021
- 2021-07-14 US US17/375,292 patent/US20210342720A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026689A1 (en) * | 2013-02-08 | 2016-01-28 | College Scheduler LLC | System and process to facilitate course registration and optimal class selection |
WO2015188041A1 (en) * | 2014-06-06 | 2015-12-10 | Promethean Limited | Dynamic scheduling of participants into groups |
Non-Patent Citations (1)
Title |
---|
Uslu et al., Course scheduler and recommendation system for students (Year: 2016) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606221B1 (en) * | 2021-12-13 | 2023-03-14 | International Business Machines Corporation | Event experience representation using tensile spheres |
WO2023166483A1 (en) * | 2022-03-04 | 2023-09-07 | Promethean Limited | Graphical user interface generation and content delivery systems and methods |
Also Published As
Publication number | Publication date |
---|---|
US20190102687A1 (en) | 2019-04-04 |
CN109598651B (en) | 2023-11-21 |
CN109598652B (en) | 2024-04-12 |
US11010677B2 (en) | 2021-05-18 |
CN109598651A (en) | 2019-04-09 |
US11132612B2 (en) | 2021-09-28 |
CN109598652A (en) | 2019-04-09 |
US20190102747A1 (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210342720A1 (en) | Event Recommendation System | |
US11487802B1 (en) | Computer systems, methods, and components for overcoming human biases in subdividing large social groups into collaborative teams | |
Fosnacht et al. | Frequency of first-year student interactions with advisors | |
White et al. | Academic advising—a focus on learning | |
Canduela et al. | Ageing, skills and participation in work-related training in Britain: assessing the position of older workers | |
US20110306028A1 (en) | Educational decision support system and associated methods | |
US11151672B2 (en) | Academic program recommendation | |
US11651701B1 (en) | Systems and methods for processing electronic data to make recommendations | |
CN109598653B (en) | Student retention system | |
US10949608B2 (en) | Data feedback interface | |
Stoddard et al. | Can targeted information affect academic performance and borrowing behavior for college students? Evidence from administrative data | |
Hahm et al. | Better with Bologna? Tertiary education reform and student outcomes | |
Palmer et al. | Occupational outcomes for Australian computing/information technology bachelor graduates and implications for the IT bachelor curriculum | |
Sproule et al. | How principals’ understanding of career and technology foundations influences instructional leadership decisions: An interview-based, qualitative study | |
Wright | Integrating lives through adult education: A case study of mature women training to work in childcare | |
JP6485764B1 (en) | Classroom management server, classroom management system, classroom management method and program | |
VanZoest et al. | Equity in action: Reconnecting adult learners to community colleges in North Carolina | |
Kostoglou et al. | Predictors of higher technological education graduates’ labour market entrance success | |
Hartman et al. | Identifying factors that influence the successful transition of criminal justice transfer students | |
KR102533133B1 (en) | Artificial intelligence-based gathering matching apparatus and method | |
Becker | Examining the High School-to-College Transitions of Chicago Public School Students | |
Gorman | Are They as Engaged as They Say? a Study of Anticipated and Actual Engagement of First-Year Freshmen | |
Taylor et al. | 'We All Need Coins, You Know?': How College Students View Paid Mentorship | |
Post | The role of dual enrollment in the educational achievement of technical college students | |
Agan et al. | Challenges and Benefits of Fourth-Year BSHM Students Work Experience While Studying at Bestlink College of the Philippines.: Vol. 3, No. 1B |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TERRA, EGIDIO LOCH;MCKENDREE, JAMES THOMAS;OUPAXAY, BOONCHANH;AND OTHERS;SIGNING DATES FROM 20180329 TO 20180409;REEL/FRAME:056852/0224 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |