#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass article
\language english
\inputencoding auto
\fontscheme default
\graphics default
\paperfontsize default
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Title

LON-CAPA Developer's Manual
\layout Author

(source material)
\layout Section

\layout Standard

The purpose of this document is to introduce developers people to LON-CAPA,
and enable them to start doing real work with the system as quickly as
possible.
This should prove useful both to people who already intend to develop with
LON-CAPA, and to technical people who are evaluating LON-CAPA to see if
it suits their needs.

\layout Standard

The most daunting task facing new developers is understanding how the whole
system fits together; individual pieces are usually sensible but like any
large program it is difficult to understand the forest by looking at just
the trees.
Therefore, this document will start out with the highest-level overview
of the system, which can be safely skipped if you already know what LON-CAPA
is.

\layout Standard

Next, we'll look at the major subsystems of LON-CAPA and how they fit together
at a high level, with enough detail to understand the context a given piece
of the system functions in.
Appropriate pointers will be given to the detailed documentation on the
various subsystems, so this section can
\layout Standard

Then a brief tutorial in adding a
\begin_inset Quotes eld
\end_inset

handler
\begin_inset Quotes erd
\end_inset

to LON-CAPA will be given, enabling you both to understand how to add brand-new
functionality to LON-CAPA, and better understand the majority of the code
in the system which is in the form of handlers.
\layout Standard

Finally, the last and largest portion of this document will be extremely
detailed examinations of the subsystems from a technical point of view,
including API descriptions suitable for use in programming.
Obviously you will not need to read this over entirely, unless you really
want to know what the system can do.
\layout Section

What is LON-CAPA?
\layout Standard

The
\series bold
L
\series default
earning
\series bold
O
\series default
nline
\series bold
N
\series default
etwork with a
\series bold
C
\series default
omputer
\series bold
A
\series default
ssisted
\series bold
P
\series default
ersonalized
\series bold
A
\series default
pproach (LON-CAPA) is an integrated system for online learning and assessment.
It consists of a learning content authoring and management system allowing
new and existing content to be used flexibly, a course management system,
an individualized homework and automatic grading system, data collection
and data mining system, and a content delivery system that will provide
gateways to and from NSF's National STEM Digital Library.
\layout Standard

In particular:
\layout Itemize

The LON-CAPA software provides instructors with a common, scalable platform
to assist in all aspects of teaching a course, from lecture preparation
to administration of homework assignments and exams.
It allows instructors to create educational materials and to share such
learning resources with colleagues across institutions in a simple and
efficient manner.

\layout Itemize

It provides an extremely sophisticated assignment engine that can create
unique homework assignments and examinations for each student in a class.
Its formative and summative assessment tools grade a broad variety of objective
problems and assist in evaluation of essays.

\layout Itemize

It provides prompt feedback for students and instructors, as well as statistical
information on performance and on effectiveness of materials.
Discussion pages attached to every homework assignment encourage communication
among students and faculty.
\layout Standard

The LON-CAPA software is freely available and free (GNU General Public License),
and may be modified and adapted.
\layout Standard

LON-CAPA is being developed and implemented by an enthusiastic group of
faculty and professionals who recognize that Information Technology can
play an important role in improving students' learning and understanding.
Current members of the project include faculty from universities, colleges,
and K-12 schools in the US, Canada, Asia, Africa, and Europe.
The core development group is located at Michigan State University.
\layout Subsection

Why LON-CAPA?
\layout Standard

There are tens of learning management systems to choose from.
Why should you choose LON-CAPA over the competition?
\layout Itemize

