Close Menu

Prerequisites for Computer Science Courses

In event of any differences, the Undergraduate Bulletin, and Graduate Bulletin supersede the information below.


Prerequisites for Computer Science Courses
CourseTitlePrerequisites
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 104 or 105 or 115 (minimum grade of C)
CS 330 Discrete Structures CS 116 or 201
CS 331 Data Structures and Algorithms CS 116 or 201
CS 350 Computer Organization and Assembly Language Programming CS 116* or 201* (* May be taken concurrently)
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 201
CS 402 Introduction to Advanced Studies II CS 401
CS 411 Computer Graphics CS 331 or 401
CS 422 Data Mining CS 331 or 401
CS 425 Database Organization CS 331 or 401
CS 429 Information Retrieval (CS 331 or 401) and strong programming knowledge
CS 430 Introduction to Algorithms (CS 331 and (CS 330 or MATH 230)) or CS 401
CS 440 Programming Languages and Translators (CS 331 and (CS 330 or MATH 230)) or CS 401
CS 442 Mobile Applications Development (CS 331* or 401) and (CS 351 or 402*) (* May be taken concurrently)  
CS 443 Compiler Construction CS 440
CS 445 Object-Oriented Design and Programming CS 331 or 401
CS 447 Distributed Objects CS 445
CS 450 Operating Systems CS 351 or (CS 401 and 402)
CS 451 Introduction to Parallel and Distributed Computing CS 450
CS 455 Data Communications CS 450
CS 456 Introduction to Wireless Networks and Performance CS 350 or ECE 242 or (CS 401 and 402)
CS 458 Information Security CS 425 or 450 or 455
CS 470 Computer Architecture (CS 350 or ECE 242) and ECE 218
CS 480 Artificial Intelligence: Planning and Control (CS 331 and MATH 474*) or (CS 401 and 402) (* May be taken concurrently.)
CS 481 Artificial Intelligence: Language Understanding MATH 474 and (CS 331 or 401)
CS 482 Information and Knowledge Management Systems (CS 422 and 425 and 429) or (CS 422 and 425 and 481) or (CS 425 and 429 and 481)
CS 485 Computers and Society COM 421 or 428 or 435
CS 487 Software Engineering (CS 331 or 401) 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 513 Geospatial Vision and Visualization  
CS 520 Data Integration, Warehousing, and Provenance CS 425
CS 521 Object-Oriented Analysis and Design CS 445 or 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 430
CS 533 Computational Geometry CS 430
CS 535 Design and Analysis of Algorithms CS 430
CS 536 Science of Programming CS 331 or 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 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
CS 545 Distributed Computing Landscape CS 450
CS 546 Parallel and Distributed Processing CS 430 and 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 Cloud Computing CS 450 or 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 557 Cyber-Physical Systems: Networking and Algorithms  
CS 558 Advanced Computer Security CS 450 or 455 or 458
CS 560 Computer Science in the Classroom  
CS 561 The Computer and Curriculum Content  
CS 565 Computer-Assisted Instruction CS 560 or 561
CS 566 Practicum in the Application of Computers to Education CS 560 or 561
CS 570 Advanced Computer Architecture CS 450 and 470
CS 572 Advanced Topics in Computer Architecture CS 570
CS 579 Online Social Network Analysis CS 430
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 584 Machine Learning CS 430
CS 585 Natural Language Processing CS 430
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  
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 455
CSP 545 Wireless Networking Technologies and Applications CS 542
CSP 550 Internet Programming CS 450
CSP 551 Advanced UNIX Programming CS 450
CSP 570 Data Science Seminar  
CSP 571 Data Preparation and Analysis  
CSP 572 Data Science Practicum  
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 487
CSP 587 Software Quality Management CS 487
CSP 595 Topics in Computer Science Professional Master's  
Successors of Prerequisite Courses
CourseIs a Pre/Co-requisite for
CS 104 CS 201
CS 105 CS 201
CS 115 CS 116 201
CS 116 CS 330 331 350
CS 201 CS 330 331 350 401
CS 330 CS 430 440
CS 331 CS 351 411 422 425 429 430 440 441 442 445 480 481 487 536
CS 350 CS 351 456 470
CS 351 CS 442 450
CS 401 CS 402 411 422 425 429 430 440 441 442 445 450 456 480 481 487 536
CS 402 CS 442 450 456 480
CS 411 CS 511
CS 422 CS 482 522
CS 425 CS 458 482 487 520 525  |  CSP 527
CS 429 CS 482 529
CS 430 CS 512 530 531 533 535 538 539 546 549 579 582 584 585 630  |  CSP 544
CS 440 CS 443 540 541  |  CSP 581
CS 445 CS 447 521  |  CSP 585 586
CS 450 CS 451 455 458 545 546 550 551 552 553 554 555 558 570  |  CSP 551
CS 455 CS 542 547 548 553 558  |  CSP 541 542 543 544
CS 458 CS 558
CS 470 CS 570
CS 480 CS 580 581
CS 481 CS 482
CS 487 CS 521 537 586 587 588 589 750 763  |  CSP 586 587
CS 512 CS 612
CS 530 CS 539
CS 542 CS 544 642  |  CSP 545
CS 560 CS 565 566
CS 561 CS 565 566
CS 570 CS 572
CS 585 CS 681
CS 587 CSP 572
CSP 571 CSP 572
Non-CS Prerequisites
CourseIs a Pre/Co-requisite for
COM 421, 428, 435 CS 485
ECE 218 CS 470
ECE 242 CS 351 456 470
ECE 545 CS 544
MATH 230 CS 430 440
MATH 474 CS 480 481
MATH 569 571 CSP 572
Linear Algebra course CS 538
Strong programming knowledge CS 429

Last modified 10/15/2016