Skip to main content

CS Electives

The computer science electives available to CS majors and minors rotate each year. Generally there are two years between each time an elective is offered, so if an elective you want to take becomes available in your junior year, you will want to take it as it is unlikely to be offered again in your senior year. The only courses this rotation does not apply to are courses that count as electives for the B.A. degree or the minor, but are required for the B.S. degree (e.g. CS451, CS466, CS462) and CS491; those courses are offered every year in either fall or spring.

Recent and upcoming planned elective offerings are listed below to aid you in your course planning. Note that planned elective offerings are subject to change until the prior semester.

Spring 2025 (tentative)

  • CS484 - Machine Learning. Prerequisite: CS312 or DS303, and ST210.
  • CS491 - Technical Innovation & Entrepreneurship. Prerequisite: written or electronic permission of the instructor. Course is for TIE minors.
  • CS451 – Programming Languages. Prerequisites: CS312. (Required for BS degree)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course.  (Required for BS degree)

Fall 2024 

  • CS403 - Finding Information in Data. Prerequisite: CS312.
  • CS489 - Special Topics: Cybersecurity. Prerequisites: CS212 and CS295.
  • CS489 - Special Topics: Quantum Computing. Prerequisites: CS312 and MA251, restricted to juniors and seniors.
  • CS466 – Operating Systems. Prerequisites: CS371 and CS366. (Required for BS degree)

Spring 2024 

  • CS456 - Web Programming. Prerequisite: CS212
  • CS489 - Distributed Systems. Prerequisite: CS312
  • CS491 - Technical Innovation & Entrepreneurship. Prerequisite: written or electronic permission of the instructor. Course is for TIE minors.
  • CS451 – Programming Languages. Prerequisites: CS312. (Required for BS degree)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course.  (Required for BS degree)

Fall 2023 

  • CS485 - Database Management Systems. Prerequisite: CS312
  • CS453 - Android App Development. Prerequisite: CS312.
  • CS466 – Operating Systems. Prerequisites: CS371 and CS366. (Required for BS degree)

Spring 2023 

  • CS484 - Machine Learning. Prerequisite: CS312 or DS303, and ST210.
  • CS491 - Technical Innovation & Entrepreneurship. Prerequisite: written or electronic permission of the instructor. Course is for TIE minors.
  • CS451 – Programming Languages. Prerequisites: CS312. (Required for BS degree)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course.  (Required for BS degree)

Fall 2022 

  • CS403 - Finding Information in Data. Prerequisite: CS312.
  • CS453 - Android App Development. Prerequisite: CS312.
  • CS466 – Operating Systems. Prerequisites: CS371 and CS366. (Required for BS degree)

Spring 2022 

  • CS456 - Web Programming. Prerequisite: CS212
  • CS489 - Virtual Reality - Prerequisites: CS312
  • CS471 - Computer Architecture. Prerequisite: CS371.
  • CS491 - Technical Innovation & Entrepreneurship: written or electronic permission of the instructor. Course is for TIE minors.
  • CS451 – Programming Languages. Prerequisites: CS312. (Required for BS degree)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course.  (Required for BS degree)

Fall 2021

  • CS403 - Finding Information in Data. Prerequisite: CS312.
  • CS485 - Database Management Systems. Prerequisite: CS312.
  • CS466 – Operating Systems. Prerequisites: CS371 and CS366. (Required for BS degree)

Spring 2021

  • CS489 - Embedded Systems. Prerequisite: CS366.
  • CS484 - Machine Learning. Prerequisites: CS312, and ST210 (or written permission of instructor).
  • CS451 – Programming Languages. Prerequisites: CS312. (Required for BS degree)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course.  (Required for BS degree)

Courses Required for the B.S. Degree
The following courses are required for the B.S. degree but may be taken as an elective for the B.A. degree (including the interdisciplinary degree) or the minor. For each course we list what semester it is usually offered in a given academic year.

  • CS451 – Programming Languages. Prerequisites: CS312. (spring)
  • CS466 – Operating Systems. Prerequisites: CS371 and CS366. (fall)
  • CS462 – Algorithm Analysis. Prerequisites: CS312; and CS295 or MA295 or MA395 or an equivalent course. (spring)

View the course catalog