Computing
Software engineering
Computer programming
Type theory
Data types
Functional languages
Subroutines
Scala
Recursive data type
Recursion
Type system