weekdaze-0.0.0.3: A school-timetable problem-solver.

Safe HaskellNone
LanguageHaskell2010

WeekDaze.StudentView.TimetableForWeek

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
  • Defines the data-structure, to required to hold the specification of the activities of a single week, for any single student-body.
  • It forms a complete timetable, when combined with similar structures for all other student-bodies.
Synopsis

Types

Type-synonyms

type Booking timeslotId locationId teacherId level = Booking timeslotId (LessonResourceIds locationId teacherId) level Source #

A booking seen from one point-of-view.

type TimetableForWeek timeslotId locationId teacherId level = TimetableForWeek timeslotId (LessonResourceIds locationId teacherId) level Source #

A timetable for one Body with identical scheduling requirements, for any week.

Functions

extractRoutineBySubject Source #

Arguments

:: (Ix timeslotId, Ord level, Ord locationId, Ord teacherId) 
=> TimetableForWeek timeslotId locationId teacherId level

The current timetable.

-> Map (Subject level) (Set (LessonResourceIds locationId teacherId)) 
  • Once a teacher has been assigned to teach a student-body, in a subject, at a location, a routine has been established; the student-body wouldn't normally be taught that subject, by any other teacher, or in any other location. If the routine is adhered to, then each subject maps to a singleton set of resource-Ids.
  • CAVEAT: this concept doesn't apply to other views of the timetable: teacher-view; the same teacher can teach other student-bodies, in that subject, & at that location. location-view; the same location can host other student-bodies, for tuition of that subject, & by that teacher.