---
tags: Setup
---
# Lecture 5 Setup/Prep
In lecture 5 we turn to lists. We will start by asking:
- what combination of classes, interfaces, and abstract classes should we use to implement lists from scratch?
This lecture will focus on functional-style lists, in which operations to add/delete elements produce new lists, rather than modify existing lists. (We'll implement updating lists in a couple of days.)
**If you have implemented LinkedLists through objects before, you may be surprised by aspects of how we will do this.** (*Hint: In particular, we will only use concepts that we have covered in lecture up until now*)
## Prep
There are no starter files for this lecture (though we will write code, in case you want to create a `lec05` package). It's worth coming to class having thought about how you might do this before we show the solution.
- Propose a collection of classes, interfaces, and abstract classes for linked lists