The students' programs would then be run in batch mode and the output delivered back to the classroom. The students had quite an anxious wait to find out if their program had run successfully, or if the line printer output just said "Syntax error at line 70". A mistake in your program would lead to a wait of several days before you could try again.
Not just students with the slow turnaround. My first programming job, the computer was busy all day with production work and all development was run by the night shift. So we had one shot per day to get a program working. It was normal to have 10 or more programs on the go at the same time. The day would start by looking at the night's output. Fix syntax errors first, they were the most obvious. Then look at all the test runs, fix the logic errors. If there was time after that, continue writing the next program.
Some of the programs were epic. One I wrote was 7000 punch cards, 3-1/2 card boxes and took several minutes just to read in. This was in the days of batch processing. The program took input from another program that supposedly validated user input - valid dates in date columns, reasonable values in numeric columns etc. The program took this input and validated it against numerous random access files, did some processing and passed it on to the program that updated files.
One night, a card was missing from the deck (unexplained). This resulted in the library definitions of two files to not be copied in, so the compiler flagged errors. Since almost every line of the program dealt with one or other of the files, the resulting error list was HUGE. We put the printout in the back of a utility, weighed the end down with a rock and drove until it was all laid out on the road. it was quarter of a mile long.
What was interesting, that program occupied less than 64kbytes memory. IIRC it had multiple overlays (a precursor of virtual memory that was explicitly programmed) and every time it was changed it was necessary to shuffle things so it still fitted into the available memory.
It took many programmers most of a year to get that suite of programs into operation. When it was finished, it cut production costs so much it saved the cost of development in less than a year.
Memories, sweet memories. I still do programming for 'fun'. The current project is about 4000 lines and if it takes more than 5 seconds to compile I'm wondering what else was happening to slow it down. The good old day weren't that good.