Course management with TrucStudio - CiteSeerX

2 downloads 7591 Views 526KB Size Report
Jul 2, 2008 - K.3.2 [Computers and Education]: Computer and Information. Science .... The course design interface shows the list of all courses managed.
Course management with TrucStudio Michela Pedroni, Manuel Oriol, Bertrand Meyer, Enrico Albonico, Lukas Angerer Chair of Software Engineering ETH Zurich 8092 Zurich, Switzerland

{michela.pedroni|manuel.oriol|bertrand.meyer}@inf.ethz.ch; {enricoa|angererl}@student.ethz.ch

ABSTRACT Ever growing expectations from students, university management and other stakeholders make course preparation increasingly timeconsuming. Setting up a course from scratch requires producing many supporting documents such as syllabi, schedules, course web sites and others listing the concepts being taught. This can be a considerable effort, taking time away from tasks with a more immediate pedagogical value, such as answering student questions and refining the concepts themselves. The TrucStudio course development framework supports a systematic approach to these necessary but arduous tasks. TrucStudio is organized like a modern programming environment, but its elements of discourse, rather than software modules, are units of knowledge such as notions, Trucs and clusters. In addition to course development, applications of TrucStudio include checking sound coverage of topics and comparing courses on an objective basis. This presentation focuses on two novel features of TrucStudio: version management of knowledge units and course information; and generation of output documents in various formats from knowledge units and other material managed by TrucStudio.

Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – curriculum, computer science education.

General Terms Management, Standardization.

Keywords Curriculum design, knowledge versioning, output generation.

modeling,

course

design,

1. INTRODUCTION The actual teaching of lectures is becoming an increasingly small part of the overall effort of giving a course. While preparation has always been a considerable component of such an effort, teaching courses nowadays requires producing additional content and Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ITICSE’08, June 30 – July 2, 2008, Madrid, Spain. Copyright 2008 ACM xxx-x-xxxxx-xxx-x/xx/xxxx..$5.00.

spending significant time making it accessible to students, generally through a web site describing the syllabus, the schedule and the concepts. To present these concepts, an ambitious approach would be to develop and maintain a comprehensive lexicon with links between related concepts; because it requires considerable work, it is seldom applied in full: the more common practice is simply to make the course slides available to students. The TrucStudio course development framework helps teachers create and maintain descriptions of subject areas and individual courses, based on the concepts of (in increasing order of granularity) notion, Truc (Testable, Reusable Units of Cognition) and cluster. It provides a comprehensive environment backed by a systematic modeling approach, a combination strongly influenced by modern software development environments such as Visual Studio or Eclipse, and engineering design frameworks of other disciplines such as Computer-Aided Design. Having such an environment facilitates conscious decisions on such matters as which topics to teach and which to leave out, and helps improve the course structure by showing what notions are taught when. Previous TrucStudio related publications [7, 8] emphasized its capabilities to compare two different sets of notions to check compliance of a course to a given description and to use slides to extract notion and Truc names. The present article emphasizes two important new mechanisms of TrucStudio: sharing and updating versions of notions and Trucs in order to reuse them in an easy manner; and outputting descriptions of notions, Trucs, courses, and lectures in various formats. The versioning mechanism makes it possible to store Trucs and notions on a remote server and maintain them in a concurrent and collaborative way. This lowers the effort needed for creating a new course by reusing existing Trucs available for download. It can also help to develop a comprehensive understanding of a domain of knowledge collaboratively and to share it among educators. The output mechanism allows educators to produce encyclopedic websites as well as course compendiums, lecture appointments and other course information. In particular, TrucStudio can automatically generate a browsable dependency graph, effectively a lexicon with references to relevant lecture materials. Section 2 presents the basics of Trucs and notions and gives an overview of the TrucStudio interface. Section 3 shows the infrastructure that manages Truc versioning. Section 4 describes the output formats that TrucStudio offers. Section 5 presents related work, and we conclude in Section 6.

2. TRUCS AND TRUCSTUDIO 2.1 Trucs, notions, and clusters A Truc captures a collection of concepts and operational skills proceeding from one central idea [5]. It is of general interest (independent of a specific course) and can be covered in one lecture or a small number of lectures. Typical Trucs for teaching object-oriented programming (an example from our own practice, although the Truc concept is applicable to the teaching of any area, computer-related or not) are “object”, “class”, “routine call”, “argument passing”, and “inheritance”. A Truc description follows a standardized scheme including technical elements such as a summary, examples, dependencies on other Trucs, as well as pedagogical elements such as known common confusions when learning the Truc and typical assessment questions to determine whether a student has really mastered the concepts.

