Approved Computer Science Elective Courses

Course CodeTitleHours
CS:3700Elementary Numerical Analysis3
CS:3980Topics in Computer Science I3
CS:4330Theory of Computation (if not used to satisfy theory elective)3
CS:4350Logic in Computer Science (if not used to satisfy theory elective)3
CS:4400Database Systems3
CS:4420Artificial Intelligence3
CS:4440Web Mining3
CS:4470Health Data Analytics3
CS:4500Research Methods in HCI3
CS:4630Mobile Computing3
CS:4640Computer Security3
CS:4700High Performance and Parallel Computing3
CS:4720Optimization Techniques3
CS:4740Large Data Analysis3
CS:4980Topics in Computer Science3
CS:5340Limits of Computation (Formerly CS:4340)3
CS:5350Design and Analysis of Algorithms3
CS:5360Randomized Algorithms3
CS:5370Computational Geometry3
CS:5430Machine Learning3
CS:5610High Performance Computer Architecture3
CS:5620Distributed Systems and Algorithms3
CS:5630Cloud Computing Technology3
CS:5710Numerical Analysis Nonlinear Equation Approximation Theory3
CS:5720Numerical Analysis: Differential Equations and Linear Algebra3
ECE:5800/CS:5800Fundamentals of Software Engineering3
ECE:5810/CS:5810Formal Methods in Software Engineering3
ECE:5820/CS:5820Software Engineering Languages and Tools3
ECE:5830/CS:5830Software Engineering Project3
CS:5850Programming Language Foundations3
CS:5860Lambda Calculus and Applications3
CS:5980Topics in Computer Science III3

For more information

For general advising information, notes and advising forms see ECE Undergraduate Curriculum

Classes that ECE students may or may not get credit for

Course Code Title Credit Notes
CS:2630 Computer Organization no ECE students take ECE:3350 Computer Architecture instead.
CS:2820 Introduction to Software Development no ECE students take ECE:3330 Introduction to Software Design instead.
CS:3210 Programming Languages and Tools no CS:3210 is a topics class that changes topics each time it is offered. This course may teach Java or another programming language. Alternatively, it may teach how to use a programming tool such as an integrated development environment (IDE), e.g., CLion. ECE students do not get credit for CS:3210 because these topics are covered in their required courses that include ENGR:1300, CS:1210, ENGR:2730 and ECE:3330.
CS:3640 Introduction to Networks and Their Applications no ECE students take ECE:3540 Communication Networks instead. ECE:3540 covers all the material in CS:3640 plus adds coverage of computer security that is required for ABET accreditation.
Informatics courses   maybe if used for a non technical elective CS students do not get credit for informatics courses. ECE students do not get technical credit for courses that CS majors do not get credit for. ECE students might be able to list an informatics course as a free elective if the topic is not covered by a required class.
CS:3980 Topics in Computer Science I maybe if used for a non technical elective CS:3980 Topics in Computer Science I is for informatics students only. ECE students should take CS:4980 Topics in Computer Science II instead. ECE students might be able to list CS:3980 as a free elective if the topic is not covered by a required class.
Courses that CS majors do not get credit for   maybe if used for a non technical elective Computer Science offers classes for non majors. If a CS major cannot get credit for a CS course, then ECE majors cannot get technical credit for that course. ECE students might be able to list one of these courses as a free elective if the topic is not covered by a required class.