Prerequisites for Computer Science Courses
| Course |
Title |
Prerequisites |
| CS 100 |
Introduction to the Profession |
|
| CS 104 |
Introduction to Computer Programming for Engineers |
|
| CS 105 |
Introduction to Computer Programming |
|
| CS 110 |
Computing Principles |
|
| CS 115 |
Object-Oriented Programming I |
|
| CS 116 |
Object-Oriented Programming II |
CS 115 (minimum grade of C) |
| CS 201 |
Accelerated Introduction to Computer Science |
CS 105 or CS 115 |
| CS 330 |
Discrete Structures |
Corequisite: (CS 116 or CS 201) |
| CS 331 |
Data Structures and Algorithms |
CS 116 or CS 201 |
| CS 350 |
Computer Organization and Assembly Language Programming |
CS 116 or CS 201 |
| CS 351 |
Systems Programming |
CS 331 and (CS 350 or ECE 242) |
| CS 397 |
Special Projects |
Instructor permission |
| CS 401 |
Introduction to Advanced Studies I |
CS 200 or CS 201 |
| CS 402 |
Introduction to Advanced Studies II |
CS 401 |
| CS 411 |
Computer Graphics |
CS 331 or CS 401 or CS 403 |
| CS 422 |
Data Mining |
CS 331 or CS 401 or CS 403 |
| CS 425 |
Database Organization |
CS 331 or CS 401 or CS 403 |
| CS 429 |
Information Retrieval |
(CS 331 or CS 401) and strong programming knowledge |
| CS 430 |
Introduction to Algorithms |
(CS 331 and (CS 330 or MATH 230)) or CS 401 or CS 403 |
| CS 440 |
Programming Languages and Translators |
(CS 331 and (CS 330 or MATH 230)) or CS 401 or CS 403 |
| CS 441 |
Current Topics in Programming Languages |
CS 331 or CS 401 or CS 403 |
| CS 442 |
Mobile Applications Development |
(CS 331 or CS 401) and (CS 351 or CS 402). (CS 351 and CS 402 may be taken concurrently.) |
| CS 443 |
Compiler Construction |
CS 440 (minimum grade of D) |
| CS 445 |
Object-Oriented Design and Programming |
CS 331 or CS 401 or CS 403 |
| CS 447 |
Distributed Objects |
CS 445 |
| CS 450 |
Operating Systems |
CS 351 or (CS 401 and CS 402) or CS 403 |
| CS 455 |
Data Communications |
CS 450 |
| CS 456 |
Introduction to Wireless Networks and Performance |
CS 350 or ECE 242 or (CS 401 and CS 402) or CS 403 |
| CS 458 |
Information Security |
CS 425 and CS 450 |
| CS 470 |
Computer Architecture |
(CS 350 or ECE 242) and ECE 218 |
| CS 480 |
Artificial Intelligence: Planning and Control |
MATH 474 and (CS 331 or CS 401 or CS 403). (MATH 474 may be taken concurrently.) |
| CS 481 |
Artificial Intelligence: Language Understanding |
MATH 474 and (CS 331 or CS 401 or CS 403) |
| CS 482 |
Information and Knowledge Management Systems |
(CS 422 and CS 425 and CS 429) or (CS 422 and CS 425 and CS 481) or (CS 425 and CS 429 and CS 481) |
| CS 485 |
Computers and Society |
COM 421 or COM 428 |
| CS 487 |
Software Engineering |
(CS 331 or CS 401 or CS 403) and CS 425 |
| CS 491 |
Undergraduate Research |
Instructor permission |
| CS 495 |
Topics in Computer Science |
Instructor permission |
| CS 511 |
Topics in Computer Graphics |
CS 411 |
| CS 512 |
Computer Vision |
CS 430 |
| CS 520 |
Database Design and Engineering |
CS 402 and CS 430 or CS 351 |
| CS 521 |
Object-Oriented Analysis and Design |
CS 445 or CS 487 |
| CS 522 |
Data Mining |
CS 422 |
| CS 525 |
Advanced Database Organization |
CS 425 |
| CS 529 |
Information Retrieval |
CS 429 |
| CS 530 |
Theory of Computation |
CS 430 |
| CS 531 |
Topics in Automata Theory |
|
| CS 533 |
Computational Geometry |
CS 430 |
| CS 535 |
Design and Analysis of Algorithms |
CS 430 |
| CS 536 |
Science of Programming |
CS 331 or CS 401 |
| CS 537 |
Software Metrics |
CS 487 |
| CS 538 |
Combinatorial Optimization |
CS 430 and a linear algebra course |
| CS 539 |
Game Theory: Algorithms and Applications |
CS 430 or CS 530 |
| CS 540 |
Foundations of Programming Language Design |
CS 440 |
| CS 541 |
Topics in Compiler Construction |
CS 440 |
| CS 542 |
Computer Networks I: Fundamentals |
CS 455 |
| CS 544 |
Computer Networks II: Network Services |
(CS 542 or ECE 545) and graduate status |
| CS 545 |
Distributed Computing Landscape |
CS 450 and graduate status |
| CS 546 |
Parallel and Distributed Processing |
(CS 430 and CS 450) and graduate status |
| CS 547 |
Wireless Networking |
CS 455 |
| CS 548 |
Broadband Networks |
CS 455 |
| CS 549 |
Cryptography and Network Security |
CS 430 |
| CS 550 |
Advanced Operating Systems |
CS 450 |
| CS 551 |
Operating System Design and Implementation |
CS 450 |
| CS 552 |
Distributed Systems |
CS 450 |
| CS 553 |
Cloud Computing |
CS 450 or CS 455 |
| CS 554 |
Data-Intensive Computing |
CS 450 |
| CS 555 |
Analytic Models and Simulation of Computer Systems |
CS 450 |
| CS 556 |
Cyber-Physical Systems: Languages and Systems |
CS 450 and CS 552 |
| CS 557 |
Cyber-Physical Systems: Networking and Algorithms |
|
| CS 560 |
Computer Science in the Classroom |
|
| CS 561 |
The Computer and Curriculum Content |
|
| CS 565 |
Computer-Assisted Instruction |
CS 560 or CS 561 |
| CS 566 |
Practicum in the Application of Computers to Education |
CS 560 or CS 561 |
| CS 570 |
Advanced Computer Architecture |
CS 450 and CS 470 |
| CS 572 |
Advanced Topics in Computer Architecture |
CS 570 |
| CS 580 |
Topics in Machine Learning |
|
| CS 581 |
Topics in Artificial Intelligence |
CS 480 |
| CS 582 |
Computational Robotics |
CS 430 |
| CS 583 |
Probabilistic Graphical Models |
CS 480 and knowledge of probability and statistics are recommended |
| CS 584 |
Machine Learning |
CS 430 |
| CS 585 |
Natural Language Processing |
CS 445 |
| CS 586 |
Software Systems Architectures |
CS 487 |
| CS 587 |
Software Project Management |
CS 487 |
| CS 588 |
Advanced Software Engineering Development |
CS 487 |
| CS 589 |
Software Testing and Analysis |
CS 487 |
| CS 590 |
Seminar in Computer Science |
Instructor permission |
| CS 591 |
Research and Thesis for M.S. Degree |
Instructor permission |
| CS 595 |
Topics in Computer Science |
Instructor permission |
| CS 597 |
Reading and Special Problems |
Instructor permission |
| CS 612 |
Topics in Computer Vision |
CS 512 |
| CS 630 |
Advanced Topics in Algorithms |
CS 430 and instructor permission |
| CS 642 |
Advanced Topics in Networking |
CS 542 |
| CS 681 |
Topics in Computational Linguistics |
CS 585 |
| CS 689 |
Advanced Topics in Software Engineering |
Instructor permission |
| CS 691 |
Research and Thesis for Ph.D. Degree |
Instructor permission |
| CS 695 |
Doctoral Seminar |
|
| CS 750 |
Computer-Aided Software Engineering |
CS 487 |
| CS 763 |
Automated Software Testing |
CS 487 |
| CSP 527 |
Client-Server Applications Development |
CS 425 |
| CSP 541 |
Internet Technologies |
CS 455 |
| CSP 542 |
Internet Design and Analysis |
CS 455 |
| CSP 543 |
Multimedia Networking |
CS 455 |
| CSP 544 |
System and Network Security |
CS 430 and CS 455 |
| CSP 545 |
Wireless Networking Technologies and Applications |
CS 542 |
| CSP 550 |
Internet Programming |
CS 455 |
| CSP 551 |
Advanced UNIX Programming |
CS 450 |
| CSP 581 |
Applied Artificial Intelligence Programming |
CS 440 |
| CSP 585 |
Object-Oriented Design Patterns |
CS 445 |
| CSP 586 |
Software Modeling and Development with UML |
CS 445 or CS 487 |
| CSP 587 |
Software Quality Management |
CS 487 |
| CSP 595 |
Topics in Computer Science Professional Master's |
|