Pre Ph.D.

What classes should be taken for CS majors wanting to pursue a Ph.D.?

What other steps should be taken to increase chances of graduate admissions?

What year should research be started?

Classes: get broad coverage of the junior/senior level CS topics like algorithms and complexity, theory of computation, operating systems, compilers, databases, networks, computer architecture, plus junior/senior level CS (and possibly other) course work that leads to your intended graduate specialty. Obviously, do well in your CS courses.

Other steps: undergraduate research leading to good faculty recommendations. Start as soon as you have enough course work knowledge to be accepted into a research project of interest at your school.