Close Menu

Prerequisites for Computer Science Courses

Some courses are restricted to students with certain majors; for information on this, and for other additional or superseding information, see the Course Descriptions, Course Catalog, Undergraduate Bulletin, and Graduate Bulletin.

Included below:


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 451 Introduction to Parallel and Distributed Computing CS 351 or 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 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 Data Integration, Warehousing, and Provenance CS 425
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 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 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  
Successors of Prerequisite Courses
Course Is a Pre/Co-requisite for
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 451
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
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 533 535 538 539 546 549 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 556 570 | CSP 551
CS 455 CS 542 547 548 553 | CSP 541 542 543 544 550
CS 470 CS 570
CS 480 CS 580 581 583
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 552 CS 556
CS 560 CS 565 566
CS 561 CS 565 566
CS 570 CS 572
CS 585 CS 681
Non-CS Prerequisites
Course Is a Pre/Co-requisite for
COM 421 CS 485
COM 428 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
Linear Algebra course CS 538
Probability and Statistics (recommended) CS 583
Strong programming knowledge CS 429

Last modified 11/4/2013