---
# System prepended metadata

title: Lecture 5 Setup/Prep
tags: [Setup]

---

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