Bachelor of Science Electives

While the curriculum carefully prescribes most CS courses, you have many choices for non-CS courses and for some CS tracks and electives. The Bulletin carries the definitive requirements for all students, and is updated to reflect and archive the requirements for each entering class. This page is intended to help you generally understand what electives you may take, but you must choose courses in consultation with your advisors and ensure that they meet the requirements for your Bulletin year.


Math Requirements:
Take either the sequence Math 1220-1221-1232, or the sequence Math 1231-1232. All students must take 2 math courses not counting Math 1220. If a student takes Math 1220, it may be counted as one of the selected electives, while 1221 and 1232 will count towards the two math courses


Humanities and Social Science Electives:
The HSS course menu-prior to 2015 for students following curriculum years prior to 2015;  You should choose two humanities courses in the same field and one in a different field, and two social science courses in the same field and one in a different field, for a total of four fields.

The HSS course menu-2015 to 2017 for students following curriculum years between 2015/16 to 2016/17.  You should choose two humanities courses in the same field and one in a different field, and two social science courses in the same field and one in a different field, for a total of four fields. University-wide requirements pose additional constraints on which courses may be chosen. Some flexibility is possible here, if you are taking a minor (Secondary Field) program; see your advisor.  Note: you can satisfy the 2-course humanities selection with an introductory sequence in a foreign language (including American Sign Language) if this language is not your native language. (There is no restriction against taking advanced courses in your native language.)

The guidelines listed here (Forms by Major -> Computer Science -> Non-Technical Elective Declaration Form by Curriculum Year)  for students following curriculum years 2017/18 onward.


Natural Science Requirements:
To meet the natural science requirements, choose three courses from Physics (PHYS) 1021 and 1022, Biology (BISC) 1115+1125 (or BISC 1111) and BISC 1116+1126 (or BISC 1112), and Chemistry (CHEM) 1111 and 1112. Two of your three courses must form a sequence in one of the science disciplines. Thus, for example, you could satisfy the requirements by taking BISC 1115+1125, BISC 1116+1126 and PHYS 1021.


Statistics or Linear Algebra Requirement:
Students must take both a statistics class, and a linear algebra class. The Statistics requirement can be met by choosing from APSC 3115CSCI 3362 or CSCI 6362CSCI 4341, or STAT 4157. The Linear algebra requirement can be met by taking one of MATH 2184CSCI 4342, or EMSE 2705. Students who were admitted prior to fall 2014 may count STAT 1051 and STAT 1053 toward the statistics requirement, if they took the course prior to the spring 2015 semester. Students pursing a pre-medical concentration may substitute the linear algebra requirement with a science course required by the pre-medical requirements.


Math or Science Elective:
In this category you choose one course in mathematics or natural science. If you choose math, here are some possibilities: APSC 2113, CSCI 4341 or 4314, CSCI 3362 / 6362, EMSE 2705, MATH 2184, 2185, 2233, or 3125, PHIL 3121. If you choose science, you can take the second course in your second science above, or choose another natural science like astronomy, earth science, or forensic science. Courses not among those listed above must be approved by your adviser.


CS Technical Track Electives: 
For students in curriculum year 2018 or earlier, select three courses that meet one of the approved technical tracks. Students in curriculum year 2019 or later, select four courses as instructed here.


Non-technical Track Electives: 
Choose courses from the department's approved list of non-technical track courses. Please see your advisor for the current list of approved non-technical tracks.


Selected Electives:
Selected electives are intended to encourage students to explore further topics in computer science, pursue independent research or take courses in other departments. To take more CSCI courses, you may take any course numbered above 3000; research and independent study courses are typically limited to one and require documentation of output---such as papers, presentations, or software. Students who have made unusual progress in the research: such as with a published paper or poster or project in use in the “real world” may take one more research or independent study course towards the selected electives. For any courses from other departments, you must obtain adviser approval, even if the course is required for a minor.

As a guideline, we will approve courses from the HSS lists, and from those courses explicitly listed in non-technical track lists on the department website. You should not assume that any other non-CS courses will be approved without explicit documented approval from your adviser, even when such courses are required for a minor or have transferred through AP credit. 

In particular, note that a computer science course taught by another department will generally not count. Further, we will not allow courses that significantly overlap with---or are not as advanced as---the required content for the CS degree program. For example, we will not allow courses such as (but not limited to) the following: EMSE 4197; ISTM 3119, 4120, 4121, 4123; BADM 2301; STAT 1051, 1053, 1091, 1129. Finally, some courses may be approved for one student and not for another, based on other courses the student has taken. For example, if a student is using PHYS 1021 towards the science, math/science, or selected elective requirement, PHYS 1011 is not permitted, but it would be permitted for students who have not taken PHYS 1021. Finally, no courses, independent of which department they are from, will be allowed if they overlap significantly with any other course(s) used towards the computer science program.