I'm a bit worried about the scale here, but I often did some interesting things when there were fewer than about 30 students. Maybe you can make it work. I'll give a couple of examples using sorting. To do them you need a bunch of cards (maybe bigger than index cards at this scale) and a marking pen.
Call it playtime. (Done with university students in a CS major)
Write a bunch of integers on individual cards (probably about eight cards). Hand them out to a bunch of students, one card each. Have them stand in line facing the class with the numbers in random sequence, cards visible.
Insertion sort:
Have one student not in the line point to the second person in the line from the left side of the line.
Pull the person pointed to out of line, compare their number with that of the first person and if the number is less, push (gently) the first person down to the now empty (right) slot to make a slot for the one you pulled out and push them into the open slot.
Tell the "pointing student" to point one person farther on. Go there, pull that person out of line and then move down toward the left, pushing people right as long as their number is larger than the one you've pulled out. Put them into the now empty slot. Repeat.
The quadratic sorts are all pretty easy to manage. The faster ones can be done (with mistakes and lots of laughing) using some students as data and other students as pointers. Merge sort might be the hardest, but note that with some practice it can be done in parallel. But first practice merging as a separate "play".
For quick sort you might be able to have about 16 data points and fewer might not give enough data to help the students grok the method.
Searching is also possible and a bit simpler. One or several "pointer" students to keep track of things.
I also did some general recursion lessons having one student with a "base case" script and adding additional students to a list with a different script that, say, either returned a value or passed the process down toward the base case. I'd guess that tree algorithms might be too messy to manage, though.
You can do something similar (with care) to teach linear recursion by adapting There was an old lady who swallowed a fly into what I called choir practice. The base case is "'I don't know why she swallowed a fly, perhaps she'll die'". You need to be choir director feeding the initial lines of each verse and handing a card to a new student with their lines.
You say, at one point, "There was an old woman who swallowed a cat. Imagine that, to swallow a cat". Hand a new student the card "She swallowed the cat to catch the bird" who reads the card aloud, and points to (recurses) to the next person whose card gets read again ("She swallowed the bird to catch the spider") and passes control (points to) the next student.
Note that you (choir director) terminates when you reach the "horse" verse.