1. the problem statement codified in the Simple Text Markup Language (STML) format—a simplified subset of HTML,
2. the format of input and output files and samples,
3. the restrictions on the input format, and
4. references for external resources such as tests generators, special checkers, plug-ins and solution programs.
1. Textual information—programming task human-readable texts,
2. Data files—source files and test data,
3. Configuration and recommendation parameters---resource limits,
4. Tools—generic and task-specific tools, and
5. Metadata—data to foster the exercises discovery among systems.
Textual—elements with general information about the exercise to be presented to the learner (e.g., title, date, challenge).
Specification—elements with a set of restrictions that can be used for generating specialized resources (e.g., test cases, feedback).
Programs—elements with references to programs as external resources (e.g., solution program, correctors) and metadata about those resources (e.g., compilation, execution line, hints).
3.3.1 The GetFormats Function The GetFormats function provides the requester with a list of all the formats supported by the service. In order to support a format, the service must implement the format conversion from and to the pivotal format. In this function, the request may omit the parameter or have one representing the input format. In the former, the response returns a list of all formats of the converter. In the latter, the response includes only the formats that can be converted from the input format given as a parameter. In the response, each format is described by its name and a list of formats that can be used as outputs and its corresponding URL paths. This will allow client systems to automate the conversion request based on the available formats returned by the GetFormats function.
3.3.2 The Convert Function The Convert function performs the conversion of a given programming exercise from an input format to an output format. The function includes three parameters: 1) the format of the exercise to convert, 2) the conversion output format, and 3) a reference (URL based) of the exercise to convert. The function returns an archive with its contents complying with the output format.
3.3.3 The ConvertSets Function The ConvertSets function converts a set of programming exercises from an input format to an output format. This function is useful with formats that deal only with exercise sets, or when they are convenient for a particular task. In a competitive setting, a contest manager may want to feed a new contest based on a problem set of a existing programming contest. In a more pedagogical setting, a teacher may want to use in the classroom a set of problems from an external source. In both cases, the request parameters are similar to the previous function. The function returns an archive with a set of exercises complying the given output format.
3.3.4 The ConvertFromSet Function The ConvertFromSet function converts a single programming exercise from a set of exercises described with the input format to a single exercise in the output format. The exercise to convert is given by its position within the set as an additional parameter. The function returns an archive with a single exercise complying the given output format.
3.3.5 The ConvertToSet Function The ConvertToSet function converts a single programming exercise complying with the input format to a single collection in the output format. The function returns an archive containing a collection with only one exercise in the given output format.
1. Learning Objects Repository to store/retrieve exercises.
2. Evaluation Engine to evaluate students' exercises.
3. Learning Management System to present the exercises to students.
4. Integrated Development Environment to code the exercises.
R. Queirós is with the CRACS and INESC-Porto LA, Faculty of Sciences, University of Porto, and DI-ESEIG/IPP, Rua D. Sancho I. 981, Vila do Conde, 4480-876 Porto, Portugal. E-mail: firstname.lastname@example.org.
J.P. Leal is with the CRACS and INESC-Porto LA, Faculty of Sciences, University of Porto, DCC - R. do Campo Alegre, 1021/1055, 4169-007 Porto, Portugal. E-mail: email@example.com.
Manuscript received 7 May 2012; revised 25 July 2012; accepted 6 Oct 2012; published online 15 Oct. 2012.
For information on obtaining reprints of this article, please send e-mail to: firstname.lastname@example.org, and reference IEEECS Log Number TLT-2012-05-0066.
Digital Object Identifier no. 10.1109/TLT.2012.21.
Ricardo Queirós is currently working toward the PhD degree in computer sciences in the Faculty of Sciences of the University of Porto. He is an assistant professor at the School of Industrial Studies and Management in Vila do Conde. His scientific activity is related with e-learning standards and interoperability. He is an associated member of the Center for Research in Advanced Computing Systems.
José Paulo Leal is an assistant professor at the Department of Computer Science of the Faculty of Sciences of the University of Porto and an associate researcher of the Center for Research in Advanced Computing Systems. His main research interests are e-learning system implementation, structured document processing, and software engineering. He has a special interest on automatic exercise evaluation, in particular in the evaluation of programming exercises, on the semantic web, and on web adaptability.