US 11,989,552 B2
Automated quality assessment of a programming task
Wasim Abu Salem, Haifa (IL); and Mohammad Mitwaly, Nazareth (IL)
Assigned to ALTOORO TECHNOLOGIES LTD., Haifa (IL)
Filed by Altooro Technologies LTD., Haifa (IL)
Filed on May 19, 2022, as Appl. No. 17/664,221.
Prior Publication US 2023/0376311 A1, Nov. 23, 2023
Int. Cl. G06F 8/77 (2018.01)
CPC G06F 8/77 (2013.01) 14 Claims
OG exemplary drawing
 
1. A method comprising:
automatically monitoring an activity of a developer in an Integrated Development Environment (IDE), said automatically monitoring is performed while the developer is programming a program via the IDE, wherein the developer is a candidate for recruitment to an organization, the developer is being evaluated by the organization, wherein the developer performs a programming task for recruitment evaluation, wherein the programming task has one or more known solutions;
wherein said monitoring comprises periodically obtaining measurements of a plurality of metrics in time intervals having a predetermined time duration, whereby obtaining the measurements in a plurality of time segments, the predetermined time duration is no longer than one hour, wherein the plurality of metrics comprises at least:
a Characters Per Increment (CPI) metric indicating a number of characters written by the developer during a respective time segment;
a Length Per Increment (LPI) metric indicating a length of the program at an end of the respective time segment;
a Focus Per Increment (FPI) metric indicating whether during the respective time segment, the developer was in the IDE or had left the IDE;
a Runs Per Increment (RPI) metric indicating a number of times the developer had attempted to execute the program during the respective time segment; and
a Distance Per Increment (DPI) metric indicating a similarity measurement between the program at the end of the respective time segment and the one or more known solutions;
automatically determining a functional correctness of the program at a last time segment of the plurality of time segments;
computing values of a plurality of features based on the measurements of each of the metrics in the plurality of time segments, the plurality of features are indicative of a behavior of the developer while programming, the plurality of features comprise at least:
a feature indicating logic stability of the program over the plurality of time segments, wherein the feature indicating logic stability is computed based on a complexity-invariant distance of values of the LPI metric;
a feature indicating debugging time performed by the developer. wherein the feature indicating debugging time is computed based on values of the CPI metric:
a feature indicating a variance in a rate of programming performed by the developer over the plurality of time segments. wherein the feature indicating the variance in the rate of programming is computed based on the complexity-invariant distance of values of the CPI metric; and
a feature indicating a thinking time duration taken by the developer to plan how to develop the program, wherein the feature indicating the thinking time duration is based on at least one of LPI metric and CPI metric; and
utilizing a prediction model to provide an automated assessment based on the values of the plurality of features, whereby providing the organization with an assessment of the developer to assist in the determination of whether to recruit the developer.