Git Product home page Git Product logo

afpcourse's Introduction

Advanced Functional Programming

Some material connected to the Chalmers and Univ. of Gothenburg course.

Main course homepage:

This github repository aims at collecting all the relevant open source code associated with the AFP course. It is currently (Jan-Mar 2015) under construction with material being migrated from the main course home page step by step.

Grading

The final grade of the course is a based on a weighted average of the lab grade and the exam grade (provided that both are at least "Pass"). The weights are the number of credits: 4.5cr (60%) for the labs and 3cr (40%) for the exam. Among the labs, number 2 has a higher weight.

In March 2015 the final result is

  • 68 did the lab (50 passed, 18 failed)
  • 57 did the exam (27 passed, 30 failed) and 26 passed both the exam and the labs.

In August there will be a written re-exam and also a "re-lab" opportunity.

Lecture plan:

  • L1: Course intro, Haskell recap, first DSL example
  • L2: EDSLs and the Shapes example
  • L3: Monads: how to build your own monad from scratch
  • L4: Monads and Parsing: a case-study in program transformation
  • L5: Parsing and Monad Transformers, part 1: how to build your monad from transformers.
  • L6: Monad Transformers, part 2: more transformers and the extensible interpreter
  • L7: Exercise session based on exams from earlier years
  • L8: Specification, verification and testing (QuickCheck)
  • L9: EDSL guest lecture by Emil Axelsson
  • L10: More QuickCheck: Generating, shrinking, etc.
  • L11: Type based modelling in Haskell, part 1: GADTs
  • L12: Agda tutorial
  • L13: Type based modelling in Haskell, part 2: Type families
  • L14: Program derivation: Maximum segment sum (guest lecture by Cezar Ionescu)
  • L15: Exercise session based on exams from earlier years
  • L16: A choice of topics: in 2015 we did RWmonad + Newtype deriving + Cont monad.

Schedule

TimeEdit schedule:

Week Monday 13-15 Room Thursday 10-12 Room
1 2015-01-19 EL43 2015-01-22 EL43
2 2015-01-26 EF 2015-01-29 VK
3 2015-02-02 EF 2015-02-05 ED
4 2015-02-09 VK 2015-02-12 EE
5 2015-02-16 EF 2015-02-19 EA
6 2015-02-23 EF 2015-02-26 EA
7 2015-03-02 EF 2015-03-05 HA2
8 2015-03-09 EL41+42 2015-03-12 HA2

Evaluation times:

  • Mid-course evaluation meeting: Fr 2015-02-20 15:15 - 16:00 in EDIT-5128
  • Final evaluation meeting: Tu 2015-04-28 11:00-12:00 in "Fysikhuset, bottenplan"
  • More course evaluation details

afpcourse's People

Contributors

patrikja avatar holmberm avatar valderman avatar izimbra avatar josefs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.