line following control algorithms

I have built a two wheel robot with IR LED/diode sensors that I want to write line following code for. I'm pretty confident with coding so I don't need code examples but I'd like to hear your thoughts about control algorithms.

I am assuming that I'll calculate a contrast error between the left and right sensor and use a discrete form PID controller borrowed from Wikipedia since my masters in control theory is now 25 years ago.

What other ideas does the community have?

My first attempt back before Christmas just using proportional gain was kind of successful for a first attempt and less than an hour of tuning, but was somewhat oscillatory to get a fast enough response. Next time I'm planning to use Ziegler Nichols criteria based on performance on a static testbed... Thoughts?

Best regards, Gareth