Prerequisites for Computer Science Courses
| Course |
Title |
Prerequisites |
| CS 100 |
Introduction to the Profession |
|
| CS 105 |
Introduction to Computer Programming I |
|
| CS 115 |
Object-Oriented Programming I |
|
| CS 116 |
Object-Oriented Programming II |
CS 115 |
| CS 201 |
Accelerated Introduction to Computer Science |
CS 105 or experience using any programming language |
| 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 |
Written consent of instructor |
| CS 401 |
Introduction to Advanced Studies I |
CS 201 or equivalent |
| CS 402 |
Introduction to Advanced Studies II |
CS 401 or consent of instructor |
| CS 411 |
Computer Graphics |
CS 331 or CS 401 or CS 403 |
| CS 422 |
Data Mining |
CS 331, CS 401, or CS 403 and strong programming knowledge |
| CS 425 |
Database Organization |
CS 331, CS 401, or CS 403 |
| CS 429 |
Information Retrieval |
(CS 331 or CS 401) and strong programming knowledge |
| CS 430 |
Introduction to Algorithms |
((CS 330 or MATH 230) and CS 331) or CS 401 or CS 403 |
| CS 440 |
Programming Languages and Translators |
(CS 330 or MATH 230 and CS 351); or CS 401 or CS 403 |
| CS 441 |
Current Topics in Programming Languages |
CS 331 or CS 401 or CS 403 |
| 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 (Note: The listing in the 2008—2010 Undergraduate Bulletin is obsolete.) |
| CS 455 |
Data Communications |
CS 450 |
| 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 |
Corequisite: (MATH 474 or equivalent) |
| 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 425 and two of (CS 422, CS 429, CS 481) or consent of instructor |
| CS 485 |
Computers and Society |
COM 421 or COM 428 |
| CS 487 |
Software Engineering |
CS 331, CS 401, or CS 403 |
| CS 491 |
Undergraduate Research |
Written consent of instructor |
| CS 495 |
Topics in Computer Science |
Consent of instructor |
| CS 511 |
Topics in Computer Graphics |
CS 411 |
| CS 512 |
Computer Vision |
CS 430 |
| CS 520 |
Database Design and Engineering |
(CS 351 or CS 402) and CS 430 |
| CS 521 |
Object-Oriented Analysis and Design |
CS 445 |
| 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 430 |
| CS 532 |
Formal Languages |
CS 430 |
| CS 533 |
Computational Geometry |
CS 430 and a linear algebra course |
| 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 540 |
Syntactic Analysis of Programming Languages |
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 |
| CS 545 |
Distributed Computing Landscape |
CS 450 |
| CS 546 |
Parallel and Distributed Processing |
CS 430 and CS 450 |
| 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 |
Pervasive Computing |
CS 450 or CS 455 and CS 470 |
| CS 555 |
Analytic Models and Simulation of Computer Systems |
CS 450 |
| 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 |
Medical Informatics |
CS 425 and CS 480 |
| CS 581 |
Topics in Artificial Intelligence |
CS 480 |
| CS 582 |
Computational Robotics |
CS 430 |
| CS 583 |
Expert Systems |
CS 480 |
| CS 584 |
Machine Learning |
CS 480 |
| 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 |
Written consent of instructor |
| CS 591 |
Research and Thesis for M.S. Degree |
|
| CS 595 |
Topics in Computer Science |
Written consent of instructor |
| CS 597 |
Reading and Special Problems |
Written consent of instructor |
| CS 612 |
Topics in Computer Vision |
CS 512 |
| CS 630 |
Advanced Topics in Algorithms |
CS 430 and consent of instructor |
| CS 642 |
Advanced Topics in Networking |
CS 542 |
| CS 681 |
Topics in Computational Linguistics |
CS 585 |
| CS 689 |
Advanced Topics in Software Engineering |
Consent of instructor |
| CS 691 |
Research and Thesis for Ph.D. Degree |
|
| CS 695 |
Doctoral Seminar |
|
| 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 and experience programming in high-level languages |
| 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 |
C programming, CS 450 or equivalent, and user-level knowledge of UNIX |
| CSP 581 |
Applied AI Programming |
CS 440 or equivalent |
| CSP 585 |
Object-Oriented Design Patterns |
CS 445 |
| CSP 586 |
Software Modeling and Development with UML |
CS 487 or CS 445 |
| CSP 587 |
Software Quality Management |
CS 487 or equivalent |
| CSP 595 |
Topics in CSP |
|