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); 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 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.
  • CS489 - 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)

Fall 2020

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

Spring 2020

  • CS456 - Web Programming. Prerequisite: CS212
  • CS457 - Computer Networks - Prerequisites: CS212; CS295 or MA295 or MA395
  • CS491 - Technical Innovation & Entrepreneurship: written or electronic permission of the 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)

Fall   2019

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

Spring 2019

  • CS484 – Artificial Intelligence. Prerequisites: CS312; and ST210 or written permission from the instructor
  • CS491 -  Technical Innovation & Entrepreneurship: written or electronic permission of the  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)

Fall 2018

  • CS486 - Computer Graphics.  Prerequisites: CS312; MA301 or written permission of the instructor
  • CS489 - Special Topics in Computer Science - App Development. Prerequisites: CS312

Spring 2018

  • CS456 – Web Programming. Prerequisites: CS212
  • CS489 – Special Topic in Computer Science - Cybersecurity. Prerequisites: CS312.
  • 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