Well, in the basement of the computer school I went to was an old Univac computer that took up about half of the room. It was an L-shaped device with a large printer and card reader/punch built in it. It had real core memory that amounted to 4k. We would test our smallish rpg and assembler programs that we wrote on it. Load in the supervisor from a deck of cards, then load in the compiler from another deck of cards, then our program from a smaller deck of cards, plus the data cards, then after much spinning, clicking, and large clatter from the printer, we got our program results.

This is the only time I remember having to use Alter instructions, which changed the compiled version of the program as it ran so the same code could perform more than one function.