Is there a difference between заканчивать/закончить and кончать/кончить? Or are they interchangeable?
There is no difference. You can say interchangeably:
Закончить университет // Кончить университет
Закончить доклад // Кончить доклад
Okay, you can't now. Not in the last ~25 years. Because now the verb кончить/кончать had been attached this meaning: to orgasm. And now it's almost exclusively used to express this.
Of course, you still can say and write
кончить implying it's usual meaning. But you'll almost certainly get giggled at.
Here's an (incomplete) list of meanings with which "за-" prefix can modify the original verb:
- to begin doing something
- doing something ahead of time
- to finish, to complete something
- (sort of related to previous one) to acquire certain property: заплесневеть, заржаветь)
- to do something up to extreme point: зачитать до дыр,
- to do something that implies the existence of barriers, obstacles etc.
Speaking of "кончать" / "заканчивать" - this is exactly "to complete, to end something" / "to start to end something". And yes, "кончать" also means "to cum" but whatever, though in original meaning this word is used more and more rare, it is still used. But if you are not native speaker, and thus can not feel subtle connotations, I won't recommend use it at all.
As of "кончить" / "закончить" - it's sort of perfect, it's about some action that already happened, so it's pretty much like "have completed" in both cases ("за"- just add more weight to the fact that we are talking about completed action. And once again - if you don't feel it, safer to use "закончить".