The course design interface shows the list of all courses managed through TrucStudio. A course contains a list of available time slots (e.g. every Monday 2 p.m. to 4 p.m. in the semester) and a list of lectures, each presenting a sequence of notions. It reports repetitions of the same notion in different lectures, and time orderings that violate notion dependencies. It requires users to enter an estimate of the time needed for teaching the lecture and maps it onto the time slots to produce the course schedule. TrucStudio also allows users to associate with any entity (notion, Truc, cluster, course, lecture), a URL link to related teaching material. The domain model and course design can be copied to and loaded from TXM files (TrucStudio’s XML-based storage format). Also available is partial import from OWL [11], an ontology storage format.

While Trucs capture the central teaching units of a course, finergrained units of knowledge — notions — help refine the specification. A notion “represents a single concept or operational skill or facet of a concept” [7] and belongs to exactly one Truc. Its description contains a list of alternative names and a summary. A Truc may have a central notion, which then bears the same name. Examples of notions within the Truc “routine call” are: the central notion “routine call”, “multi-level routine call” (calls of the form o1.o2.o3.f), “unqualified routine call” (routine calls that do not specify their target). A cluster is a collection of Trucs and/or other clusters. A Truc may belong to more than one cluster in the domain model; the set of all clusters forms a directed acyclic graph. Clusters represent knowledge areas and help keep large numbers of Trucs manageable. The framework defines two types of relations between notions: isa links and requires links. They make it possible to check the soundness of a teaching sequence and to detect prerequisite violations. Dependencies at the notion level contribute to dependencies at the Truc level: a Truc A depends on another Truc B if any of its notions requires a notion of B. As an example of links between notions, “unqualified routine call” is an “is-a” specialization of “routine call” and “routine call” requires the “return value”. As a consequence, the Truc “routine call” depends on the Truc “object”. Notions and Trucs with their links define a two-layered graph (see Figure 1), which provides the domain model for organizing courses and curricula with TrucStudio.

2.2 TrucStudio

TrucStudio 1, the software framework supporting the Truc approach, has two main parts: a domain modeling interface and a course design interface. The domain modeling interface shows (Figure 1) a list of clusters, Trucs and notions on the left and a manipulation view on the right. Selecting one of the entities updates the manipulation view, which can be either a form for editing the selected entity or (as in Figure 1) a graphical view showing the graph of notions and Trucs. TrucStudio makes it possible to manipulate the layout of the graph, and allows saving it to and loading it from an XML file, and exporting an image to PNG.

1

Available at http://trucstudio.origo.ethz.ch

Figure 1 Screenshot of TrucStudio ( : is-a link, : requires link)

3. TRUC EVOLUTION AND SHARING When designing a course, the teacher needs to define an underlying layer of notions and Trucs to teach. Creating a structured domain knowledge model is an iterative process that usually involves several people. TrucStudio provides the facility to exchange and maintain entities in a central repository. This allows teachers to start the design of courses from a first version of the domain entities and then to improve it through iterations. Entities are of one of the following types: notion, Truc, cluster, course, and lecture. For each type there is a precise definition of the characteristic properties, their possible values, and relations to other entities. Every uploaded change to an entity of the repository produces a new revision so that old versions of the entity can be restored at any later time. The Truc-sharing mechanism only allows uploads when the basis for the modification is the latest version; otherwise the user must download the newest version and "merge" it with his changes

using TrucStudio’s difference-viewer. This minimizes organizational overhead and provides the basis for a robust versioning system. Users may read or modify any public entity, constrained only by access rights, without the risk of losing data. The collaborative features integrate tightly into the existing interface and require very little prior knowledge.

3.1 Architecture In software development, configuration management tools (such as Subversion [9]) address versioning of project documents and source code. Most of the capabilities provided by these tools (such as comparing two versions of the same document or entity) are needed as well for versioning TrucStudio data. But while comparing two source code versions requires simply comparing text and showing the lines that differ, two textually differing TXM files may actually contain equivalent contents, for example represented in two XML trees containing the same branches but stored in a different order. This makes available software versioning systems inadequate for TrucStudio; instead, the framework implements a custom versioning mechanism consisting of a TrucStudio Server as a central repository and TrucStudio as a client application.

3.2 TrucStudio interface TrucStudio has three main interfaces that interact with the versioning mechanism: a repository browser; contextual menus; and the difference-view conflict resolution panel. The repository browser presents a tree view control showing TrucStudio servers as root nodes (see Figure 2). By expanding entries in the tree, users navigate through the projects to which they have access and browse the available entities. Right-clicking on an entity displays a context menu with entries for downloading the entity into the current local working set. The repository browser offers additional advanced options such as comparing entities or revisions, and reverting to previous revisions. Operations such as sharing, uploading changes, and downloading the newest version of an entity can be performed directly in the regular TrucStudio window through a contextual menu. Available options depend on the state of the selected entity. If for example it has not yet been published, the context menu only contains a "Share" entry, but no "Upload" or "Download" entry.

