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

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

Include links to doctests.

File size: 6.5 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 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 sub-containers. They again
26contain department sub-objects, nothing else. This leads to a
27:ref:`treelike storage of objects <object_database>`.
28
29.. note::
30
31  In the user handbook we do not describe how to browse the user
32  interface of Kofa. The menu navigation should be
33  self-explanatory and it's quite easy to follow the menu
34  prompts. However, in the beginning of the development of Kofa,
35  we used extensive doc tests which describe the navigation very
36  well. Thus navigating through the academic section and other
37  parts of Kofa with a test browser is perfectly described in
38  :ref:`browser.txt <browser_txt>`.
39
40.. seealso::
41
42   :ref:`Browsing Kofa Doctests <browser_txt>`
43
44Faculties
45=========
46
47Faculties are container objects of type `Faculty`. They have a
48`code`, a `title` and a `title_prefix` attribute. Furthermore,
49faculties and departments have a `longtitle` property which
50:py:func:`composes <waeup.kofa.university.faculty.longtitle>` and
51returns the full title as it appears in tables, in breadcrumbs and
52in many other places:
53
54  `longtitle` = `title_prefix` + `title` (`code`)
55
56The following :ref:`local roles <local_roles>` can be assigned at
57faculty tree level:
58
59  .. autoattribute:: waeup.kofa.university.faculty.Faculty.local_roles
60
61
62Departments
63===========
64
65Additionally, each department object has the attributes
66`certificates` and `courses`. These attributes again are containers
67which hold certificate and course objects respectively. A
68:py:meth:`traverse
69<waeup.kofa.university.department.Department.traverse>` method leads
70the user to believe that `certificates` and `courses` are the ids of
71objects stored inside a department container. De facto they are not.
72However, it doesn't matter if we store a sub-object 'in' or 'at' a
73parent object. The result is exactly the same: :ref:`a hierarchical,
74treelike storage of objects <object_database>`.
75
76The following :ref:`local roles <local_roles>` can be assigned at
77department tree level:
78
79  .. autoattribute:: waeup.kofa.university.department.Department.local_roles
80
81
82Courses
83=======
84
85The `Course` class inherits from `grok.Model` which means it is
86designed as a pure model and not a container. Courses are tips of
87the database tree branches. Course objects contain information as
88they are offered by the department. In the base package these are:
89`code`, `title`, `credits`, `passmark`, `semester` and the boolean
90attribute `former_course`. Like all objects in the academic section,
91they also have a `longtitle` property. A former course is an
92archived course which had been offered in the past and is no longer
93part of any curriculum.
94
95.. note::
96
97  Only the manager of the department, which offers the course,
98  decides how many credits can be earned, which pass mark must be
99  achieved and in which semester the course can be taken. The
100  manager cannot decide whether a course is mandatory or not, or
101  at which study level the course has to be taken when studying a
102  certain programme. This information is stored in
103  `CertificateCourse` objects, see below. Therefore it does not
104  make sense to speak e.g. of a 300 level course. Also course
105  codes like ``AEE311``, which tell the student that the course
106  is primarily intended for 300 level students, is somehow
107  misleading. There might be other study programmes which
108  recommend to take this course earlier or later.
109
110
111The following :ref:`local roles <local_roles>` can be assigned at
112course tree level:
113
114  .. autoattribute:: waeup.kofa.university.course.Course.local_roles
115   :noindex:
116
117
118Certificates
119============
120
121.. seealso::
122
123   :ref:`Certificates and Certificate Courses Doctests <certificate_txt>`
124
125In Kofa, the terms 'certificate' and 'study programme' are used
126synonymously. A certificate object holds information about the study
127programme. Important data for further processing in Kofa are: the
128various school fees to be paid at certain levels, programme start
129and end level, the study mode and, last but not least, the
130application category to which the programme belongs.
131
132Certificates are containers which contain `CertificateCourse`
133objects. thatt means a certificate defines the curriculum, i.e. the
134list of course units which have to or can be taken within the
135programme.
136
137The following :ref:`local roles <local_roles>` can be assigned at
138certificate tree level:
139
140  .. autoattribute:: waeup.kofa.university.certificate.Certificate.local_roles
141   :noindex:
142
143.. warning::
144
145  Do not remove certificates without backing up the student data
146  of this department. If a certificate or even one of its parent
147  containers is removed, students studying this programme are
148  'homeless' and need to be re-allocated to another study
149  programme.
150
151
152Certificate Courses
153===================
154
155`CertificateCourse` objects point to `Course` objects which means
156they have a `course` attribute which is one of the course objects
157stored in the portal. If the course is removed, an event handler
158takes care of deleting also all referring certificate courses. The
159same happens if a course is beeing marked as former course (see
160above). A former course cannot be part of a curriculum.
161
162Certificate courses have to more attributes: `level` (integer) and
163`mandatory` (boolean). Simply put, certificate courses carry the
164information at which level a certain course can or has to be taken
165to meet the current curriculum.
166
167No local role can be assigned at certificate course tree level.
Note: See TracBrowser for help on using the repository browser.