---
# System prepended metadata

title: Functionel Programming - information about the course
tags: [F#]

---

# Functionel Programming - information about the course
###### tags: `F#`

**Commands there is good to know i Visiul Studio:**
> ALT + ENTER 
> Makes everthing go to the interactive 

**Functional Programming Paragigm**
- First class functions
- Higher-order functions
- Type inference and polymorphism
- Recursion and tail recursion
- Algebraic data types
- Strict and lazy evaluation

**Memory management**
- Garbage collection
- Reference types
- Mutable vs immutable data
    - Parallel programming
- Divide and conquer

## General about the course
- 7 assignments of 2 points in groups (2-3 persons)
    - Submit on time!
    - Graded one week later (0-2 points)
- 1 project (Scrabble) of 6 points
- **Must have 16 for the exam**

## Plagiarism
- You do not share code or copy code from others groups 

## Project
- Write a bot that plays Scrabble
    - Infinite boards
    - Boards with holes in them
    - Tiles contain sets of characters, not just single characters
    - Arbitrary languages
    - Powerful board elements
- To pass you must not necessarily win, not even play particularly well, but you must find valid moves (not just passing) and be able to finish the game
- No project report! Just hand in the source game
- We will provide a back-end and multiplayer infrastructure
- You focus only on playing the game
- We will provide weekly assigments that you can use in your project

### Project after handin
- Tournament
    - Tournament ladder
    - Battle Royal?
    - Drinks, relaxing and good company
    - Prizes?!

## Exam
- 5 hours open-book exam
    - Online
    - Use book
    - Use internet
- You will need to hand in functional software that follows a strict specification
- We will give you plenty of old exams
- Mandatory assignments dramatically improve results. Take them seriously!