The TrucStudio Server is written in Eiffel and uses the Goanna implementation of XML-RPC (XML based remote procedure call [10]) to implement services. The client program – TrucStudio or any tool ready for using the protocol – accesses the service methods by sending a HTTP request with an XML document that contains the requested method name and parameters to the server. A TrucStudio server stores all information in a MySQL database accessed via an ODBC driver. The use of ODBC decouples the server application from the underlying database, so that a TrucStudio server can interact with any ODBC-compatible database. The server application uses the same basic format as TrucStudio to store the individual revisions of every versioned entity. This significantly reduces the complexity of the server logic since the pre- and post-processing of uploads and downloads is extremely fast. Entities in TrucStudio have a unique URI of the form ts://host/type/uuid/name/revision where host defines the server location, type the entity type (such as “notion”, “truc”, “course”), uuid a unique identification string, name the current entity name, and revision the current version of the entity. The use of a unique identifier (uuid) supports the handling of entities that may change name over time.

Figure 2 Screenshot of the repository browser When TrucStudio detects concurrent modifications during an attempted upload, it requires the user to perform a manual download first. Downloading the newest version will then present a difference-view panel to resolve conflicts (see Figure 3). The panel contains a list of entities that need merging, along with the entity properties in which the local version differs from the version stored in the server.

Uploaded entities are organized into different projects; a UNIXlike permission system regulates access to these projects. A user has one of three possible roles in any project: • "owner": can add members and promote members to owners • "member": project member without special privileges • "everybody else": not explicitly part of the project Permissions on a project are stored as a sequence of three characters, one for every role in the above order. Each role can have read/write ("w"), read ("r") or no ("-") access to the entities stored in a project. For example, if "john.doe" is a member of the project "my_project" that has permissions "wr-", then "john.doe" could download entities (read access) from this project, but not upload his changes.

Figure 3 Screenshot of the diff-view

4. OUTPUT GENERATION A core aspect of course management is communication between the teaching staff and the students. Teachers typically provide much of the information managed with TrucStudio in other formats to students.

Figure 5 Browsable lexicon screenshot The task of publishing course information and keeping it up to date is often tedious and repetitive. TrucStudio provides a rich output mechanism for easy generation of outputs representing several kinds of information managed by the framework. The output mechanism is extensible through user-defined output templates supporting customization and allowing an instructor, group or institution to enforce a common look and feel across a whole set of courses.

4.1 Architecture Output generation in TrucStudio makes extensive use of XSLT (Extensible Stylesheet Language Transformations [12]). XSLT is an XML-based language for transforming an input XML document into another format (not necessarily an XML derivative). The TrucStudio interface guides the teacher through the output generation mechanism. In a first step, users choose a template and then select the data to output. TrucStudio then creates an intermediary TXM file that contains the selected data. This file serves as input data for the XSL Transformation template. TrucStudio internally uses the GOBO XSLT processor to take care automatically of the transformation that creates the final output files (see Figure 4).

Figure 4 Output generation process

Output customization can then take either of two forms: adding templates or modifying existing ones. The first only requires basic knowledge of XSLT and an understanding of the TXM file structure. The second allows the clean integration of information from TrucStudio into existing resources and tools.

4.2 Output formats TrucStudio provides a basic set of templates generating the most commonly needed outputs such as course websites that provide course information and an alphabetical glossary of notions. Templates include: •

Several types of web sites containing notions, Trucs, clusters, lectures, and courses.



Generation of calendar events in ICAL format for courses.



A primitive OWL (Web Ontology Language) output to exchange notions and Trucs with ontology tools.

Among supported formats, a particularly interesting one is the browsable lexicon. Similar to Concept Maps [1], it allows the students to review the concepts taught by highlighting relations between them. In the hyperbolic tree pane (top left part in Figure 5), clicking on any entity updates the right pane containing all the information about that entity and centers the tree to highlight the position of the entity and related ones in the entity hierarchy. Additionally, the glossary (lower left pane) helps find information about a particular topic. TrucStudio enables instructors to provide students with up-to date information about the lectures as well as a conceptual overview of

the relations between the different topics treated in the course. They can adapt the output formats to existing structures (for example to integrate them into existing course web pages or adapt them to a corporate design) and reuse them for all TrucStudiomanaged courses.

