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

Last change on this file since 16170 was 14638, checked in by Henrik Bettermann, 8 years ago

Add course_category attribute to certificate courses. Plugins must be updated!

File size: 7.6 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` a `title_prefix` and two officer name attributes:
51`officer_1` and `officer_2`. Officer names are not made use of in
52the base package. They can be used in custom packages to 'sign' pdf
53slips and reports. Usually, `officer_1` is reserved for the Dean of
54Faculty. Furthermore, faculties and departments have a `longtitle`
55property which :py:func:`composes
56<waeup.kofa.university.faculty.longtitle>` and returns the full
57title as it appears in tables, in breadcrumbs and in many other
58places:
59
60  `longtitle` = `title_prefix` + `title` (`code`)
61
62The following :ref:`local roles <local_roles>` can be assigned at
63faculty tree level:
64
65  .. autoattribute:: waeup.kofa.university.faculty.Faculty.local_roles
66     :noindex:
67
68
69Department
70==========
71
72Additionally, each department object has the attributes
73`certificates` and `courses`. These attributes again are containers
74which hold certificate and course objects respectively. A
75:py:meth:`traverse
76<waeup.kofa.university.department.Department.traverse>` method leads
77the user to believe that `certificates` and `courses` are the ids of
78objects stored inside a department container. De facto they are not.
79However, it doesn't matter if we store a subobject 'in' or 'at' a
80parent object. The result is exactly the same: :ref:`a hierarchical,
81treelike storage of objects <object_database>` (see also diagram
82above).
83
84Department objects have four officer name attributes. Needless to say,
85`officer_1` should contain the name of the Head of Department. The
86title of the name fields can be localized in custom packages.
87
88The following :ref:`local roles <local_roles>` can be assigned at
89department tree level:
90
91  .. autoattribute:: waeup.kofa.university.department.Department.local_roles
92     :noindex:
93
94Course
95======
96
97The `Course` class inherits from `grok.Model` which means it is
98designed as a pure model and not a container. Courses are tips of
99the database tree branches. Course objects contain information as
100they are offered by the department. In the base package these are:
101`code`, `title`, `credits`, `passmark`, `semester` and the boolean
102attribute `former_course`. Like all objects in the academic section,
103they also have a `longtitle` property. A former course is an
104archived course which had been offered in the past and is no longer
105part of any curriculum.
106
107.. note::
108
109  Only the manager of the department, which offers the course,
110  decides how many credits can be earned, which pass mark must be
111  achieved and in which semester the course can be taken. The
112  manager cannot decide whether a course is mandatory or not, or
113  at which study level the course has to be taken when studying a
114  certain programme. This information is stored in
115  `CertificateCourse` objects, see below. Therefore it does not
116  make sense to speak e.g. of a 300 level course. Also course
117  codes like ``AEE311``, which tell the student that the course
118  is primarily intended for 300 level students, is somehow
119  misleading. There might be other study programmes which
120  recommend to take this course earlier or later.
121
122
123The following :ref:`local roles <local_roles>` can be assigned at
124course tree level:
125
126  .. autoattribute:: waeup.kofa.university.course.Course.local_roles
127   :noindex:
128
129.. _certificate:
130
131Certificate
132===========
133
134.. seealso::
135
136   :ref:`Certificates and Certificate Courses Doctests <certcourse_txt>`
137
138In Kofa, the terms 'certificate' and 'study programme' are used
139synonymously. A certificate object holds information about the study
140programme. Important data for further processing in Kofa are: the
141various school fees to be paid at certain levels, programme start
142and end level, the study mode and, last but not least, the
143application category to which the programme belongs.
144
145Certificates are containers which contain `CertificateCourse`
146objects. That means a certificate defines the curriculum, i.e. the
147list of course units which have to or can be taken within the
148programme.
149
150The following :ref:`local roles <local_roles>` can be assigned at
151certificate tree level:
152
153  .. autoattribute:: waeup.kofa.university.certificate.Certificate.local_roles
154   :noindex:
155
156.. warning::
157
158  Do not remove certificates without backing up the student data
159  of this department. If a certificate or even one of its parent
160  containers is removed, students studying this programme are
161  'homeless' and need to be re-allocated to another study
162  programme.
163
164
165Certificate Course
166==================
167
168`CertificateCourse` objects point to `Course` objects which means
169they have a `course` attribute which is one of the course objects
170stored in the portal. If the course is removed, an event handler
171takes care of deleting also all referring certificate courses. The
172same happens if a course is beeing marked as former course (see
173above). A former course cannot be part of a curriculum.
174
175Certificate courses have three more attributes: `level` (integer),
176`mandatory` (boolean) and `course_category` (choice). Simply put,
177certificate courses carry the information at which level a certain
178course can or has to be taken to meet the current curriculum. Course
179categories are not available in the base package but can easily be
180defined in custom packages. Some universities distinguish e.g. core,
181required and elective courses and need this information in reports.
182
183No local role can be assigned at certificate course tree level.
184
185Browser Pages
186=============
187
188In the user handbook we do not describe how to browse the academic
189section. The menu navigation is self-explanatory and it's
190quite easy to follow the menu prompts. However, in the beginning of
191the development of Kofa, we used extensive doc tests which describe
192the navigation very well. Thus navigating through the academic
193section and other parts of Kofa with a test browser is perfectly
194described in :ref:`pages.txt <pages_txt>`.
Note: See TracBrowser for help on using the repository browser.