Computer science majors, especially those planning graduate work, are advised to acquire a strong background in mathematics, possibly a minor.

Personnel in the College of Physical and Mathematical Sciences Advisement Center will advise regarding core courses and suggested general education. Questions regarding curriculum and career decisions should be directed to the undergraduate advisor in the Computer Science Department.

Note: All hours of credit applied toward a major in computer science must be of C- or better and must be taken within eight years of declaring the computer science major. Any exceptions must be approved by the department. Students may choose to graduate under later requirements by updating their date of entry into the major at the college advisement center.

Note: No double counting is allowed within the major.

Requirement 1 — Complete 11 Courses

Core courses:

course - Intro to Computer Science 3.0

course - Computer Systems 3.0

course - Data Structures 3.0

course - Discrete Structure 3.0

course - Adv Software Construction 4.0

course - Intro to Computational Theory 3.0

course - Web Programming 3.0

course - Algorithm Design & Analysis 3.0

course - Systems Programming 3.0

course - Software Design 3.0

course - Ethics & Computers in Society 2.0

Requirement 2 — Complete 5 Courses

course - Calculus 1 4.0

course - Elementary Linear Algebra 2.0

course - Computational Linear Algebra 1.0

course - Intro to Newtonian Mechanics 3.0

course - Technical Communication 3.0

Requirement 3 — Complete 1 of 3 Courses

course - Probability Theory 3.0

course - Principles of Statistics 3.0

course - Stat for Engineers & Scientist 3.0

Requirement 4 — Complete 1 of 3 Courses

course - Calculus 2 4.0

course - Fundamentals of Mathematics 3.0

course - Stat Modeling for Data Science 3.0

Requirement 5 — Complete 21 hours

Complete 21.0 hours from the following option(s)

Option 5.1 — Complete up to 21 hours

Complete 12.0 to 21.0 hours from the following course(s)

course - Test, Analysis, & Verification 3.0

course - Concepts of Programng Lang 3.0

course - Operating Systems Design 3.0

course - Graphics and Image Processing 3.0

course - Advanced Techniques in HCI 3.0

course - Adv Algorithms & Probl Solving 3.0

course - Topics in Computer Science - You may take up to 3.0 credit hours 1.0v

course - Linear Prog/Convx Optimization 3.0

course - Software Engineering 3.0

course - Algorithmic Lang & Compilers 3.0

course - Computer Vision 3.0

course - Database Modeling Concepts 3.0

course - Fund of Information Retrieval 3.0

course - Computer Graphics 3.0

course - Mobile and Ubiquitous HCI 3.0

course - Comp Comms & Networking 3.0

course - Distributed System Design 3.0

course - Computer Security 3.0

course - Blockchain Technologies 3.0

course - Intro Artificial Intelligence 3.0

course - Voice Interfaces 3.0

course - Intro to Machine Learning 3.0

course - Deep Learning 3.0

course - Intro to Machine Translation 3.0

course - Verification and Validation 3.0

course - Adv Topics in Computer Sci - You may take up to 3.0 credit hours 1.0v

course - Robust Control 3.0

course - Intro to Network Science 3.0

course - Theory of Predictive Modeling 3.0

Note: If C S 401R or C S 501R is chosen, it must be taken for three hours.

Option 5.2 — Complete up to 6 hours

Courses can not double count between requirement 4 and option 5.2

course - Intro to Data Science 3.0

course - Software Engineering Lab 1 1.0

course - Software Engineering Lab 2 1.0

course - Software Engineering Lab 3 1.0

course - Introduction to HCI 3.0

course - Software Business 3.0

C S 478 - Tools for Machine Learning - This course is no longer available for registration and will count only if you completed it while it was offered. Please see your college advisement center for possible substitutions. 3.0

course - Fund of Digital Systems 3.0

course - Calculus 2 4.0

course - Fundamentals of Mathematics 3.0

course - Stat Modeling for Data Science 3.0

Option 5.3 — Complete up to 8 hours

Complete up to 8.0 hours from the following course(s)

course - Intro Embedded Programming 4.0

course - Embedded Systems 4.0

course - Cybersecurity & Pen Testing 3.0

course - Mathematical Cryptography 3.0

Option 5.4 — Complete up to 9 hours

course - Soft Eng Capstone 1 3.0

course - Soft Eng Capstone 2 3.0

course - Data Science Capstone 1 3.0

course - Data Science Capstone 2 3.0

course - Computing Competitions - You may take up to 3.0 credit hours 3.0

course - Capstone 1 3.0

course - Capstone 2 3.0

course - Undergraduate Research - You may take up to 6.0 credit hours 3.0

course - Undergraduate Special Projects - You may take up to 3.0 credit hours 1.0v

Note: If C S 493R, C S 497R, C S 498R, or C S 501R is chosen, it must be taken for three credit hours.

Requirement 6 — Obtain confirmation from your advisement center that you have completed the following:

Complete Senior Exit Interview with the CS department during your last semester or term.