Start with the International Studies Office's education abroad page. This is the first place to look for information about:
The education abroad page includes the Education Abroad Workshop, a thirty minute tutorial on the basics of studying abroad at UVa. The International Studies Office also provides a major advising sheet for Computer Science, which has a list of some popular programs for CS majors. (Note that the major advising sheet's list is by no means a complete list of available programs for CS majors.)
The School of Engineering and Applied Sciences also has a Office of Engineering International Programs, who may know more about Engineering-focused study abroad opportunities. (Most relevant to CS majors, there are opportunities that may be well-suited to second-year BS CS students who would mostly need to take core Engineering courses.)
Most commonly students study abroad in their fifth or sixth semester or during a summer.
If you are on the post-2021 curriculum (including new foundation courses like CS2100 (DSA1)), then studying abroad in earlier semesters may be possible, but you would most likely be taking some CS foundation classes. Sometimes, there are courses you will find abroad that we would transfer as those classes. But sometimes, the versions of these courses abroad will not quite match up with what we expect here at UVa — a foreign institution may divide the same CS topics different among their courses. Also, sometimes there may be a foriegn course we would transfer as one of the foundation classes where there may be some caveats to taking it: it may assume more prerequisite knowledge our equivalent course does not, or, despite covering enough to transfer, it may not cover certain topics your fellow students will have seen at UVa.
If you are on the pre-2021 curriculum (which includes CS 2110), the timing of CS 2150 should be a major concern: It is extremely unlikely that you can take CS 2150 abroad, and CS 2150 is a prerequisite for most CS classes. Thus, it is inadvisable to study abroad during the semester in which you would normally take CS 2150. In the example schedule for Bachelor's of Science majors in the undergraduate record: this would be in the fourth semester. In practice, many students may take CS 2150 earlier (and some may take it later, but I do not advise doing this if possible).
It is more possible find a course that will count as CS 2110 abroad, but because of how the course leads into CS 2150, I do not recommend doing so.
Studying abroad in one's senior year is possible but unusual. For Bachelor's of Arts students, this requires approval from the dean and your major advisor (see the policy here), in addition to finding a set of courses that ensures on-time graduation. For Bachelor's of Science students, in addition to formal approvals, you would need to find a way to satisfy the capstone requirements, which are generally only taken during senior year.
I recommend focusing on things that simply aren't offered at UVa. Taking full advantage of this advice may mean not taking any CS courses abroad. You need to make sure whatever you plan to take abroad allows you to graduate on schedule, and taking a couple CS classes will make this easier. But don't try to plan your semester abroad like a normal UVa semester with a more limited course catalog.
You probably can't take:
This depends mostly on what courses are offered at your chosen institution. Sometimes you may be able to find a large library of CS courses, sometimes no CS courses will be available.
If you can take courses in the primary language of instruction of the host institution, and it is a University with a normal CS department, frequently you will be able to find courses to count as:
In this case, it is often possible to find enough CS courses that you will not need to make major changes to the suggested course schedule.
When you are limited to a smaller set of course taught in English or the program is not a normal semester at a University with a CS program, you would often need to take more CS courses the semesters before and after you study abroad to compensate.
Please provide any of these that are available:
If you are a Bachelor's of Arts student, generally I will only be approving CS courses for you (and other courses will need approval by the College, though I can provide my assessment of them if you want…). If you are a Bachelor's of Science student, you should provide material for all courses.
If it's similar to a CS elective we offer, we can probably count as it as the same course.
If you find a CS elective course at another institution that is not similar to any CS elective we offer, usually we can still count that as a CS elective.
Generally, when determining whether a course should count as a CS elective, I am looking for the following:
(Integration electives are part of the requirements for Bachelor of Arts students; they do not apply to Bachelor's of Science students.)
Probably.
If the College will approve the course to transfer with the same name and number as an already-approved integration elective, then the course should automatically count as an integration elective. See the ugrads resource page for the list of courses that are already approved.
If the College will approve the course to transfer but with a different name and number than an already-approved integration elective, then you can petition for it to count like you would a UVa course not yet on the list.