source: main/waeup.kofa/trunk/docs/source/userdocs/academics.rst @ 13124

Last change on this file since 13124 was 13084, checked in by Henrik Bettermann, 10 years ago

Add browsing chapter and restructure documentation.

File size: 7.0 KB
Line 
1.. _academic_section:
2
3Academic Section
4****************
5
6Academic bodies of universities are hierarchically structured. A
7university contains faculties which again host departments. The
8latter offer courses (course units) and study programmes (courses of
9study). A course is a series of classes or lessons on a particular
10subject. This can be a lecture, tutorial, seminar, practical work
11offered by a lecturer of the department over a period of an academic
12term. A course can also be only an exam at the end of an academic
13term. A study programme is defined by a set of course units to be
14taken at various programme levels and by an academic degree
15certificate, which is issued at the end of the programme.
16Information about universities, their study programmes, lecturers
17and courses can be found in the university prospectus.
18
19Kofa's academic section takes on the task of the university
20prospectus. It is build to disseminate information about faculties,
21departments, courses, study programmes and the sets of courses to be
22taken. The academic section reflects exactly the universities'
23hierarchical structure as described above. Technically speaking, the
24academic section is a container of type `FacultiesContainer` with id
25``academics`` which contains faculty subcontainers. They again
26contain department subobjects and so on. This leads to a
27:ref:`treelike storage of objects <object_database>`::
28
29  Academic Section (FacultiesContainer)
30  |
31  +---> Faculty
32        |
33        +---> Department
34              |
35              +---> CoursesContainer
36              |     |
37              |     +---------------------> Course
38              |                             ^
39              +---> CertificatesContainer   |
40                    |                       |
41                    +-----> Certificate     |
42                            |               |
43                            +-----> CertificateCourse
44
45
46Faculty
47=======
48
49Faculties are container objects of type `Faculty`. They have a
50`code`, a `title` and a `title_prefix` attribute. Furthermore,
51faculties and departments have a `longtitle` property which
52:py:func:`composes <waeup.kofa.university.faculty.longtitle>` and
53returns the full title as it appears in tables, in breadcrumbs and
54in many other places:
55
56  `longtitle` = `title_prefix` + `title` (`code`)
57
58The following :ref:`local roles <local_roles>` can be assigned at
59faculty tree level:
60
61  .. autoattribute:: waeup.kofa.university.faculty.Faculty.local_roles
62     :noindex:
63
64
65Department
66==========
67
68Additionally, each department object has the attributes
69`certificates` and `courses`. These attributes again are containers
70which hold certificate and course objects respectively.
71A :py:meth:`traverse
72<waeup.kofa.university.department.Department.traverse>` method leads
73the user to believe that `certificates` and `courses` are the ids of
74objects stored inside a department container. De facto they are not.
75However, it doesn't matter if we store a subobject 'in' or 'at' a
76parent object. The result is exactly the same: :ref:`a hierarchical,
77treelike storage of objects <object_database>` (see also diagram above).
78
79The following :ref:`local roles <local_roles>` can be assigned at
80department tree level:
81
82  .. autoattribute:: waeup.kofa.university.department.Department.local_roles
83     :noindex:
84
85Course
86======
87
88The `Course` class inherits from `grok.Model` which means it is
89designed as a pure model and not a container. Courses are tips of
90the database tree branches. Course objects contain information as
91they are offered by the department. In the base package these are:
92`code`, `title`, `credits`, `passmark`, `semester` and the boolean
93attribute `former_course`. Like all objects in the academic section,
94they also have a `longtitle` property. A former course is an
95archived course which had been offered in the past and is no longer
96part of any curriculum.
97
98.. note::
99
100  Only the manager of the department, which offers the course,
101  decides how many credits can be earned, which pass mark must be
102  achieved and in which semester the course can be taken. The
103  manager cannot decide whether a course is mandatory or not, or
104  at which study level the course has to be taken when studying a
105  certain programme. This information is stored in
106  `CertificateCourse` objects, see below. Therefore it does not
107  make sense to speak e.g. of a 300 level course. Also course
108  codes like ``AEE311``, which tell the student that the course
109  is primarily intended for 300 level students, is somehow
110  misleading. There might be other study programmes which
111  recommend to take this course earlier or later.
112
113
114The following :ref:`local roles <local_roles>` can be assigned at
115course tree level:
116
117  .. autoattribute:: waeup.kofa.university.course.Course.local_roles
118   :noindex:
119
120.. _certificate:
121
122Certificate
123===========
124
125.. seealso::
126
127   :ref:`Certificates and Certificate Courses Doctests <certcourse_txt>`
128
129In Kofa, the terms 'certificate' and 'study programme' are used
130synonymously. A certificate object holds information about the study
131programme. Important data for further processing in Kofa are: the
132various school fees to be paid at certain levels, programme start
133and end level, the study mode and, last but not least, the
134application category to which the programme belongs.
135
136Certificates are containers which contain `CertificateCourse`
137objects. That means a certificate defines the curriculum, i.e. the
138list of course units which have to or can be taken within the
139programme.
140
141The following :ref:`local roles <local_roles>` can be assigned at
142certificate tree level:
143
144  .. autoattribute:: waeup.kofa.university.certificate.Certificate.local_roles
145   :noindex:
146
147.. warning::
148
149  Do not remove certificates without backing up the student data
150  of this department. If a certificate or even one of its parent
151  containers is removed, students studying this programme are
152  'homeless' and need to be re-allocated to another study
153  programme.
154
155
156Certificate Course
157==================
158
159`CertificateCourse` objects point to `Course` objects which means
160they have a `course` attribute which is one of the course objects
161stored in the portal. If the course is removed, an event handler
162takes care of deleting also all referring certificate courses. The
163same happens if a course is beeing marked as former course (see
164above). A former course cannot be part of a curriculum.
165
166Certificate courses have to more attributes: `level` (integer) and
167`mandatory` (boolean). Simply put, certificate courses carry the
168information at which level a certain course can or has to be taken
169to meet the current curriculum.
170
171No local role can be assigned at certificate course tree level.
172
173Browser Pages
174=============
175
176In the user handbook we do not describe how to browse the academic
177section. The menu navigation is self-explanatory and it's
178quite easy to follow the menu prompts. However, in the beginning of
179the development of Kofa, we used extensive doc tests which describe
180the navigation very well. Thus navigating through the academic
181section and other parts of Kofa with a test browser is perfectly
182described in :ref:`pages.txt <pages_txt>`.
Note: See TracBrowser for help on using the repository browser.