Approved Computer Science Elective Courses

Course Code Title Hours
CS:3700 Elementary Numerical Analysis 3
CS:4330 Theory of Computation (if not used to satisfy theory elective) 3
CS:4350 Logic in Computer Science (if not used to satisfy theory elective) 3
CS:4400 Database Systems 3
CS:4420 Artificial Intelligence 3
CS:4440 Web Mining 3
CS:4470 Health Data Analytics 3
CS:4500 Research Methods in HCI 3
CS:4630 Mobile Computing 3
CS:4640 Computer Security 3
CS:4700 High Performance and Parallel Computing 3
CS:4720 Optimization Techniques 3
CS:4740 Large Data Analysis 3
CS:4980 Topics in Computer Science 3
CS:5340 Limits of Computation (Formerly CS:4340) 3
CS:5350 Design and Analysis of Algorithms 3
CS:5360 Randomized Algorithms 3
CS:5370 Computational Geometry 3
CS:5430 Machine Learning 3
CS:5610 High Performance Computer Architecture 3
CS:5620 Distributed Systems and Algorithms 3
CS:5630 Cloud Computing Technology 3
CS:5710 Numerical Analysis Nonlinear Equation Approximation Theory 3
CS:5720 Numerical Analysis: Differential Equations and Linear Algebra 3
ECE:5800/CS:5800 Fundamentals of Software Engineering 3
ECE:5810/CS:5810 Formal Methods in Software Engineering 3
ECE:5820/CS:5820 Software Engineering Languages and Tools 3
ECE:5830/CS:5830 Software Engineering Project 3
CS:5850 Programming Language Foundations 3
CS:5860 Lambda Calculus and Applications 3
CS:5980 Topics in Computer Science III 3

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.