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

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

Add doclinks.

Add warning to Certificates section.

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