5. RELATED WORK The main alternatives to TrucStudio are tools that support teaching and modeling. The MOT model [6], for example, mainly builds tele-education systems. It includes graphical knowledge representation by defining knowledge graphs containing “knowledge objects” as nodes. MOT proposes six types of knowledge objects and six types of links accounting for the edges of the graph. Exact rules define for each link type what knowledge object types it may connect. This approach features high formality and expressiveness, but requires significant training until novices can use it efficiently. With TrucStudio, instructors can start using the framework with little or no training; TrucStudio then guides them through more difficult tasks. Building concept maps with the help of software such as CmapTools [1] is an acknowledged learning technique. Students generate graphs where the nodes are concepts and links can be freely labeled (e.g. the concept "method call" could have a link labeled "may possess" to the concept "argument"). This approach is highly expressive, but lacks TrucStudio’s formal definition of course structure and dependencies, and its resulting ability to detect dependency violations and other anomalies. Ontologies [4] are defined as "explicit specifications of conceptualizations" and many researchers in e-learning advocate the use of ontologies to produce metadata information for learning objects [3]. Several ontology storage formats exist, such as OWL [11]; they support the specification of a domain model using classes, class hierarchies, instances, and properties in a way that is reminiscent of object-oriented modeling. Ontologies are a powerful, expressive way of describing arbitrary domains; domain models based on notions and Trucs can be translated to such ontology specifications using the output generation mechanism described above. The ongoing effort to capture the computing domain in an ontology [2] is particularly interesting as TrucStudio could use it as an input.

6. CONCLUSIONS TrucStudio helps educators design and manage courses. An essential need here is generation of the domain models. The Truc versioning and sharing facilities ease this task by letting educators download existing resources from a central repository and tracking changes in their domain descriptions. Another critical need is the generation of output from the given domain and course descriptions to ease repetitive tasks. TrucStudio’s output mechanism provides elaborate textual and graphical outputs as part of the TrucStudio distribution, but also allows instructors to create their own output formats and forms. Future work includes building more complex output templates (such as advanced OWL outputs and slide templates), drawing lessons from actual uses of TrucStudio for course design

(including our own courses), as well as controlled experiments of the use of TrucStudio in the classroom. As an example of this last point, we plan to encourage domain model contributions from students using the TrucStudio versioning mechanism. Students would then provide examples and solutions for common problems and help clarify the issues they encounter.

7. REFERENCES [1] Cañas, A. J.; Hill, G.; Carff, R.; Suri, N.; Lott, J.; Eskridge, T.; Gómez, G.; Arroyo, M. & Carvajal, R. A.J. Cañas, J.D. Novak & González, F. (ed.) CmapTools: A Knowledge Modeling and Sharing Environment Concept Maps: Theory, Methodology, Technology, Proceedings of the First International Conference on Concept Mapping, 2004, pp. 125 - 133. [2] L. B. Cassel, A. McGettrick, and R. H. Sloan. A comprehensive representation of the computing and information disciplines. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, pages 199-200, Houston, Texas, USA, 2006. [3] E. Duval and W. Hodgins. A LOM research agenda. In Proceedings of the Twelfth International World Wide Web Conference, WWW2003, Budapest, Hungary, May 2003. [4] T. R. Gruber. A translation approach to portable ontology specifications. Knowledge Acquisition, 5(2):199-220, 1993. [5] B. Meyer. Testable, reusable units of cognition. IEEE Computer, 39(4):20–24, 2006. [6] G. Paquette. Meta-knowledge representation for learning scenarios engineering. In S. Lajoie and M. Vivet, editors, Proceedings of AI-Ed99 AI and Education, open learning environments. Amsterdam, June 1999. IOS Press. [7] M. Pedroni, M. Oriol, and B. Meyer. A framework for describing and comparing courses and curricula. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, pages 131-135, Dundee, Scotland, 2007. [8] M. Pedroni, M. Oriol, B. Meyer, and L. Angerer. Automatic extraction of notions from course material. In Proceedings of the 39th SIGCSE technical symposium on Computer science education, Portland, Oregon, USA, 2008. [9] Pilato, C. M.; Collins-Sussman, B. & Fitzpatrick, B. W. Version Control with Subversion. O'Reilly Media, Inc., 2004. [10] UserLand Software. XML-RPC – Specification online at http://www.xmlrpc.com [11] World Wide Web Consortium. OWL Web Ontology Language - Overview. W3C Recommendation. February, 2004. See http://www.w3.org/TR/owl-features. [12] World Wide Web Consortium. XSL Transformations (XSLT) 1.0. W3C Recommendation. November, 1999. See http://www.w3.org/TR/xslt

Suggest Documents