Latest change Jan. 11, 2016

To prevent spambots from collecting mail addresses, all mail addresses on this page have the "@" replaced by "#".

Detailed Schedule, Spring 2015 (Period 4)

Lectures (F), Laborations (L), and Exams

There are links to the lecture slides. All slides are in PDF format, full size slides for viewing on screen and 4-up slides (four per page) for printing.

There are also pointers into the course book (Michael R. Hansen, Hans Rischel: Functional Programming Using F#) telling, for each lecture, where to find the corresponding topics in the book.

See here how to find the lecture halls.

Week 16

F1. Monday 2015-04-13, 13:15-15:00, R2-606: Introduction, history, motivation, practicalities around the course (1h) + start expressions, simple definitions, simple data types etc (1h).
Slides (intro): full size, and 4-up
Slides (practicalities F#): full size, and 4-up
Book (intro): 1.2 functions, 1.4 recursion, factorial in F#, nontermination, 2.1 basic language elements, simple types, 2.2 operators, 2.3 characters, 2.4 if-then-else, 1.6 types and declarations, 2.5 explicit type declarations, 3.8 pattern matching, 3.5 failwith, 9.4 accumulating arguments, 3.6 local definitions, 1.2 function types (one argument), 2.7 (several arguments), 1.5 types for data structures (pairs), 3.1 tuples, 4.1 lists
Book (practicalities): 1.1, 1.2 basics of eval loop and declarations in fsi, 7.2 open

F2. Wednesday 2015-04-15, 13:15-15:00, R2-606: Definitions, simple data types etc., continued.

F3. Thursday 2015-04-16, 10:15-12:00, Naxos: Definitions, simple data types etc., continued.

Week 17

F4. Monday 2015-04-20, 10:15-12:00, R2-606: Some on F# syntax. Modules, simple data type definitions.
Slides (syntax): full size, and 4-up
Slides (modules and data types): full size, and 4-up
Book (syntax): 3.6 indentation, 1.1 identifier (does not seem to cover rules for how to form them), 2.7 operators as functions, 2.9 declaring own operators, 1.3 anonymous arguments (wildcard patterns), 1.2 comments
Book (Modules etc): 7 modules, 3.9 data type declarations (enumerated types), 3.4 (record types)

L1. Tuesday 2015-04-21, 13:15-17:00, U2-003, U2-006

F5. Wednesday 2015-04-22, 13:15-15:00, R2-606: Strings, and a string processing example.
Slides: full size, and 4-up
Book: 2.3 strings

F6. Thursday 2015-04-23, 10:15-12:00, R2-606: Polymorphism, recursive data types, and trees.
Slides: full size, and 4-up
Book: 3.2 polymorphic types, 4.5 value restriction, 6.1 recursive data types, 6.3 polymorphic declared types, 6 Trees

Week 18

F7. Monday 2015-04-27, 10:15-12:00, R2-606: Sequencing, and I/O.
Slides: full size, and 4-up
Book: 8.4 sequencing, 8.2 side effect, 10.7 printf, 10.3 File I/O, 2.11 forward pipe

L2. Tuesday 2015-04-28, 13:15-17:00, U2-003, U2-006

F8. Wednesday 2015-04-29, 13:15-15:00, R2-606: List functions, and higher order functions.
Slides: full size, and 4-up
Book: 5.1 lists, 4.4 List.append, 2.10 guarded patterns

F9. Thursday 2015-04-30, 10:15-12:00, R2-606: More about Higher Order Functions.
Slides: full size, and 4-up
Book: 2.7 currying (partly), 4.4 & 9.4 reverse, 1.3 nameless functions

Week 19

F10. Monday 2015-05-04, 10:15-12:00, R2-606: Option values, arrays, sequences, and lazy evaluation.
Slides: full size, and 4-up
Book: 3.11 Option data type, 5.1 List.tryFind, 8.10 arrays, 11 sequences (in general), 11.8 range expressions, 11.6 sequence expressions

L3. Tuesday 2015-05-05, 13:15-17:00, U2-003, U2-006

F11. Wednesday 2015-05-06, 13:15-15:00, R2-606: Imperative programming in F#.
Slides: full size, and 4-up
Book: Ch. 8 imperative features

F12. Thursday 2015-05-07, 10:15-12:00, R2-606: Object-oriented programming in F#.
Slides: full size, and 4-up
Book: 7.5 objects (very rudimentary, and sort of tied to modules)

Week 20

F13. Monday 2015-05-11, 10:15-12:00, R2-606: Reactive functional programming in F#, WinForms, and .NET.
Slides: full size
Book: 12 Computation Expressions (just p. 279), 13.2 Processes, threads, and tasks, 13.4 Asynchronous computations (except "Exception and cancellation"), 13.5 Reactive programs.

L4. Tuesday 2015-05-12, 13:15-17:00, U2-003, U2-006

F14. Wednesday 2015-05-13, 13:15-15:00, R2-606: Functional programming for parallel and distributed systems: parallelization of functional programs, and Google's MapReduce.
Slides: full size, and 4-up
Material for MapReduce.
Book: 13.6 Parallel computations.

Week 21

F15. Monday 2015-05-18, 10:15-12:00, Kappa: Type inference, higher order algebra, and lambda calculus.
Slides: full size, and 4-up
Book: 2.6 (type inference, very rudimentary)

Extra laboration 1. Tuesday 2015-05-19, 13:15-17:00, place U2-003

F16. Thursday 2015-05-21, 10:15-12:00, R2-606: lambda calculus, selected exercises.

Week 22

Extra laboration 2. Tuesday 2015-05-26, 13:15-17:00, place U2-003

Week 23

Extra laboration 3. Tuesday 2015-06-02, 13:15-17:00, place U2-003

First exam. Friday 2015-06-05, 14:10-18:30, Västerås

Week 34

Next exam. Thursday 2015-08-20, 8:10-12:30, Västerås

Week 1/2015

Next next exam. Thursday 2015-01-07, 8:10-12:30, Västerås.

Björn Lisper