<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

	
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">

	
  <title>OpenOffice.org University Project-Course Workflow</title>
</head>

<body>


<h4> Proposal for Education Project Effort by Students on OpenOffice.org </h4>


<p> There are several spaces where OpenOffice.org can offer itself as a
place for student intervention. The choice we made, is to create a <b>synergy</b> between teachers, 
students, and OpenOffice.org developers. 
For instance, a professor could
structure a class on office suite construction around OpenOffice.org,
or a class on application architecture; or on architecture revision.
Because OpenOffice.org is open source, there are few limits. </p>


<p> This brief draft focuses on current development and suggests some
processes by which students might profitably engage in the project
while also satisfying the demands of their schools. Because it is a
draft and not complete, I welcome emendations and additions.</p>
<ul>
  <li>On the teacher side</li>
</ul>

<ul>
  <ul>
    <li>Key point is to work together in-class on projects with engineers (reserved to engineers schools or high schools students) or more simple tasks</li>
    <li>The professor can review and coach the student</li>
    <li>Pedagogical interest:  work on Open Source Projects helps professors to improve the quality of the courses</li>
    <li>The professor works with engineers, on real problems, always motivating for students </li>
  </ul>
</ul>
<ul>
  <li>On the student side</li>
</ul>
<ul>
  <ul>
    <li>Opportunities like the <a href="http://wiki.ooo4kids.org"> OOo4Kids Project</a> could represent a first approach to the project without being involved directly on ther real OpenOffice.org core coding</li>
    <li>Discover OpenOffice.org Project and source code through practice and documentation</li>
    <li>Follow and participate to Online Courses "ClassRooms"</li>
    <li>Where can students find those ClassRooms ? URL: <a href="http://wiki.services.openoffice.org/wiki/Education_ClassRoom" target="_blank">Education Project ClassRoom</a></li>
    <li>Student will learn how to work with others in an open source,
collaborative environment, with the relevant tools, and prepare his own carreer</li>
    <li>If a student doesn't finish the task before he leaves the
semester, or the deadline for a specific task, then the task can be completed by others in the OSS
community, by subsequent students, etc.</li>
  </ul>
</ul>

<ul>
  <li>On the school side</li>
</ul>

<ul>
  <ul>
    <li>Visibility : everything is public;</li>
    <li>Credibility : be able to work with big Open Source Projects is a guarantee of quality;</li>
    <li>Prepare better the students to their future jobs;</li>
    <li>All schools are seen as <b>partners</b>, who can obviously become a <b>sponsor</b> too;</li>
    <li>Schools how already joined the <a href="http://education.openoffice.org">OpenOffice.org Education Project</a> :</li>
    <ul>
      <li><a href="http://www.epitech.eu/"> <b>Epitech / Epita Paris (France)</b></a></li>
      <li><a href="http://www.ec-nantes.fr/"> <b>Ecole Centrale Nantes (France)</b></a></li>
      <li><a href="http://www.utbm.fr/"> <b>University of Technology of Belfort-Montb&eacute;liard (France)</b></a></li>
      <li><a href="http://www.senecac.on.ca/"> <b>Seneca College of Toronto (Canada)</b></a></li>
    </ul>
  </ul>
</ul>

<ul>
  <li>How is grading, checkup established ?</li>
</ul>

<ul>
  <ul>
    <li>Ambition: task completed, goals reached, and the student well integrated in the Team;<br>

The grading process will be defined with every school/teacher at the beginning of the Project. Every school will have the last word for grading.</li>
    <li>Process: For an advanced course, where the focus is
on learning some
elements of C++ operations, the professor scans the to-dos list for
plausible candidates; or we suggest them (probably the latter). We rate
them, as difficult (needing several months, advanced); medium (a couple
of months); easy. Students can take them on, explain what problem of
programming these address, how this fits in with their overall
coursework, and issue progress reports. These reports can complement
the IssueZilla updates expected.</li>
    <li>Grading finally: on what has been learned; perhaps then a report, a
paper at the end. Such work could also encompass documentation of work.</li>
    <li>In the end, OpenOffice.org work should then complement key lessons.
That is, if a student is learning C++, or architecture, the patch work
can be seen as a way of implementing the lessons.</li>
  </ul>
</ul>
<ul>
  <li>Q/A</li>
  <ul>
    <li>Grading thus can be for the work done, its sophistication, etc., as
well as for collaboration? No, unless student is directly interfacing
with the community.</li>
    <li>What if the student thinks she does good work, the professor agrees but
the OpenOffice.org developers disagree? That is they reject the patch.
The professor should not let that affect grading. Acceptance is a plus,
but purely extrinsic. Reason: otherwise, the OpenOffice.org developers
would be in the odd position of grading student work.</li>
    <li>Where can students find a list of to-dos? URL: <a href="http://wiki.services.openoffice.org/w/index.php?title=Education_Project/Effort" target="_blank">Education Project Effort</a></li>
  </ul>
</ul>
<p></p>
</body>
</html>
