The department offers a wide variety of electives to provide introductions to specific sub-fields of computer science. In order to increase the number of distinct courses available, each of these courses is normally offered only every other year. Thus students must set up their programs carefully to ensure that they have the prerequisites for a course by the time it comes up in their Junior or Senior year. Most of these courses require some or all of the core courses as prerequisites.
Electives include: