CPC G06F 16/282 (2019.01) [G06F 16/2272 (2019.01); G06F 16/2282 (2019.01); G06F 16/243 (2019.01); G06F 16/248 (2019.01)] | 15 Claims |
1. A method for data storage and retrieval from a computer memory, comprising:
storing, by a computing device, a first hierarchical data structure comprising a first sequence of sub-data structures, the first sequence of sub-data structures comprising a first initial sub-data structure, a first at least one intermediate sub-data structure, and a first terminal sub-data structure, the first initial sub-data structure linked with the first at least one intermediate sub-data structure by an identifier of the at least one intermediate sub-data structure in the first initial sub-data structure and an identifier of the first initial sub-data structure in the first at least one intermediate sub-data structure, the first at least one intermediate sub-data structure linked with the first terminal sub-data structure by an identifier of the first terminal sub-data structure in the first at least one intermediate sub-data structure and an identifier of the first at least one intermediate sub-data structure in the first terminal sub-data structure, wherein the first initial sub-data structure comprises course data about a course and the first terminal sub-data structure comprises activity data about an activity for the course, the activity data comprising an activity time on task estimate and the course data about the course comprising a course time on task estimate comprising an aggregate of activity time on task estimates of the first terminal sub-data structure and any other terminal sub-data structures comprising the identifier of the first initial sub-data structure in the first hierarchical data structure;
storing, by the computing device, a second hierarchical data structure comprising a second sequence of sub-data structures, the second sequence of sub-data structures comprising a second initial sub-data structure, a second at least one intermediate sub-data structure, and a second terminal sub-data structure, the second initial sub-data structure linked with the second at least one intermediate sub-data structure by an identifier of the at least one intermediate sub-data structure in the second initial sub-data structure and an identifier of the second initial sub-data structure in the second at least one intermediate sub-data structure, the second at least one intermediate sub-data structure linked with the second terminal sub-data structure by an identifier of the second terminal sub-data structure in the second at least one intermediate sub-data structure and an identifier of the second at least one intermediate sub-data structure in the second terminal sub-data structure, wherein the second initial sub-data structure comprises program outcome data for a program and the second terminal sub-data structure comprises module outcome data for a module of the program, the module outcome data comprising an aggregation of activity time on task estimates of a second plurality of terminal sub-data structures in the first hierarchical data structure linked to the second terminal sub-data structure, the program outcome data comprising an aggregation of module outcome time on task estimates of a second plurality of terminal sub-data structures of the second hierarchical data structure linked to the second initial sub-data structure;
inserting, by the computing device, a terminal identifier of the second terminal sub-data structure into a first field of the first terminal sub-data structure and a terminal identifier of the first terminal sub-data structure into a second field the second terminal sub-data structure, the first and second fields each dedicated to storing identifiers of sub-data structures;
receiving, by the computing device from a client device, a request comprising an identification of the first initial sub-data structure of the first sequence;
responsive to receipt of the request, retrieving, by the computing device, data from each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures based on the identification of the first initial sub-data structure matching a string in the first initial sub-data structure of the first sequence and further based on each identifier linking the first sequence of sub-data structures and the second sequence of sub-data structures and the first terminal sub-data structure with the second terminal sub-data structure;
and
transmitting, by the computing device, a record generated based on the retrieved data to the client device.
|