My dayjob is programming an academic management system. The goal our little company has with it is to make it possible and easy for a school to provide and fully track free-form, self-paced academic learning. We aren't there yet - much of the road is unmapped but we can see over the next hill, so to speak. :-)
Along the way, we've discovered some things about structured learning. The style of "give the kid a mark at the end of the year" is tempting, but oh so inaccurate. We have (access to) studies that show that there are half a dozen different ways to learn and evaluate learning and schools use just one or two of them. This is why you get kids that seem to do poorly in school but actually understand the work: put very simply, formal exams just don't work for them.
Current state-of-the-art involves tracking Outcomes and Indicators within a syllabus. At the end of the Strand, you can draw a graph of a student's progress and get a much more accurate picture of what they have learned than a mere mark. You can also get a graph of how well the teacher is teaching. This is called "Criteron Reference". Unfortunately, this is an insane amount of extra paperwork for a teacher - unless you can computerise it somehow. That's where we are now.
Interestingly, all our clients are private (i.e. non-government) schools. Why is this? Well, the teachers union is against changing the academic system in anyway that means longer hours for their members. So the government schools use marks - "Normative Reference" it's called - because they know how to do those and they've been doing them for years. I hear our State Department of Education wants to change that, but they haven't found a way to computerise Criteron Reference. Yet. They've told us we're by far the closest to their vision, but things move slowly in government.
Wade.