For the midterm exam the students should:

- Know the definitions of the Imperative, Functional, and Declarative (Logic) programming styles

- Know various software and OO notions  (object, class, interface, type)

- Be able to describe the 3 OO principles

- Be able to define simple functions in Scala using the functional programming style

- Know the material covered in class from the Scala textbook chapters 3 - 8 (lists, tuples, sets, maps; classes, objects; basic types; functional objects; built-in control structures; functions and closures)