\series bold
Unparalleled assessment engine
\series default
: The assessment engine in LON-CAPA is the beneficiary of over a decade
of development and refinement.
Few projects are even in the same league of the LON-CAPA project in experience
with sophisticated homework problems.
Sophisticated randomization features go well beyond merely randomizing
the order of multiple choice problems; everything can be randomized, from
the exact parameters in a given numerical problem to
\emph on
which
\emph default
parameters are missing for a given student.
See our Author's Manual for an idea of how powerful the assessment engine
is (http://msu.loncapa.org/adm/help/author.manual.pdf), or try our Demo Course
(http://demo.lon-capa.org/cgi-bin/signon.pl).
\layout Itemize

\series bold
Full course support
\series default
: LON-CAPA is capable of running your entire course from top to bottom.
LON-CAPA can host all of the content of the course, from syllabuses to
actual course materials.
It can track your students grades, with as much power as you need.
Want to give students bonuses for getting a problem right on the first
try? Or insert external grades into the system from an external data source?
Powerful communication features enable discussion between the instructors
and students, or among the students themselves.
has all the power you need to run courses.
\layout Itemize

\series bold
It's free
\series default
: The thousands or millions you save over expensive course management solutions
can be better spent on computers, or directly spent on your students.
LON-CAPA can frequently do more with less then some of the largest commercial
competitors, too.
\layout Itemize

\series bold
It's free
\series default
: As in liberty.
No need to buy an extra-special license just to have the privilege of developin
g extensions to the system.
You aren't restricted to carefully delimited parts of the system the vendor
deems
\begin_inset Quotes eld
\end_inset

safe
\begin_inset Quotes erd
\end_inset

for you to access.
You also have full access to all the data on the system; LON-CAPA never
There aren't any hidden secrets in the system, either, when you're free
to scrutinize all of the source code.
And it won't become closed later either, thanks to the licensing.
\layout Itemize

\series bold
Large Digital Library
\series default
: LON-CAPA's digital library means you have access to thousands of high-quality
learning resources right off the bat, without writing them yourself.
\layout Itemize

\series bold
Power for the Users
\series default
: LON-CAPA's grants a lot of power to the instructors to control their course;
the system imposes minimal arbitrary restrictions on the instructors because
the design is mature.
To get an idea of what the instructors can do, see our Course Management
\layout Itemize

\series bold
Improve Student's Performance
\series default
: Several studies have repeatedly shown that using LON-CAPA can significantly
improve student performance.
One especially interesting result has been its ability to nearly eliminate
the gender gap in technical subjects such as physics, where men have traditiona
lly outperformed women.

\layout Comment

I'd
\series bold
like
\series default
to say here that multiple choice systems have been demonstrated to do the
opposite; can we back that up? Links to actual papers would be great, on
both sides.
\layout Subsection

Features
\layout Standard

TBD
\layout Subsection

Philosophy and Pedagogy
\layout Standard

TBD
\layout Comment

I'd
\series bold
really
\series default
like to have a lot of what I've heard written down.
So much cool stuff has been said but I don't know where I can find it.
\layout Subsection

Conclusion
\layout Standard

We hope by now you're as excited as we are about the system.
LON-CAPA is really powerful and good for both students and instructors,
and you can't beat the bang-for-the-buck.
\layout Standard

Now you know what LON-CAPA is all about, let's start looking at the internals
to see how we do all this great stuff.
\layout Section

LON-CAPA Technical Overview
\layout Standard

In a nutshell, LON-CAPA is all about bringing learning
\series bold
resources
\series default
and
\series bold
people
\series default
together with
\series bold
technology
\series default
.
Thus, the best way to understand the system is to understand how it models
learning resources, how it understand people, and last (and really, least
importantly) what technology supports it.
\layout Subsection

Learning Resources And Assembly
\layout Standard

see Guts_Authoring.tex
\layout Subsection

Network
\layout Standard

sharing
\layout Standard

dynamic replication
\layout Standard

\layout Standard

show replication sequence
\layout Subsection

Courses
\layout Standard

The end result of all of this assembly is an actual course that students
can participate in.
\layout Standard

Courses are themselves sequences that tell the system what the course consists
of.
Course instructors or administrators can manipulate this sequence through
the use of the Course Documents screen; see the Course Documents Screen
chapter in the Course Management Manual (http://msu.loncapa.org/adm/help/course.ma
nual.pdf) for more detailed information about that.

\layout Standard

\series bold
INSERT OVERVIEW/Initialization Of Course from lonuserstate.pm here; make
sure to mention lonnavmaps and the
\begin_inset Quotes eld
\end_inset

compiled course hash
\begin_inset Quotes erd
\end_inset

here.
\layout Subsection

\layout Standard

Parameters cascade and can affect anything in the course.
Extensions should take advantage of parameters if it at all makes sense.
Makes common operations easy.
Very powerful;
\begin_inset Quotes eld
\end_inset

simple problem
\begin_inset Quotes erd
\end_inset

is actually implemented in terms of parameters.

\layout Standard

Most common parameters can usually be accessed through lonnavmaps, which
provides a relatively nice interface to resources and their parameters.
See navmaps.
\layout Subsection

Finding Resources
\layout Standard

search
\layout Standard

browse
\layout Subsection

Permissions
\layout Standard

sharing, restrictions, licenses (should put where this is done)
\layout Subsection

Affect On System (rename)
\layout Standard

Supporting highly dynamic, geographically distributed, configurable resources
drives much of the system.
Understanding this
\layout Standard

Practical effects on how you need to think about the system:
\layout Itemize

Don't assume resources are on the hard drive.
You need to ask the system to first replicate the resources as necessary.

\layout Itemize

Make sure you use the rich environment, don't try to fight it, or reinvent
the wheel.
See the discussion on the Environment in the Technology section.
\the_end


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>