# 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!