Developer: Expected to be an expert level at one programming language (Java, PHP, etc.)
Programmer: Expect to be an expert at several different languages.
Programmer Analyst: Expected to be able to program applications that integrate between different systems.
Systems Analyst: Expected to Design Information Architecture to improve business information systems
Software Engineer: Expected to design core components that Developers & Programmers can use. As per US law, you need to have a professional engineering degree/license to add the title engineer.
Computer Scientist: They write code, but they do it prove something. They are not bothered about design or good practices.