; COURSE DESCRIPTION FILE
; The file must be loaded just after the style course-plan.

; Adjust as lecture pages get ready
(define last-lecture-number 3)

; The language of fixed texts
(define language-preference 'english)

; Which color scheme to use
(apply-course-plan-color-scheme course-plan-color-scheme-4)

; The full title of the course
(define course-title "Functional Programming in Scheme")

; The name of the teacher
(define teacher-name "Kurt Nørmark")

; The directory in which the course plan resides
(define course-dir (string-append laml-dir "slides/iticse/examples/course-plan/"))

; The directory in which the indiviaul lecture descriptions are located
(define course-plan-source-directory (string-append course-dir "lectures/"))

; The absolute URL prefix of the course
(define course-url-prefix "http://www.cs.auc.dk/~normark/")

; Bottom page standard links
(define (standard-links)
 (letrec ((between-links (lambda () (con (space 5) "|" (space 5)))))
  (font-size 2
   (center
    (con (a-tag "http://www.cs.auc.dk/~normark/laml/" "The LAML home page") (br)
         (a-tag "http://www.cs.indiana.edu/scheme-repository/home.html" "The Scheme Repository") (br)
         (a-tag "http://www.cs.auc.dk/~normark/" "Kurt Nørmark"))))))

; Left frame page standard links
(define (general-overview-links)
  '())

; The brief title of the course
(define brief-course-title "SFP")

; The semester of the course
(define course-semester "Spring 2000")

; The brief semester of the course
(define brief-course-semester "Spring 00")

; The default room
(define normal-course-room "R123")


; --------------------------------------------------------
; TIMING ISSUES:

(define course-start (time-encode 2000 5 30 8 15 0))

; A list of lecture starting times. 
(define time-list 
  (list 
   course-start
   (time-encode 2000 6 6 8 15 0)
   (time-encode 2000 6 13 8 15 0)
   (time-encode 2000 6 20 8 15 0)
   (time-encode 2000 6 27 8 15 0)))


; --------------------------------------------------------
; CENTRAL COURSE DESCRIPTION:

(define lecture-description-list
     (let* (
       (ex-lgt (* 60 105))     ; exercise lengh
       (pause-lgt (* 60 15))   ; pause between exercises and plenum
       (for-lgt (* 60 105))    ; plenum length (talk).
       (ex-inf (list 0 ex-lgt))
       (pl-inf (list (+ ex-lgt pause-lgt) for-lgt)))

  (list
;         LECTURE-ID       SUBJECT-ID      EXERCISE-INFO   PLENUM-INFO  ROOM
    (list 'fp-intr         'fp-intr        ex-inf          pl-inf       normal-course-room)
    (list 'functions       'functions      ex-inf          pl-inf       "S234")
    (list 'lists           'lists          ex-inf          pl-inf       normal-course-room)
    (list 'higher-order    'higher-order   ex-inf          pl-inf       normal-course-room)
    (list 'eval            'eval           ex-inf          pl-inf       normal-course-room)
  )))

; -----------------------------------------------------------------------------------------
; Actual exercises take place in this lecture's lecture-slot
(define (actual-exercise-interval this-lecture-rec next-lecture-rec)
  (lecture-exercise-interval this-lecture-rec))


; -----------------------------------------------------------------------------------------
; SUBJECT ISSUES:

(define subject-list
 (list

   (list 'fp-intr  "Introduction to functional programming"
         "In this lecture we introduce functional programming,
          especially as a contrast to plain imperative programming")

   (list 'functions  "The function concept"
         "The concept of functions is central.
          Here we take a close look at this")

   (list 'lists  "The list concept"
         "Lists are classical data structures in functional programming.
          Here we introduce the original Lisp list concept ")

   (list 'higher-order  "Higher order functions"
         "Higher order functions accept functions are parameters,
          and they allow us to return a function as the result")

   (list 'eval  "Evaluation order"
         "Evaluation order is one of the more advanced aspects
          in this course")

   ))


; -----------------------------------------------------------------------------------------

(define (leno-lecture lecture-id)
  (string-append "../../leno/html/" (as-string lecture-id) "." "html"))