A course is not an engineering product, but applying modeling techniques partly imitated from software and other engineering disciplines can provide many benefits: allowing instructors to define and plan their courses in a systematic way, facilitating conscious decisions on the topics to teach and the topics to leave out, improving the course structure by showing what notions are taught when, and supporting comparisons between variants of the same course (for example across different institutions) on the basis of sound, objective evidence. The research question is thus how a systematic tool-supported approach to course development may improve the course's organization and how such a systematic approach needs to look. We are working on the development of a methodology based on the idea of Truc (Testable Reusable Units of Cognition) and a supporting tool - TrucStudio - that helps achieve these benefits. TrucStudio (see Figure 1) has two main parts: the domain modeling interface allows defining the concepts covered in educational material and the prerequisite relations between these concepts; the course design interface models the contents of a course as a sequence of covered concepts.
Figure 1: Screenshot of TrucStudio (click to enlarge)
Related work can be found in the areas of curriculum design and instructional/learning design. The Curriculum Initiatives CC2001  and CC2005  define the body of knowledge for Computer Science by listing the core concepts belonging to a specific area. While these efforts have a great impact on curricular planning, they don't specify how compliance to the courses defined in these reports can be assessed. Furthermore, they are mostly used for defining computing curricula; for course planning or textbook writing the units of knowledge provided are too coarse-grained and miss information about dependencies and other relationships between topics. The computing ontology  is an ongoing effort to capture all computing topics in an ontology format, but exhibits the some of the same problems. Learning design approaches [4, 6] on the other hand target networked and distance education. The main focus of existing tools is to produce interoperable, adaptive e-learning courses. The solutions provided by these tools are overly complex for traditional courses and do not address course comparison. Anchoring Concepts (AC) and Anchoring Graphs  use cognitive load to identify the optimal sequence of concept introduction. The Anchoring Graph approach requires taking teaching-related decisions at design-time since the construction of the AC graphs produce a partially fixed teaching sequence.
Our domain modeling approach relies on the idea of Truc (Testable, Reusable Unit of Cognition)  and extends it with the concepts of notion and cluster. A Truc captures a collection of concepts and operational skills proceeding from one central idea . It is of general interest (independent of a specific course) and can be covered in a small number of lectures. Typical Trucs (from the example of teaching object-oriented programming) are "object", "class", "routine call", "argument passing", and "inheritance". A Truc description follows a standardized scheme including a summary, examples, specification of the Trucís role, possible applications, dependencies on other Trucs, benefits and drawbacks. The scheme also includes pedagogical elements: known common confusions when learning the Truc and typical assessment questions to determine whether a student has really mastered the concepts. Trucs can be used both for instructors to model the knowledge units taught in their course and by students as a summary of the course contents. While Trucs capture the central teaching units of a course, finer grained units of knowledge — notions — help refine the specification. A notion "represents a single concept or operational skill or facet of a concept"  and belongs to exactly one Truc. Examples of notions within the Truc "routine call" are: "routine call", "multi-dot routine call" (calls of the form o1.o2.o3.f), "unqualified routine call" (routine calls that do not specify their target). The framework also defines several types of links between Trucs (dependency links) and between notions (requires links and refines links). Clusters are loose collections of Trucs that help organize and maintain them. A Truc may be part of multiple clusters.
Notions and Trucs with their links define a two-layered graph. With the help of this graph we can define lessons as paths in the graph of Trucs/notions and courses as a sequence of such paths. These then can be used for checking prerequisites and for comparing the course contents of two courses or a course and its syllabus.
TrucStudio is the tool providing support for this domain and course modeling approaches. Currently it supports creating the domain and course models, displaying them as graphs, generating webpages and other outputs (such as Calendar files containing course dates and OWL files with the domain descriptions), and sharing Trucs in a central repository to minimize the cost for the individual instructor wanting to use the tool. The final goals of my thesis are:
At the moment, we are working on the release of the tool that we are starting to use in the course Software Architecture as a first case study. Collection of feedback through questionnaires and interviews with the teaching staff will provide a first set of data to find out where the tool and the approach needs to be improved and what effects it has on the course organization.
I submitted my research plan in early summer 2005. I am currently starting to write the thesis document, produce a first release of TrucStudio, and plan to defend my PhD in November 2008.
 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.
 The Joint Task Force on Computing Curricula: Computing Curricula 2001 (final report). December 2001: http://www.sigcse.org/cc2001/.
 The Joint Task Force on Computing Curricula 2005: Computing curricula 2005 (draft). April 4 2005: http://www.acm.org/education/Draft_5-23-051.pdf.
 R. Koper and C. Tattersall, 2005: Learning Design: a Handbook on Modelling and Delivering Networked Education and Training. Springer-Verlag, New York, Inc.
 J. Mead, S. Gray, J. Hamer, R. James, J. Sorva, C. St. Clair, and L. Thomas. A cognitive approach to identifying measurable milestones for programming skill acquisition. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education, pages 182-194, Bologna, Italy, 2006.
 G. Paquette. Meta-knowledge representation for learning scenarios engineering. In Proceedings of AI-Ed99, AI and Education, open learning environments. Amsterdam, June 1999. IOS Press.
 B. Meyer, Testable, Reusable Units of Cognition. IEEE Computer 39 (4): 20-24 (2006) April 2006: http://doi.ieeecomputersociety.org/10.1109/MC.2006.141.
 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.