Abstract:
A context-aware adaptive data processing application is described. One or more computing servers establish connections with multiple user terminals to provide an application to the user terminals. The provided application is executable at the user terminals via web browser or a dedication application installed at a user terminal, for example. The provided application is context-aware to dynamically adapt to a user&#39;s changing circumstances.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation-in-part of U.S. patent application Ser. No. 13/135,184, filed on Jun. 28, 2011, which claims the benefit of priority to Korean Patent Application No. 10-2010-0062149, filed on Jun. 29, 2010. The entire contents of the aforementioned patent applications are incorporated herein by reference. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to a context-aware adaptive data processing application. 
       BACKGROUND 
       [0003]    Many people use flash cards to study vocabulary words. In buses or subway trains, one can often observe students studying flash cards with vocabulary words on one side of the card and the associated meaning on the other side. 
         [0004]    Not only vocabulary, but many other subject areas can be studied in word/definition or question/answer form. For example, to prepare for a mathematics exam, one can study flash cards with mathematical problems written on one side of the card and associated answers on the other side. 
         [0005]    However, conventional flash card products have many disadvantages. Conventional flash cards products are inconvenient to carry around and are difficult to share with other people. Another drawback of using flash cards in tradition way (i.e. repeatedly reviewing each flash card one by one) is that it is difficult for the learner to draw or select flash cards that would give him or her the most learning benefits for his or her situation. The learner does not necessarily know what he or she does not know; therefore, he or she would not know which cards would be the most effective ones for him or her to review next. Also, the learner may not review the materials sufficiently in order to achieve the desired learning outcome, or may waste time studying the material only to realize later that he or she knows the material well enough already. 
         [0006]    Computer based flash card study systems that implement the concept of flash card studying methods have been presented in the past. For example, “http://quizlet.com/” is a website that allows users to study flash cards online. The users can either study the flash cards that the website displays in predetermined order or quiz themselves by entering and reviewing their answers online. Most of these systems do not dynamically select the cards based on the users&#39; progress, situations, and other users&#39; learning statistics. 
         [0007]    Also recently, a flash card application for smart-phone users has been introduced. Such application employs a method that displays the front and back side of the flash cards to the users on the phone. 
         [0008]    The majority of these flash card applications, however, utilizes a method that simply displays a selected set of flash cards in random or some predetermined order. These systems also do not select the best set of cards for the users based on their situations. Thus, in cases where the users do not have much time to study, e.g., five minutes before an exam, it is difficult for them to quickly review the necessary flash cards only. 
         [0009]    Therefore, an advanced flash card study system that provides the users with the material that would give them the most learning benefit during their available study time is highly desirable. 
       SUMMARY 
       [0010]    The present invention aims to solve the aforementioned problem by selectively providing its users the study material, such as virtual flash cards, that best suits their studying situation (e.g., the flash card selection differs depending on whether the exam is in five minutes or in a month). 
         [0011]    The invention effectively enhances the user&#39;s learning potential by automatically selecting and presenting study material that best suit the user&#39;s studying situation. 
         [0012]    Also, the invention seeks to maximize the user&#39;s learning benefit or outcome by introducing a competition-based study method which allows two or more users to simultaneously utilize the study system. 
         [0013]    The additional purpose of the invention is to help users achieve their course objectives or learning goals within their available time by customizing the study course and sessions to the user&#39;s learning ability and his or her available time to study. 
         [0014]    Furthermore, when choosing the most appropriate study material for the users to study based on the users&#39; available learning time, the invention takes into account the rate at which the users answer each of such study material correctly. 
         [0015]    The present invention comprises three main features: (1) a course scheduling feature that divides the study course into a plurality of study sessions, selects and assigns virtual flash cards to each session, and determines the order of the said virtual flash cards; (2) a session management feature that displays the front side of such virtual flash cards and prompts users to supply answers to the corresponding problem; and (3) an entry management feature that provides the users the interface to enter such answers. 
         [0016]    The course scheduling feature may consider the following factors when assigning the virtual flash card to a particular session and determining the order of such virtual flash cards: (1) a rate and percentage of correct answers given by the user for each of such virtual flash cards; (2) a rate and percentage of correct answers given by other users for each of such virtual flash cards; (3) time needed for such user to complete each of such virtual flash cards; and (4) time needed for such other users&#39; to complete each of such virtual flash cards. 
         [0017]    The course scheduling feature can further consider a changing pattern of rates and percentages of correct answers given by the user and/or other users for each virtual flash card that the user and for other users have answered for more than once throughout the study session and for study course when assigning such virtual flash cards to a particular session and determining the order of such virtual flash cards. 
         [0018]    The arrangement and order may differ depending on whether the changing pattern of the rates and percentages of correct answers given by the user and/or other users for each such virtual flash card captures the increasing, decreasing or fluctuating trends of the percentages of correct answers for each such flash card. Two or more cards with the same rate and percentage of the user answering them correctly could have different trends depending on the order of which the user answered each such flash card correctly. When calculating the possibility of the user correctly answering such virtual flash cards, the invention may take into the account the learning progress of the user and that of other users. 
         [0019]    The present invention further comprises the following features: (1) a flash card deck database that stores the arranged virtual flash card deck; (2) a performance reviewer that analyzes the user&#39;s performance for each session; (3) a statistic analyzer that quantifies such user&#39;s performance and that of other users; and (4) an authoring mode manager that allows the user to create his or her own virtual flash card deck. 
         [0020]    Additionally, the invention comprises: (1) a client management feature that saves the virtual flash card decks shared by the users in the same course or class; (2) a class server that saves learning progress statistics of each user and that of the class members for each session and for the entire course; (3) a client training feature that processes such quantified performance with the client management feature; and (4) a central server superior to the class server. 
         [0021]    Also, the session management feature supports a group study mode. In group study mode, the front side of the virtual flash card is displayed simultaneously to two or more users. The mode then provides the back side of such virtual flash card along with the answers that these users have entered. 
         [0022]    In summary, the present invention provides a distinct studying method by dividing a study course into a plurality of study sessions, assigning virtual flash card decks to appropriate such study sessions and determining the order of such virtual flash cards, displaying the front side of such virtual flash cards to the user, and allowing the user to enter the answer for each virtual flash card. 
         [0023]    In assigning the virtual flash card to a particular study session and determining the order of the said virtual flash cards, the following factors are considered: (1) the rate and percentage of correct answers given by the user for each of such virtual flash cards; (2) the rate and percentage of correct answers given by other users for each of such virtual flash cards; (3) time needed for such user to complete each of such virtual flash cards; and (4) time needed for such other users&#39; to complete each of such virtual flash cards. 
         [0024]    The changing pattern of the rates and percentages of correct answers given by the user and/or other users for each virtual flash card that the user and/or other users have answered for more than once is also considered in assigning virtual flash cards to a particular study session and determining the order of the virtual flash cards. For example, one user could have answered the material correctly for the first few times; however, as the user learns other materials as well the user may forget the previously learned material or confuse the old material with the new material. Therefore, as the system gathers the learning statistics of all users who use the system, the system can detect particular orders of the cards that negatively impact the user&#39;s recollection of previously learned materials, or negatively impact future learning materials, and avoid such ordering of the cards. The invention takes into account such ordering effects when selecting the cards based on the learners&#39; progress, goals, and the available time left for studying. 
         [0025]    Such studying method using virtual flash cards may provide a group study mode to users. In group study mode, the front side of the virtual flash card is displayed simultaneously to two or more users. The mode then displays the back side of such virtual flash card along with the answers that these users have entered. 
         [0026]    The present invention effectively aids the users in achieving their study goals by selectively providing its users with virtual flash cards that best suits their studying situations (e.g., the virtual flash card selection differs depending on whether the exam is in five minutes or in a month). 
         [0027]    The present invention also maximizes users&#39; learning benefit by implementing a competition-based study method that allows two or more users to utilize the virtual flash card system simultaneously. 
         [0028]    The invention also helps the users achieve their course objectives within their available time by scheduling the course work in accordance with the user&#39;s learning ability which is measured by his or her learning progress and statistics and his or her available time to study. 
         [0029]    Finally, the invention effectively selects and provides virtual flash cards suitable to the user&#39;s studying condition by considering the change in rates and percentages of correct answers given by the user and his or her learning statistics and patterns. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]      FIG. 1  is one embodiment of a block diagram of a data processing system. 
           [0031]      FIG. 2  is one embodiment of a user terminal. 
           [0032]      FIG. 3  is one embodiment of a computing server. 
           [0033]      FIG. 4  illustrates a table mapping learning sequences against user IDs and user performance scores. 
           [0034]      FIGS. 5A-5D  illustrate an example a multi-subject study course. 
           [0035]      FIG. 6  is one embodiment of a block diagram of a studying system using virtual cards. 
           [0036]      FIG. 7  is a flow diagram illustrating the process of the client training feature in  FIG. 6 . 
           [0037]      FIG. 8  is a flow diagram illustrating the process of session training in  FIG. 7 . 
           [0038]      FIG. 9  is an exemplary screen display of the main menu. 
           [0039]      FIG. 10  is an exemplary screen display of the authoring mode. 
           [0040]      FIG. 11  is an exemplary screen display of the save function on the authoring mode screen as shown on  FIG. 10 . 
           [0041]      FIG. 12  is an exemplary screen display of the training mode. 
           [0042]      FIG. 13  is an exemplary screen display of the back side of the virtual flash card in training mode. 
           [0043]      FIG. 14  illustrates an example of the screen that appears at the end of a session. 
           [0044]      FIG. 15  illustrates an example of the objective (goal) setting screen for a studying subject. 
           [0045]      FIG. 16  is another exemplary screen display of the training mode. 
           [0046]      FIG. 17  is an exemplary screen display of the group study mode. 
           [0047]      FIG. 18  is an exemplary display of the group study mode after both users entered the answer. 
           [0048]      FIG. 19  illustrates other exemplary screen display of the training mode. 
           [0049]      FIG. 20  is an exemplary screen display of the GMAT training course. 
           [0050]      FIG. 21  illustrates an example of the GMAT course objective (goal) setting screen. 
           [0051]      FIG. 22  illustrates an example of the mode selection screen after customization of GMAT course objective (goal). 
           [0052]      FIG. 23  is an exemplary screen display of the learning mode in GMAT course. 
           [0053]      FIG. 24  illustrates an example of the course objective (goal) setting screen. 
           [0054]      FIG. 25  illustrates an example of the answer display screen. 
           [0055]      FIG. 26  is an exemplary screen display of the authoring mode. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0056]    The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples so as to enable those skilled in the art to practice the invention. The forms and proportions of the drawings may have been magnified in order to better aid with understanding. Those portions that are necessary for an understanding of the present invention will be described, and descriptions of other unnecessary portions will be omitted so as not to obscure the invention. 
         [0057]    It is understood that one or more of the below methods, or aspects thereof, may be executed by at least one control unit. The term “control unit” may refer to a hardware device that includes a memory and a processor. The memory is configured to store program instructions, and the processor is specifically programmed to execute the program instructions to perform one or more processes which are described further below. Moreover, it is understood that the below methods may be executed by an apparatus comprising the control unit in conjunction with one or more other components, as would be appreciated by a person of ordinary skill in the art. 
         [0058]    Furthermore, the control unit of the present disclosure may be embodied as non-transitory computer readable media containing executable program instructions executed by a processor, controller or the like. Examples of the computer readable mediums include, but are not limited to, ROM, RAM, compact disc (CD)-ROMs, magnetic tapes, floppy disks, flash drives, smart cards and optical data storage devices. The computer readable recording medium can also be distributed throughout a computer network so that the program instructions are stored and executed in a distributed fashion, e.g., by a telematics server or a Controller Area Network (CAN). 
         [0059]    Embodiments of the present invention will now be described in detail with reference to the drawings. 
         [0060]      FIG. 1  is one embodiment of a block diagram of a data processing system. As shown in  FIG. 1 , one or more computing servers  2300  (e.g., computing server_( 1 ), computing server_( 2 ), . . . computing server_(n)) establish a connection with a user terminal  2200  (via a network interface (not shown)) for the purpose of providing a study system to the user. Although a single user terminal  2200  is shown in  FIG. 1 , the computing servers  2300  are configured to communicate with a plurality of user terminal  2200 , allowing for the study system to be carried out on each of the plurality of user terminal  2200 . The study system can be executed by an end user using the user terminal  2200  through, for instance, a web browser installed on the user terminal  2200  or a dedicated application installed on the user terminal  2200 . Also, the user terminal  2200  may assume various forms, such as, for example, a mobile device (e.g., smart phone, tablet, etc.), a desktop computer, or any other suitable computing device. 
         [0061]    The computing servers  2300  can communicate with the user terminal  2200  through various intermediary devices, such as, for example, one or more domain name servers (DNSs), a load balancer, and so forth, as illustrated in  FIG. 1 . Furthermore, the computing servers  2300  can communicate with one or more databases  2400 , or a database server, that store various information related to implementation of the study system, such as, for instance, study material which can be presented to a user, study session information relating to an upcoming or current study session (e.g., a selection of study material to be presented during a given study session, an arrangement of selected study material, a length of study session, etc.), study course information relating to a user&#39;s study course (e.g., a goal of the study course, a length of the study course, etc.), course scheduling information (e.g., dates and times of upcoming study sessions, information about the user&#39;s schedule, etc.), user performance history information (e.g., a rate and percentage of correct answers, a trend of the rate and percentage of correct answers, a time needed to provide correct answers, etc.), and the like. When the study system for a given user is carried out, the computing servers  2300  can utilize information stored in the databases  2400  pertaining to the given user as well as performance information of other users, for reasons described in greater detail hereinbelow. 
         [0062]      FIG. 2  is one embodiment of the user terminal  2200 . As shown in  FIG. 2 , the user terminal  2200 , including a mobile device (e.g., smart phone, tablet, etc.), a desktop computer, or any other suitable computing device, may include several different modules (i.e., software modules installed on the device) for executing the study system at the user terminal  2200 . For example, the user terminal  2200  may include various modules, such as study materials, an authoring mode manager, a session management feature (i.e., study module), a performance reviewer, a configuration module, a statistics analyzer, calendar data, and so forth. As described in greater detail hereinbelow, particular tasks may be assigned to each of the respective modules, thereby distributing processing responsibilities among the various modules. 
         [0063]      FIG. 3  is one embodiment of the computing server  2300 . As shown in  FIG. 3 , the computing server  2300  (which may represent one of several computing servers within a computing server farm) may be configured to perform a wide range of functions for implementation of the study system. For instance, the computing server  2300  may include a course scheduling feature component through which the computing server  2300  selects study material for a study course, generates a schedule for administering study sessions of the study course, and generates a sequence of the selected study material, of each which is described in greater detail below. As further described in detail hereinbelow, the computing server  2300  may include additional modules interworking with one another, such as, for example, a session management feature (i.e., study module), a statistics analyzer, a performance reviewer, an authoring mode manager, an electronic calendar data processing module, a clustering and classification module, a user management module, and so forth, to enable additional functionality for implementing the study system described herein. 
         [0064]    Embodiments of the present invention will now be described in detail with specific reference to virtual flash cards. It should be noted, however, that the invention is not limited thereto. Rather, techniques described herein are equally applicable to other varieties of study material, such as a quiz or examination containing questions (e.g., fill-in-the-blank questions, multiple-choice questions, true-false questions, free-form or essay questions, etc.) to be answered by a user, association or matching tasks, drawing challenges (a user&#39;s drawings can be matched to a “correct drawing” using image or stroke recognition algorithms known in the art), and so forth. For instance, the techniques described herein for intelligently selecting virtual flash cards may be implemented in the same or substantially similar manner for intelligently selecting questions within a quiz. Therefore, although the present invention is described hereinbelow with specific reference to virtual flash cards for the purpose of demonstration, the virtual flash cards represent but a single example of study material among several possible types of study material, such as those listed above or other types of study material which could be envisioned by a person possessing an ordinary level of skill in the art. 
         [0065]      FIG. 6  is one embodiment of a block diagram of a studying system using virtual cards. 
         [0066]    The present invention comprises a client training feature  150 , a client management feature  100 , a class server  120 , and a central server  130 . 
         [0067]      FIG. 6  provides an overview of a studying system using virtual card activated in classroom setting. 
         [0068]    The client training feature  150  interacts with the users. The primary function of the client training feature  150  is to help users study virtual cards. 
         [0069]    Virtual cards are not physical cards with actual sides or surfaces but are computer based cards. The computer based virtual cards can be utilized as flash cards by reproducing the design of the actual flash cards. 
         [0070]    The front and back side of a virtual flash card may be comprised of text, one or more images, or multimedia data types. 
         [0071]    The front side of a virtual flash card may bear a question and the back side may comprise a corresponding answer. 
         [0072]    For example, if the front side of a virtual flash card displays a vocabulary word, the back side of such virtual flash card can display the corresponding meaning. 
         [0073]    On the other hand, if the front side of a virtual flash card displays a mathematical problem, the back side of such virtual flash card can display the corresponding solution. 
         [0074]    In certain cases, a virtual flash card may also include a hint associated with the content on the front and back side of the virtual flash card. 
         [0075]    The client training feature  150  comprises a session management feature  160 , a flash card deck database  152 , a statistic analyzer  154 , a course scheduling feature  158 , a performance reviewer  162 , an entry management feature  164 , and an authoring mode manager  156 . 
         [0076]    The session management feature  160  administers the study sessions of student users. During the study sessions, the client training feature  150  displays series of virtual flash cards from the corresponding virtual flash card deck. 
         [0077]    The studying method utilizing virtual flash card is administered through study courses. Study courses comprise a plurality of study sessions and virtual flash card decks associated with the course topic. A study course may be formulated by initially identifying the best learning sequence or permutation for a given user based on the user&#39;s history (e.g., using results from a diagnostic test), as well as the history of other users, and also the likelihood of the given user mastering the study material. 
         [0078]    The learning sequence for the course material may be determined in various ways. For example, databases and/or servers can store all learning sequences presented to users as well as the learning progress for specific sequences. In this regard,  FIG. 4  illustrates a table mapping learning sequences against user IDs and user performance scores. The highest scoring sequence (i.e., performance index) can be sorted for a particular learning topic for a given user as well as all users. The highest scoring sequence can be updated as the users continue their respective study programs. Then, the highest scoring sequence can be used for the next study session. 
         [0079]    Accordingly, identifying the highest scoring sequence can be leveraged to enhance a user&#39;s learning capabilities. For example, if a user struggled with study materials presented in an order of a, b, c, it may be identified that the user demonstrates an improved learning ability with the study materials rearranged as c, b, a. In this case, c, b, a represents the highest scoring sequence. Similarly, if a user struggles with learning English vocabulary, it may be identified that the user demonstrates an improved learning ability if the Latin root is presented before English vocabulary. In this case, presenting Latin vocabulary prior to English vocabulary represents the highest scoring sequence. 
         [0080]    The study sessions can be determined accordingly to the user&#39;s study objectives and the user&#39;s available time to study. For example, if the user&#39;s study objective is to master SAT Verbal course within three months and if the user is available to study once a week, the system will sort corresponding virtual flash cards into twelve groups and customize study sessions for each of such groups. 
         [0081]    The study sessions can be customized differently depending on the user&#39;s progression throughout the course. For example, after each study session is completed, the system analyzes the user&#39;s progress to arrange or rearrange the next study session. The amount of material to be mastered in the subsequent sessions may increase or decrease depending on how close the user is from achieving his or her study objective. 
         [0082]    Before a particular study session starts, the system can suggest session goals to the user depending on the user&#39;s studying situation, or the user can input his or her own study course or study session goal manually. 
         [0083]    For example, the course objective and the session goal could be “90% on SAT Verbal” and “memorizing 20 vocabulary words per day,” respectively. The course objective is determined by the user whereas the session goal may either be customized by the user or the user may choose from the session goals that the system recommends to him or her. 
         [0084]    When the user manually inputs his or her goal, the system may utilize language processing techniques to translate the user&#39;s text string into a numerical target. For instance, if a user inputs “get an A on English vocab test,” the system can look for text within the inputted string and compare the text to a pre-populated database that maps text to a numerical value or range of values. As an example, the database could contain entries for letter grades ‘A’, ‘B’, and ‘C’ corresponding to {90-100}, {80-89}, and {70-79}, respectively. Thus, the system could identify the presence of ‘A’ within the user&#39;s string and determine that the user&#39;s target range of scores is 90%-100%. The system can also suggest to the user the possible match for the letter grades ‘A’, such as ranges {90-100}, {92-100}, {93-100}, etc., based on the ranges that other users have associated with the letter grades in the past, as shown below in Table 1. If no match exists within the database, however, or in the event that the system-found range is different than the user&#39;s actual desired range, the user can insert a custom number or a range of numbers into the database, and a new entry in the database may be created. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                 Goal Text 
                 Numerical Range 
               
               
                   
                   
               
             
             
               
                   
                 ‘A’ 
                 {90-100} 
               
               
                   
                 ‘A’ 
                 {93-100} 
               
               
                   
                 ‘A’ 
                 {92-100} 
               
               
                   
                 ‘B’ 
                 {80-89}  
               
               
                   
                 ‘A’ 
                 {89-100} 
               
               
                   
                   
               
             
          
         
       
     
         [0085]    In certain situations, e.g., five minutes before an exam, a study session containing virtual flash cards that the user is already familiar with is more appropriate for the user to review than a study session containing virtual flash cards that are new to the user or would take him or her longer than five minutes to learn. 
         [0086]    In such cases, the user can customize his or her session goal as “five-minute review before the examination,” and the system may consider the following factors to select virtual flash cards for review: (1) the rate and percentage of correct answers given by the user for each of such virtual flash cards; (2) the rate and percentage of correct answers given by other users for each of such virtual flash cards; (3) time needed for such user to complete each of such virtual flash cards; (4) time needed for such other users to complete each of such virtual flash cards; and (5) the changing pattern of the rates and percentages of correct answers provided by the user and/or other users for each such virtual flash card when the user and/or other users answered each virtual flash card for more than once throughout the study session and/or the study course. 
         [0087]    When calculating the percentage of correct answers provided by the user for each of such virtual flash cards, the system considers if the user has reviewed or answered the virtual flash card. If a virtual flash card was never reviewed or answered by the user, the system automatically sets the value of such virtual flash card with a predetermined default value. The predetermined value may be 0%, 100%, or other values. 
         [0088]    For instance, in the case of five minutes before an exam, it is more efficient for the user to review the problems that he or she answered correctly 70-80% of the time than to review the problems that the user almost never answered correctly or almost always answered correctly. It would also be meaningless for the user to review a problem that normally took him or her more than five minutes to answer. Thus, in such cases, the system may select the virtual flash cards the user normally answered within 30 seconds and answered correctly 70-80% of the time. Furthermore, it may be more beneficial for the user to review the flash cards that the user answered correctly 4 out of 5 times, rather than 40 out of 50 times. Hence the invention not only measures the percentages of the correct answers for each flash card, but also the rates of the correct answers by keeping track of the number of times each flash card was presented to the user. 
         [0089]    The study sessions may contain different virtual flash card decks depending on the users&#39; studying situations. Since each user&#39;s information (i.e., the rate and percentage of correct answers provided and time took to answer the problem) is registered in each virtual flash card, different virtual flash cards may be provided to different users even if they are registered for the same study course and share same study objectives. 
         [0090]    The user is prompted to enter an answer for each virtual flash card. When a user submits an answer, the system can either automatically check if the submitted answer is correct or allow the user to manually check his or her answer. 
         [0091]    When running an automatic check, the system scores the answers by comparing the user&#39;s entry to the answer in the system&#39;s database. If the entry is in form of text or image, the system utilizes character recognition techniques to translate the entry. If the translated entry matches the answer in the database, the system scores the entry as a correct answer. 
         [0092]    If the user wishes to manually check and score his or her answer, the system can display the back side of the virtual flash card so the user can compare his or her answer to the answer provided by the system. 
         [0093]    The invention&#39;s study system keeps track of the user&#39;s (student) performance, his or her objectives, time constraints and other information including those of other users. 
         [0094]    The information above are saved in the statistic analyzer  154 . 
         [0095]    The “study course” comprises the virtual flash card decks, users&#39; study goals or objectives, time constraints, and performance statistics. 
         [0096]    In essence, a “study course” comprises a collection of virtual flash cards assembled for a specific study goal (e.g., 95% proficiency in 8th grade math) and a particular virtual flash card deck may be assigned to a plurality of study sessions and/or courses. 
         [0097]    “Time constraint” is the time it takes the user to master a study course (e.g., two weeks). 
         [0098]    The user&#39;s progress or performance can be interpreted as “proficiency.” Here, “proficiency” is the percentage of correct answers provided by the user for every virtual flash cards contained in a study course. The value of the user&#39;s progress is calculated by taking the number of flash cards answered correctly by the user above a certain percentage, divided by the total number of flash cards assigned to achieve the study objective, multiplied by one hundred (100). The percentage of correct answers for virtual flash cards reviewed less than a certain number of times can be set as zero (0) depending on the learning situation. 
         [0099]    The value of the user&#39;s progress and the virtual flash card decks associated with study courses are saved in the local disk by the statistic analyzer  154  and/or the virtual flash card deck database  152 . 
         [0100]    The course scheduling feature  158  divides a study course into a plurality of study sessions and assigns the study sessions accordingly to the user&#39;s progress or availability. The course scheduling feature  158  further assigns the virtual flash cards to specific study sessions and the order of virtual flash cards being displayed. 
         [0101]    The course scheduling feature  158  schedules the study course accordingly to the user&#39;s progress and the change in user&#39;s availability. The user&#39;s availability may be determined through user input or by other means such as retrieving the user&#39;s electronic calendar data (e.g., Outlook, Google Calendar, Apple Calendar, etc.). In the latter case, the system may identify open time slots in the user&#39;s calendar and schedule study sessions accordingly. The system may request permission from the user to access third-party calendar information and, if permitted, request the user&#39;s login information. 
         [0102]    The user can be presented with a calendar view through the user interface on the user terminal  2200  showing all of the user&#39;s appointments from the electronic calendar data, as well as all scheduled study sessions. After study sessions have been scheduled, the user can view the calendar and manually accept or rearrange the scheduled sessions as desired. The user may, for example, block-out certain dates or times or, alternatively, indicate certain dates or times as optimal for scheduling study sessions. 
         [0103]    The system may take additional steps to dynamically schedule study sessions and/or prevent conflicts with previously scheduled study sessions. For instance, as the user&#39;s schedule changes, if the system has been granted permission to access the user&#39;s electronic calendar data, the scheduling of upcoming study sessions can be adjusted accordingly. Furthermore, in the event that an upcoming study session has been scheduled, and a user receives a calendar invitation to a given event that conflicts with the upcoming study session, the system may notify the user that the invitation, if accepted, would conflict with a scheduled study session. The system could also notify the user that a certain number of study hours would be forfeited should the user accept the invitation, or could notify the user that the likelihood of achieving the user&#39;s goal may decrease by a particular percentage as a result of accepting the invitation, as a way to encourage the user to prioritize studying. 
         [0104]    The likelihood of achieving the user&#39;s goal, as referenced above, may be calculated in various ways. For example, the system can calculate the user&#39;s learning pattern (e.g., upward slope, downward slope, fluctuating pattern, etc.) for each individual study question or flash card. Then, for all study questions or flash cards within a particular study topic (e.g., all 1000 vocabulary terms for “SAT verbal” topic), the algorithm can find the best fitting curve (e.g., by performing nonlinear regression) by mapping time (x-axis) against learning performance (y-axis). Based on the trajectory, the system can predict when the user will reach his or her learning goal. 
         [0105]    Similarly, if a user&#39;s study time is reduced by a period of time as a result of accepting an invitation, as described above, the system may calculate how short the user would be from reaching his or her goal. For example, Bayesian linear regression can be used to calculate the amount of lost study time when the learning progress is more or less linear, or polynomial regression when the progress is nonlinear. 
         [0106]    The system can provide additional notifications (“smart notifications”) to the user throughout the study course to keep the user apprised of ongoing developments in the course. For instance, the user can be notified of an upcoming study session shortly prior to the study session. Also, the user may be notified when the study algorithm has been updated due to new data from other users&#39; study courses that impacts the user&#39;s own study course. A new most favorable learning sequence can be discovered after evaluating the performance of other users. For instance, if study material has been presented in an order of a, b, c, but an evaluation of 1,000 users indicates that learning ability can be improved by rearranging the study materials as c, b, a, the system can identify c, b, a as the new most favorable learning sequence (i.e., the arrangement of study materials presented to the user that maximizes the user&#39;s learning ability). 
         [0107]    Furthermore, the user can be notified when other users studying the same material have reached a particular milestone. The purpose of such a notification is to encourage the user to attempt to reach the same milestone in his or her own study course. In further detail, the user may indicate a certain group of other users as “friends,” and can receive updates on the friends&#39; study progress. The user can also be notified that the user&#39;s study schedule has been automatically updated, and may prompt the user to indicate whether the change is acceptable. 
         [0108]    The system can also allow the user to designate particular other users for the purpose of benchmarking the user&#39;s performance against that of the other users. For instance, the user could designate or the system may suggest the top 5th percentile learners for a given subject. Also, the user could designate or the system may suggest “similar users” having similar demographics, e.g., age, location, educational level, etc., based on the users&#39; stored profile data. Also, the user could choose his or her friends by tagging specific users as “friends.” 
         [0109]    Prior to benchmarking, the system may establish a baseline for the user, either by taking a diagnostic test or by importing the user&#39;s grades from an external source. The user&#39;s current learning level can also be determined by comparing the learning data of other users. The percentile in which the user belongs among all users may then be calculated (e.g., an average learner, a top 5th percentile learner, etc.). 
         [0110]    Various techniques can be employed to determine favorable learning patterns for the user when comparing the user&#39;s learning data to that of other users. In one example, machine learning and neural networks can be used to identify the most favorable learning sequence for a user (i.e., the learning sequence (or arrangement of study materials) presented to the user which maximizes the user&#39;s learning potential). In this regard, various pieces of data illustrated in  FIG. 4 , such as learning sequences {X 1 , X 2 , . . . Xn} and performance scores {S 1 , S 2 , . . . Sn}, as well as the time taken to correctly answer a question {T 1 , T 2 , . . . . Tn}, demographic information (e.g., age, ethnicity, location, grade level, gender, etc.), contextual factors (e.g., time remaining until the goal “due date,” time spent studying, user&#39;s location, number of past courses the user has completed, number of topics the user is currently learning, etc.), and the like, can be used as input nodes to a machine learning algorithm. Weights can be assigned to each factor according to the relative importance of said factors. Thorough backward propagation, the system may learn the appropriate weights for the various factors (“hidden layers”). 
         [0111]    After training the machine learning algorithm with a sufficient amount of data (and weighted data), and the algorithm can output a favorable learning sequence (i.e., output node) for the user. Notably, the training data can consist of the existing learning performance data of the user as well as that of other users. 
         [0112]    In the event that significant variance exists between the users and other similarly situated users, the system may request the user for additional background information. For instance, geographical or linguistic backgrounds can greatly affect a user&#39;s comprehension in particular subjects. Thus, identifying a user&#39;s idiosyncratic background and inputting updated information into the neural network can help to determine the favorable learning sequence. An effective study sequence may then be developed following the favorable learning sequence. 
         [0113]    Additionally, the system can mine the user&#39;s calendar data to determine the nature of certain appointments, and schedule study sessions based on such information. For example, the user&#39;s calendar data can be evaluated to determine whether a user at a given time is busy (e.g., attending a mandatory meeting), tentatively busy (e.g., attending an optional meeting), or available. If the available time is greater than the amount of time needed to achieve the user&#39;s goal, e.g., master the study material, then the course scheduling feature  158  can exclusively use “available” time slots to schedule study sessions. If, on the other hand, the available time is less than the amount of time needed to achieve the user&#39;s goal, then the course scheduling feature  158  might use “available” and “tentatively busy” time slots to schedule study sessions, or take other actions such as notifying the user that the available time is insufficient to achieve the user&#39;s goal, suggesting that the user re-schedule or cancel certain appointments, and so forth. 
         [0114]    The course scheduling feature  158  can optimize the study schedule over multiple courses or learning topics. In this regard, throughout each study course, the course scheduling feature  158  tracks metadata identifying, at least, the user&#39;s goal, the goal due date (e.g., date of an examination), and the number of study hours required to achieve the goal as calculated and/or predicted by the course scheduling feature  158  (based on the user&#39;s learning coefficient, if available). Then, as the user studies and progresses toward achieving the goal, the course scheduling feature  158  may dynamically recalculate the course schedule for future study sessions. 
         [0115]    In cases where the user is involved in multiple study courses, e.g., preparing for a multi-subject examination, preparing for multiple examinations, etc., the course scheduling feature  158  can optimize the user&#39;s study schedule by prioritizing the various study courses. For instance, the study course with the earliest due date may receive top scheduling priority, the study course with the second earliest due date may receive second scheduling priority, and so on. Alternatively, the user can manually indicate a priority ranking of each study course, and the course scheduling feature  158  can schedule the study courses based on the user&#39;s rankings. A user could, for instance, indicate that studying for an English examination receives top priority, studying for a Spanish examination receives second priority, and so forth. Alternatively, the course scheduling feature  158  may automatically assign top priority to a study course in which the user is struggling the most, while assigning the lowest priority to a study course in which the user is succeeding the most. Even further, the course scheduling feature  158  can optimize the user&#39;s study schedule according to the expected average score for each course (e.g., the course with the lowest expected average score is prioritized so as to maximize the amount of time spent studying on such course). An expectation maximization algorithm can be used to determine the expected average scores for all courses. 
         [0116]    For instance,  FIGS. 5A-5D  illustrate an example a multi-subject study course including a math examination, English examination, and Spanish examination. In each class (math, English, and Spanish), the user wishes to obtain an ‘A’, and thus the user sets the necessary percentage to achieve straight A&#39;s as the goal for each course: 70% on the math examination, 100% on the English examination, and 90% on the Spanish examination. As shown in  FIG. 5A , the user&#39;s baseline performance, as referenced above, is 10%, 10%, and 5% in math, English, and Spanish, respectively. 
         [0117]    As the study courses progress (i.e., from  FIG. 5A  to  FIG. 5D ), the user&#39;s baseline performance increases, ideally reaching the goal percentage in each subject at the completion of the courses. As shown in  FIG. 5B  (50% completion), the system may recommend to the user to focus on studying for English and Spanish, as the user&#39;s performance in English and Spanish greatly trails the user&#39;s performance in math. As shown in  FIG. 5C  (95% completion), the system may recommend to the user to focus on studying for math and English, as the user&#39;s performance has already reached the target level in Spanish at this time. Finally, as shown in  FIG. 5D  (hours before the examinations), the system may recommend to the user to focus on studying for math and Spanish, as the user&#39;s performance in English has already reached at 100%, and the user may not have reviewed Spanish in the last few days since the user already had reached the goal for Spanish five days prior. 
         [0118]    In other cases, such as five minutes before the exam, the course scheduling feature  158  can consider the above factors when determining the order of the virtual flash cards. 
         [0119]    When the user has a limited amount of time to review the materials, it would be beneficial for the user to review the material that would maximize his or her learning benefits by considering the changing pattern of the rates and percentages of correct answers given by the user and/or other users for each virtual flash card, and time constraints when determining which virtual flash cards to review during the remaining time. 
         [0120]    In a situation where the user has five minutes left to review for an exam, it would be unsuitable for the user to review a problem he or she never answered correctly or a problem that normally took the user an hour to answer. The more useful studying method in this situation could be reviewing the virtual flash cards with the most recent answering rate being near 70% or more; and to review the cards with the shorter time needed to answer before reviewing the ones that require longer amount of time, as to maximize the amount of the reviewed material before the exam. 
         [0121]    Thus, the course scheduling feature  158  considers the following factors when assigning the virtual flash card to a particular session and determining the order of virtual flash cards: (1) the rate and percentage of correct answers given by the user for each of such virtual flash cards; (2) the rate and percentage of correct answers given by other users for each of such virtual flash cards; (3) time needed for such user to complete each of such virtual flash cards; (4) time needed for such other users&#39; to complete each of such virtual flash cards; and (5) the changing pattern of the rates and percentages of correct answers provided by the user and/or other users for each such virtual flash card when the user and for other users have answered each such virtual flash card for more than once throughout the study session and/or the study course. 
         [0122]    The course scheduling feature  158  may receive information such as other users&#39; progress, rate and percentage of correct answers for each such virtual flash card, and changing pattern of the rates and percentages of correct answers for each such virtual flash card through the class server  120  and the central server  130 , and schedule the course accordingly. In other words, the feature not only considers the user&#39;s progress, rate and percentage of correct answers, and changing pattern of the rates and percentages of correct answers, but also other users&#39; progress, percentage of correct answers, and changing pattern of the percentages of correct answers to produce optimal results. Here, the feature may consider only the information of the users in same grade or level as such user. 
         [0123]    For example, the system may display the virtual flash cards with the greatest disparity in such user&#39;s and other users&#39; rate and percentage of answering correctly. The system may also display the virtual flash cards other users reviewed the most. 
         [0124]    If the system does not have enough information on such user yet, the course scheduling feature  158  may determine the order of the virtual flash cards by utilizing the information of other users in the same or similar grade or level as such user. 
         [0125]    As described above, the course scheduling feature  158  can utilize other users&#39; learning statistics to schedule such user&#39;s study session and select the virtual flash cards. 
         [0126]    In certain embodiments, the course scheduling feature  158  may not necessarily consider the user&#39;s availability. 
         [0127]    In certain embodiments, the course scheduling feature  158  may provide an estimated time to complete a course to achieve the learning goal of the user. The estimated time to complete may differ depending on the user&#39;s proficiency, studying situation, and etc., and it may be dynamically re-calculated based on the user&#39;s progress. By providing the estimated time to complete, the feature allows the user to practice answering a problem within a certain time range. 
         [0128]    Additionally, the course scheduling feature  158  may schedule the study course after an optimal learning sequence has been determined based on highest scoring sequence, which can be ascertained by administering a diagnostic test. For instance, if the user is a Spanish speaking user, for this particular user a more favorable learning sequence to learn English vocabulary could be reviewing a Spanish word first followed by the corresponding English word, rather than reviewing a Latin word first and then the corresponding English word for another user who studied Latin in the past. Further, the diagnostic test may be utilized to identify a given user&#39;s performance percentile, e.g., the user may be amongst the 95th percentile or the bottom 10th percentile. 
         [0129]    Based on the above information, it can be determined how long a given user might take to achieve his or her learning goal. For example, the amount of time a given user might take to achieve his or her learning goal can be calculated by determining the number of minutes (t_ 1 , t_ 2 , t_ 3  . . . t_n) needed to solve each problem  1  through N based on previous learning progress data for this user (e.g., from the initial diagnostic test or subsequent learning progress data). The amount of time may be compared to the average time taken to solve the problems amongst other users with similar learning goals. If no previous data for other users with similar goals exists, then a given dataset can be interpolated to produce a “coefficient” to account for this user&#39;s idiosyncratic behavior. As an example, if an average user takes 100 hours to achieve a desired goal (e.g., achieve an ‘A’ on an upcoming exam, master a certain subject, etc.), and a particular user&#39;s coefficient is 1.2, it can be predicted that the particular user will take 120 hours to achieve the goal. Conversely, if the particular user&#39;s coefficient is 0.8, then it can be predicted that the user will take only 80 hours to achieve the goal. 
         [0130]    The course scheduling feature  158  may consider the user&#39;s situation when selecting and determining the order of virtual flash cards in a particular study session. 
         [0131]    In one example, study material can be sorted dynamically in an order that fits the user&#39;s current situation at the beginning of each study session. As such, the learning sequence can change dynamically each study session as the user&#39;s situation changes. A learning sequence may even be updated within a given study session, i.e., as the user studies. 
         [0132]    Because the user&#39;s information is registered for each virtual flash card (such as proficiency and estimated time required to answer the problem), the selection and order of virtual flash cards may differ depending on the user even if the study course and objectives are identical among the users. 
         [0133]    The selection and order of virtual flash cards may also differ depending on how the changing pattern of the rates and percentages of correct answers given by the user and/or other users for each of such virtual flash cards is. The changing pattern of the rates and percentages may capture one of the increasing, decreasing or fluctuating trends of the percentages of correct answers for each virtual flash card. For example, in the case of five minutes before examination, among virtual flash cards with the percentage range of correct answers from 60% to 70%, a virtual flash card having a decreasing trend of the percentages of correct answers may be displayed earlier than a flash card having an increasing trend of the percentages of correct answers. Conversely, if a user is studying months before the examination, study material that was most frequently missed or never understood well can be selected to improve the user&#39;s comprehension of such subject matter. 
         [0134]    In cases where the rates and percentages of correct answers provided by the user for virtual flash cards are equal, the selection and order of such virtual flash cards may be determined based on whether the changing pattern of the rates and percentages of correct answers given by the user and/or other users for each of such virtual flash cards captures the increasing trend of the percentages of correct answers, the decreasing trend of the percentages or the fluctuating trend of the percentages. For an example, there may be two flash cards where the changing pattern of the rates and percentages of correct answers by one user differs but the rate and percentage of correct answers is the same. This may occur where, in the case of answering two flash cards for four times throughout a study session and/or a study course, the user answered one virtual flash card incorrectly the first time and correctly the last three times and answered another virtual flash card correctly the first three times and incorrectly the last time. So far, both flash cards have the correctly answered rate of 75% for the user. However, the former card is in an increasing trend of the rates and percentages of correct answers, while the latter card is in a decreasing trend of the rates and percentages of correct answers. Such phenomena could be caused in a certain case where, as time passes by, the user may forget the learned material, or newly learned materials may negatively impact the users&#39; the retrieval of the previously learned material. In this case, the selection and order of such two cards are determined depending on the goal of the study session and the course, and the learning situations of the user. 
         [0135]    The performance reviewer  162  calculates the progress of the study course or session and presents the calculated result to the user in different ways. 
         [0136]    Such calculated progress is analyzed and saved by the statistic analyzer  154 . 
         [0137]    The authoring mode manager  156  allows the user to create his or her own virtual flash card decks. 
         [0138]    In other words, the user can: (1) create new cards; (2) modify existing cards; (3) delete a card; (4) merge card decks; (5) organize or label the cards and decks; and (5) import and export flash cards from the class server  120  and the central server  130 . 
         [0139]    The client training feature  150  can receive and perform the user&#39;s entry through the entry management feature  164 . 
         [0140]    The entry management feature  164  may receive the user&#39;s entry through a keyboard, computer mouse, touch pad, tablet pen, or stylus pen (touch pen). 
         [0141]    The entry management feature  164  can run at all times regardless of whether the system is in authoring mode or training mode. 
         [0142]    The client management feature  100  comprises an authoring mode manager  102  and a performance reviewer  104 . The client management feature  100  controls the class server  120 . 
         [0143]    The class server  120  saves the common virtual flash card decks, simplify the distribution of virtual flash card decks, gather information on users&#39; progress, and help users utilize the studying system. 
         [0144]    The client management feature  100  is a feature created for users who are teachers and exam proctors. The client management feature  100 , through the authoring mode manager  102 , allows such users to edit the virtual flash card decks saved in the class server. 
         [0145]    The authoring mode manager  102  is similar to the authoring mode manager  156  of the client training feature  150 , but unlike the authoring mode manager  156 , the authoring mode manager  102  does not administer the local deck which is a set of flash cards that are being used in the current study session which is a subset of the entire flash card decks in the current study course selected by an user. 
         [0146]    In certain embodiments, the authoring mode manager  102  may provide the name of the user who created or edited a particular virtual flash card. 
         [0147]    The performance reviewer  104  provides teachers and exam proctors with progress reports of students in various formats who attend the class in the class server  120 . 
         [0148]    The client management feature  100  also includes a function that allows the teachers and exam proctors to transfer study course information and virtual flash card deck information to the client training feature  150 . 
         [0149]    Although not illustrated on  FIG. 6 , like the entry management feature  164 , the client management feature  100  can include devices that allow users to submit entries. 
         [0150]    The client management feature  100  and the client training feature  150  illustrated in  FIG. 6  can serve different modes in the system component. In certain embodiments, the components of the client management feature  100  and the client training feature  150  may be different. 
         [0151]    The central server  130  is shared through the client management feature  100  and the client training feature  150 . The information saved in the central server  130  includes virtual flash card decks, the study course information associated with such virtual flash card decks, and progress reports. The client training feature  150  can either directly select and utilize the virtual flash card decks saved in the central server  130  or utilize the virtual flash card decks recommended by the client management feature  100 . 
         [0152]    The client management feature  100  can copy and paste the virtual flash card decks saved in the central server  130  to the class server  120 . The class server  120  can edit such virtual flash card decks. The proficiency information saved in the central server  130  can be utilized by the course scheduling feature  158  which is included in the client training feature  150 . 
         [0153]    In certain embodiments, the central server  130  may not exist. 
         [0154]    In certain embodiments, the central server  130  may save information on virtual flash card decks only. In such cases, the virtual flash card decks are retrieved from the central server  130 . However, the course scheduling feature  158  will not consider other users&#39; proficiency information unless other users are included in the same study course as the user and their proficiency information is saved in the class server  120 . 
         [0155]    In certain embodiments, class server  120  and client management feature  100  may not be installed in the system. In such cases, the system may or may not include the central server  130 . 
         [0156]    In certain embodiments, the client training feature  150  may not include a local disk. In such cases, the virtual flash card decks may be saved in the class server  120  and/or in the central server  130 . The proficiency information and progress report may or may not be saved in the class server  120  or the central server  130 . 
         [0157]      FIG. 7  is a flow diagram illustrating the process of the client training feature  150  in  FIG. 6 . 
         [0158]    As illustrated in  FIG. 7 , upon starting, the client training feature  150  displays the main menu S 202  which prompts the user to select either the training mode or the authoring mode. 
         [0159]    The user may select the training mode to study a new or existing study course, or the user may select the authoring mode to create/edit the virtual flash cards. 
         [0160]    If the user selects the training mode, the client training feature will decide if the user will start a new study course S 204  or continue studying an existing study course. 
         [0161]    If the user decides to continue studying an existing study course, the client training feature allows the user to select the course to study S 206 . 
         [0162]    If the user decides to start the new study course S 204 , the client training feature allows the user to select a virtual flash card deck S 208  and customize his or her course objective S 210 . 
         [0163]    The client training feature then allows the user to customize his or her goals for the session S 212 , and performs the session training S 160 . 
         [0164]    When session training is completed, a progress report S 162  is provided to the user by the performance reviewer  162 . 
         [0165]    If the user selects the authoring mode, the client training feature executes the authoring mode and performs all corresponding functions such as creating, editing and deleting virtual flash cards  5156 . 
         [0166]    Upon completion of training or authoring mode, the client training feature displays an exit screen S 220 . If the user selects exit, the client training feature terminates the system. If the user does not select exit, the client training feature displays the main menu S 202 . 
         [0167]    In certain embodiments, the client training feature can execute the learning mode to allow the user to learn the virtual flash card before starting a study session. In the learning mode, the front and back side of the virtual flash card is displayed to the user and the user may not have to enter the answer. 
         [0168]    In certain embodiments, for the purpose of sorting out problematic virtual flash cards, the learning mode may track the time it takes the user to answer a virtual flash card and the frequency of such virtual flash card being displayed. 
         [0169]    In certain embodiments, the client training feature may provide the user a full or partial progress report upon completion of each study session. 
         [0170]    In certain embodiments, the client management feature  100  may create a study course corresponding to a predetermined course objective without having the client training feature or the user select the virtual flash card decks and course objectives or learning goals. Such study course may then use a default goal setting and be provided to the client training feature. 
         [0171]    In certain embodiments, the central server  130  may provide the study course with the associated virtual flash card decks. 
         [0172]    During session training S 160 , the user can enter his or her answer utilizing a stylus pen, tablet, keyboard, etc. 
         [0173]    Also, in an authoring mode S 156 , the user can manually merge virtual flash card decks. Manual merge occurs when the user selects to merge two different virtual flash card decks. The new card deck that is produced by this process consists of all virtual flash cards that were included in such two virtual flash card decks. The client training feature can identify repeating virtual flash cards and delete them. However, the client training feature may not be able to automatically identify and delete all repeating flash cards. In such cases, the user can manually delete the repeating cards in authoring mode and training mode. 
         [0174]      FIG. 8  is a flow diagram illustrating the process of session training in  FIG. 7 . 
         [0175]    As shown in  FIG. 8 , as the session training starts, the virtual flash card decks and progress report that corresponds to the study course is loaded from the local disk S 322 . 
         [0176]    Also, the course scheduling feature, which is included in the client training feature, selects the virtual flash cards from the virtual flash card deck S 302 . 
         [0177]    Here, the course scheduling feature may consider the user&#39;s progress statistics, the time required to answer a virtual flash card, and time constraints. 
         [0178]    For example, if the exam is in five minutes, the most effective virtual flash card to study would be the one that: (1) does not take long for the user to answer; (2) the user continues to improve from a certain range of time; and (3) the rate and percentage of correct answers given by the user for such virtual flash card is within a certain range. 
         [0179]    When a virtual flash card is selected, the front side of the virtual flash card is displayed S 304 . 
         [0180]    The user can conclude a virtual flash card as a repeated card before letting the system display the next virtual flash card or exiting the session. 
         [0181]    Thus, the user can identify repeating virtual flash cards during study sessions S 306 . 
         [0182]    The system may also automatically identify repeating virtual flash cards with its character recognition technique or pattern matching technique. 
         [0183]    If determined as a duplicate card, the virtual flash card is deleted from the virtual flash card deck S 308  and another virtual flash card is selected to display S 302 . 
         [0184]    If the virtual flash card cannot be concluded as a repeated card, the study session will wait until the user completes the answer or until the time limit to complete the answer expires S 312 . 
         [0185]    In other words, the study session either waits until the user enters an answer or moves to the next step if the user does not enter an answer within the given time. 
         [0186]    In certain embodiments, hint may be provided upon the user&#39;s request. Here, the hint may be in the form of text, image, video, sound, or content entered in the system&#39;s authoring mode. 
         [0187]    If a hint is provided, the client training feature tracks the virtual flash cards that provided the hint, and this information is later utilized by the course scheduling feature to determine the selection and order of virtual flash cards. 
         [0188]    The client training feature also monitors and saves information on the time it took the user to complete an answer. This information is later utilized by the course scheduling feature to determine the selection and order of virtual flash cards. 
         [0189]    The user may skip a displayed virtual flash card during a study session. The user can also remove a virtual flash card from a study session by skipping such virtual flash card. Thus, the user can check the back side of a virtual flash card that he or she wishes to skip and move on to the next virtual flash card. 
         [0190]    The system can track information on virtual flash cards that were skipped and provide the information to the user upon request. 
         [0191]    Moreover, the user can add new virtual flash cards to the study course or session that the user is studying. The user may create a new virtual flash card through the authoring mode and register such virtual flash card to the associated study course or session. 
         [0192]    The user can also exclude a virtual flash card from a study course or session. For example, if a virtual flash card is displayed during a study session and the user determines that such virtual flash card is irrelevant to the examination he or she is preparing for, the user can completely exclude such virtual flash card from the session. 
         [0193]    If either the user submits an answer or the given time limit to answer the problem is reached, the back side of the virtual flash card is displayed S 314 . 
         [0194]    The user can score his or her answer manually after comparing his or her answer with the answer on the back side of the virtual flash card. 
         [0195]    The system determines whether the user scored the answer S 316 . 
         [0196]    If the user did not enter his or her score, the system waits until the score is entered or until the time given to enter the score expires. 
         [0197]    If the user entered his or her score, the system provides this information to the course scheduling feature. 
         [0198]    The steps in S 316  are eliminated if the system automatically scores the answer. If the system can automatically score the user&#39;s answer, either the steps in S 314  is eliminated or the back side of more than one virtual flash card can be displayed. 
         [0199]    The system determines whether to terminate the study session after each answer is scored S 318 . 
         [0200]    If the study session is not terminated, the system continues to step S 302  and selects the next virtual flash card. 
         [0201]    If the study session is terminated, the training session halts further performance. 
         [0202]    The virtual flash cards can be displayed multiple times during the study session depending on the user&#39;s progress. For example, if the session goal is not achieved after displaying all virtual flash cards and there is still time left to complete the session, virtual flash cards that can be answered within the leftover time can be selected and displayed repeatedly. 
         [0203]    An updated progress report can be provided to the user upon completion of each study session. In addition, the user can be presented with an indication of where he or she stands in comparison to the population of other users who are studying the same material. 
         [0204]    The user entry (input) device includes, but is not limited to stylus pen, keyboard, computer mouse, or other devices to enter the answer of a virtual flash card. 
         [0205]    In certain embodiments, the steps S 306  and S 308  may be eliminated if the merger and/or manual merge function is not supported by the system. 
         [0206]      FIG. 9  is an exemplary screen display of the main menu. 
         [0207]    As illustrated in  FIG. 9 , upon starting the virtual flash card system, the client training feature displays the main menu. The main menu includes authoring mode menu  140  and the training mode menu  420 . 
         [0208]    As illustrated in  FIG. 9 , the user can log-in by typing his or her ID  440  and password  450  at the main menu. 
         [0209]    The authoring mode menu  410  allows the user to create his or her own virtual flash card and the training mode menu  420  allows the user to start the studying system using virtual flash cards. 
         [0210]      FIG. 10  is an exemplary screen display of the authoring mode. 
         [0211]    As illustrated in  FIG. 10 , the virtual flash cards are composed of front sides  510  and back sides  520 . 
         [0212]    If necessary, a virtual flash card may include a hint/note content section  530  that corresponds to the problem on the front side of the virtual flash card. 
         [0213]      FIG. 10  is an example of a virtual flash card created to study the two times multiplication table. In this example, the content on the front side of the virtual flash card consists of problems such as “2×2”, “2×3”, and “2×4”, and the content on the back side of the virtual flash card consists of corresponding answers such as “4”, “6”, and “8”. 
         [0214]    In addition to displaying the study material via a display screen, an audio version of the content of the study material can be outputted (e.g., via speakers, headphones, etc.), which may be particularly useful for visually impaired users. For example, the system may read a question and/or menu options aloud to the user, and accept sound input (e.g., via a microphone) from the user as an answer to a question or a command. The system may utilize additional types of feedback, such as haptic feedback (e.g., vibrations), raised text to replicate braille, and the like, in order to accommodate other impaired users. 
         [0215]    The contents on the front and back side of the virtual flash card can be created in a text form using a keyboard or in an image form using a stylus pen. The contents can also be created in various forms such as video or sound. 
         [0216]    In the present invention, a “virtual flash card deck” is defined as a collection of virtual flash cards included in a study course. As shown in  FIG. 10 , a course objective  540  may be customized for each study course. 
         [0217]    The subject area of the study is provided in the form of a study course to the users. This will be described later in the section. 
         [0218]    The authoring mode screen includes the following functions: (1) an open function  550  that opens a new card deck; (2) a save function  560  that saves the created card decks; and (3) a share function  570  that provides the selected card decks to other users. 
         [0219]      FIG. 11  is an exemplary screen display of the save function on the authoring mode screen as shown on  FIG. 105 . 
         [0220]    As illustrated in  FIG. 11 , an interface screen is displayed when the save function is selected. The interface allows the user to customize the file name  610 , category  620 , and for sharing purposes, other users who are allowed to use the card deck  630 . Upon receiving such entries (inputs), the save function can be enabled to complete the saving process. 
         [0221]    File name  610  is the name of the file to be saved. Category  620  is the category in which the virtual flash cards are to be arranged upon being saved. Here, the user can select among the list of categories  620  provided by the system or create a new category for the card deck. 
         [0222]    The sharing with other users function  630  allows the user to control which people can utilize the virtual flash card decks. The user may enable all users, registered friends, only teachers, or only the user himself or herself to access the virtual flash card decks. 
         [0223]      FIG. 12  is an exemplary screen display of the training mode. 
         [0224]      FIG. 12  illustrates a virtual flash card reviewing the two times multiplication table. 
         [0225]    The user may enter the answer in the answer space  720  once the front side of the virtual flash card  710  is displayed. Here, the answer may be entered in the form of text or image by utilizing the keyboard or stylus pen. 
         [0226]    The user can request hint by selecting hint  730  before answering the problem. The user may also check the answer on the back side of the virtual flash card by selecting answer  740  after completing the problem. 
         [0227]    The user can also check the status of the study course or session through the progress bar  750  on the training mode screen. The training mode screen also provides the current user&#39;s progress  760 . 
         [0228]    A study course is divided into two or more study sessions. For instance, if the user&#39;s course objective for SAT Verbal study course is to “master the course in three months,” the invention may compute and organize the number and the duration of the study sessions necessary to achieve the course objective throughout the course (i.e., once a week or everyday). 
         [0229]      FIG. 13  is an exemplary screen display of the virtual flash card in training mode. 
         [0230]    As illustrated in  FIG. 13 , the back side of the virtual flash card  810  appears after the user enters his or her answer. The user can then compare his or her answer with the back side of the virtual flash card. 
         [0231]      FIG. 14  illustrates an example of the screen that appears at the end of a session. 
         [0232]    As illustrated in  FIG. 14 , when a study session is completed, a screen that provides the user&#39;s performance, points earned, and option to review answers is displayed. Users may also view frequently missed questions. 
         [0233]    For instance, user&#39;s performance is calculated by dividing the number of virtual flash cards within a certain range of proficiency by the total number of virtual flash cards selected to achieve the course objective and multiplying the result by one hundred (100). 
         [0234]    The frequently missed problems or questions can be determined by considering the number of times the problem was answered incorrectly, or the rate and percentage of which the user answered correctly is decreasing. Virtual flash cards selected for review are arranged in order of proficiency level (low to high) or number of times the user answered the problem incorrectly (high to low). The number of virtual flash cards selected for review can be customized. 
         [0235]    Points achieved are distributed based on the user&#39;s progress. The points can be used to purchase virtual flash cards that other users have created. 
         [0236]      FIG. 15  illustrates an example of the objective (goal) setting screen for a studying subject. 
         [0237]    As illustrated in  FIG. 15 , the customized objective for the subject matter is “getting an A”. 
         [0238]    Here, such objective may customize a particular virtual flash card deck or it may customize the entire study course. 
         [0239]    For example, if the objective is set as “720 on SAT Verbal,” the system can automatically set the required percentage of correct answers for the corresponding virtual flash cards so the user can achieve his or her objective. 
         [0240]    The system can also provide a list of objectives that the user may choose from, and the user can select an appropriate objective from the list provided. 
         [0241]      FIG. 16  is an exemplary screen display of the training mode. 
         [0242]    As shown in  FIG. 16 , there are two options in the training mode: (1) self-study mode  1110 ; and (2) group study mode  1120 . 
         [0243]    Additionally, the “my study room” feature  1130  is available in the training mode. The “my study room” feature  1130  displays the registered study courses organized by categories. 
         [0244]    Self-study mode  1110  allows the user to study the course alone. Group study mode  1120  allows the user to study the course with other users online. 
         [0245]      FIG. 17  is an exemplary screen display of the group study mode. 
         [0246]    As illustrated in  FIG. 17 , in group study mode, the problem is displayed on the front side of the virtual flash card  1210  and an answer space  1220  is provided for each user to enter his or her answer. Here, the other user&#39;s answer space  1230  is also displayed on the user&#39;s screen. However, the other user&#39;s answer space  1230  cannot be viewed by the user and the other user&#39;s answer is not revealed until after the user completes the problem. 
         [0247]      FIG. 18  is an exemplary display of the group study mode after both users entered the answer. 
         [0248]    As shown in  FIG. 18 , the answer button  1310  is enabled once the user enters his or her answer in the answer space  1220 . When the user selects the answer button  1310 , the back side of the virtual flash card  1320  is displayed and the user can compare his or her answer with the answer on the back side of the virtual flash card. The other user&#39;s answer  1230  is also revealed so the user can also compare his or her answer with the other user&#39;s answer. 
         [0249]    By allowing multiple users to study the course together, the study method described above can maximize the learning benefits of the studying system using virtual flash cards without losing the users&#39; interest. 
         [0250]      FIG. 19  illustrates another exemplary screen display of the training mode. 
         [0251]    As illustrated in  FIG. 19 , the user can select among the study courses displayed on the screen. 
         [0252]    The user can also search the study course or virtual flash card decks that he or she would like to study. 
         [0253]    Also, the “my study room” feature  1130  is available in the training mode. The “my study room” feature  1130  displays the user&#39;s registered study courses organized by categories. 
         [0254]    As shown in  FIG. 19 , the user in this example selected the GMAT course. 
         [0255]      FIG. 20  is an exemplary screen display of the GMAT training course. 
         [0256]    As illustrated in  FIG. 20 , GMAT verbal and math courses are each $10 for 30 days. Once the user agrees to the terms of the transaction, he or she may start the course. 
         [0257]      FIG. 21  illustrates an example of the GMAT course objective (goal) setting screen. 
         [0258]    As shown in  FIG. 21 , the GMAT course objective is customized as “800 on GMAT Verbal.” 
         [0259]      FIG. 22  illustrates an example of the mode selection screen after the user customizes GMAT course objective (goal). 
         [0260]    As shown in  FIG. 22 , learning mode  1710 , training mode  1720 , and check progress mode  1730  are displayed upon customization of the GMAT course objective. 
         [0261]    In the example in  FIG. 22 , the user selected learning mode  1710 . 
         [0262]      FIG. 23  is an exemplary screen display of the learning mode in GMAT course. 
         [0263]    As illustrated in  FIG. 23 , the front side of the virtual flash card  1810  is displayed in GMAT course learning mode. The user may also select to display the back side of the virtual flash card  1820  to see the answer. 
         [0264]    Also shown in  FIG. 23 , the user can monitor which number of virtual flash card is being displayed  1830 . 
         [0265]    The user can complete a course relatively faster in learning mode since the user is not required to enter an answer. 
         [0266]    The user can skip or go back by clicking the arrows displayed on the screen. 
         [0267]      FIG. 24  illustrates an example of the course objective (goal) setting screen. 
         [0268]    As shown in  FIG. 24 , the user may customize the proficiency level. 
         [0269]    Also shown in  FIG. 24 , the proficiency level  1910  is customized as 95%. The proficiency level can be defined differently depending on the study course. For example, proficiency level can be defined as the number of virtual flash cards required to be answered correctly. Furthermore, the desired proficiency level can be changed for each learning session in the course. For example for the first session, the user may want to achieve 50% of proficiency, whereas for the second session, he or she may set the proficiency level to be 75%. 
         [0270]    The user can also arrange the course schedule by utilizing the scheduling feature  1920 . 
         [0271]    The scheduling feature  1920  includes entry of duration  1921  and entry of availability  1922 . 
         [0272]    The user can enter the duration of the study course  1921 . In the example in  FIG. 24 , the duration is customized as two weeks. 
         [0273]    The user can also enter his or her availability  1922  (date and time the user is available to study). 
         [0274]    When the user finishes arranging his or her course schedule, the user may click “OK”  1930  and the client training feature will calculate, organize and display the course schedule. The user can also manually edit the provided course schedule. 
         [0275]      FIG. 25  illustrates an example of the answer display screen. 
         [0276]    The answer display screen appears after the user completes a problem. As illustrated in  FIG. 25 , the answer display screen includes the front side display  2010 , user&#39;s entry display  2020 , and the back side display  2030 . 
         [0277]    The front side display  2010  illustrates the front side of the virtual flash card or the problem the user needs to answer. 
         [0278]    The user&#39;s entry display  2020  illustrates the answer that the user entered for the corresponding virtual flash card. 
         [0279]    The back side display  2020  illustrates the back side of the virtual flash card or the answer to the problem on the front side of the corresponding virtual flash card. 
         [0280]    The user can manually score his or her answer by comparing his or her answer with the answer on the back side of the virtual flash card. The user may click “yes”  2040  if he or she answered correctly, or “no”  2050  if he or she answered incorrectly. 
         [0281]      FIG. 25  is an example of an answer display screen that appears during the study session. Such answer display screen includes session progress bar  2060  which tracks the user&#39;s progress in the session. 
         [0282]      FIG. 26  is an exemplary screen display of the authoring mode. 
         [0283]      FIG. 26  illustrates noun deck  2110 , idiom deck  2120 , and sentence deck  2130  under the title “English.” 
         [0284]    The user can add, edit, copy, delete, or merge virtual flash card decks. The user can also move virtual flash card decks to certain groups. 
         [0285]    In certain embodiments, the authoring mode can be started by the authoring menu. The authoring menu provides the following options: (1) “new deck,” which creates new virtual flash card decks; (2) “edit deck,” which edits existing virtual flash card decks; and (3) “import/export deck,” which imports/exports virtual flash card decks through network. 
         [0286]    If the user selects “new deck” or “edit deck” from the authoring menu, a deck menu is provided to the user. 
         [0287]    The user may select the following options from the deck menu: (1) add card; (2) edit card; (3) copy card; (4) delete card; (5) merge deck; or (6) organize deck. 
         [0288]    The add card option allows the user to add a new virtual flash card to the virtual flash card deck. The edit card option allows the user to edit a particular virtual flash card in a virtual flash card deck. After completing the add card option, the system can automatically execute the edit card option. 
         [0289]    The copy card option allows the user to copy a particular virtual flash card. The delete card option allows the user to delete a certain virtual flash card from the virtual flash card deck. The merge deck option creates a new virtual flash card deck by merging more than two existing virtual flash card decks. The organize deck option arranges the order of the virtual flash cards. Here, the order determined by organize deck option can be similar to the training mode&#39;s quiz type order. However, the learning mode sequence would be more beneficial in this case. 
         [0290]    Having thus described the invention in rather full detail, it will be understood that such detail need not be strictly adhered to, but that additional changes and modifications may suggest themselves to one skilled in the art. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.