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

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

Beautify diagrams.

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