Less popular CS classes are offered once every two years, so if you wish to take any of these as part of your upper division track you need to plan in advance.
Double counting isn't allowed. You cannot use the same class for both the upper division math oriented requirement as well as part of the upper division track for credits. An example of this is CSCI 4011. It can't be used for 8 credits if you want to use it for the upper division math oriented requirement and a track option for the software engineering track.
Start early! During their junior year, students should meet with a Computer Science advisor to plan a mutually agreeable track based on the student's academic interests. Students who are interested in tracks that have a large number of prerequisite courses should start planning sooner.
If you have any questions as to whether a course can be used as part of an upper division track, please contact Computer Science Advising.