Course Prerequisites and Corequisites

Computer Science Department

Illinois Institute of Technology

Introduction

Updates to the undergraduate and graduate bulletins supersede the information in these tables.

Notation

Pre/Co-Requisites for CS 100–399

Course Title Pre/Co-requisites
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 115C
CS 201 Accelerated Introduction to Computer Science (CS 104 or 105 or 110 or 115)C
CS 330 Discrete Structures CS 116 or 201
CS 331 Data Structures and Algorithms CS 116 or 201
CS 340 Programming Paradigms and Patterns CS 116 or 201
CS 350 Computer Organization and Assembly Language Programming (CS 116 or 201)cr
CS 351 Systems Programming CS 331 and (CS 350 or ECE 242)
CS 397 Special Projects Instructor permission

Pre/Co-Requisites for CS 400–499

Course Title Pre/Co-requisites
CS 401 Introduction to Advanced Studies II CS 201
CS 402 Introduction to Advanced Studies II CS 401
CS 406 Introduction to Discrete Structures and Algorithms
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
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)cr
CS 443 Compiler Construction CS 440
CS 445 Object-Oriented Design and Programming CS 331 or 401
CS 447 Distributed Objects
CS 450 Operating Systems CS 351 or (CS 401 and 402)
CS 451 Introduction to Parallel and Distributed Computing CS 351 or 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 (CS 450 or 455)
CS 470 Computer Architecture CS 350 or ECE 242
CS 480 Artificial Intelligence: Planning and Control (CS 331 and MATH 474cr) or (CS 401 and 402)
CS 481 Artificial Intelligence: Language Understanding (CS 331 or 401) and MATH 474
CS 482 Information and Knowledge Management Systems CS 425 and two of (CS 422, 429, 481)
CS 485 Computers and Society COM 421 or 424 or 425 or 428 or 435
CS 487 Software Engineering (CS 331 or 401) and CS 425
CS 491 Undergraduate Research Instructor permission
CS 492 Introduction to Computer Science Research
CS 495 Topics in Computer Science
CS 497 Special Projects

Pre/Co-Requisites for CS 500-549

Course Title Pre/Co-requisites
CS 511 Topics in Computer Graphics CS 411C
CS 512 Computer Vision CS 430C
CS 513 Geospatial Vision and Visualization
CS 520 Data Integration, Warehousing, and Provenance CS 425C
CS 521 Object-Oriented Analysis and Design (CS 445 or 487)C
CS 522 Data Mining CS 422C
CS 525 Advanced Database Organization CS 425C
CS 528 Data Privacy and Security
CS 529 Information Retrieval CS 429C
CS 530 Theory of Computation CS 430C
CS 531 Topics in Automata Theory CS 430C
CS 533 Computational Geometry CS 430C
CS 535 Design and Analysis of Algorithms CS 430C
CS 536 Science of Programming (CS 331 or 401)C
CS 537 Software Metrics CS 487C
CS 538 Combinatorial Optimization CS 430C
CS 539 Game Theory: Algorithms and Applications (CS 430 or 530)C
CS 540 Foundations of Programming Language Design CS 440C
CS 541 Topics in Compiler Construction CS 440C
CS 542 Computer Networks I: Fundamentals CS 455C
CS 544 Computer Networks II: Network Services (CS 542 or ECE 545)C
CS 545 Distributed Computing Landscape CS 450C
CS 546 Parallel and Distributed Processing (CS 430 and 450)C
CS 547 Wireless Networking CS 455C
CS 548 Broadband Networks CS 455C
CS 549 Cryptography and Network Security CS 430C

Pre/Co-Requisites for CS 550–549

Course Title Pre/Co-requisites
CS 550 Advanced Operating Systems CS 450C
CS 551 Operating System Design and Implementation CS 450C
CS 552 Distributed Systems CS 450C
CS 553 Cloud Computing (CS 450 or 455)C
CS 554 Data-Intensive Computing CS 450C
CS 555 Analytic Models and Simulation of Computer Systems CS 450C
CS 556 Cyber-Physical Systems: Languages and Systems
CS 557 Cyber-Physical Systems: Networking and Algorithms (CS 450 or 445 or 458)C
CS 558 Advanced Computer Security (CS 450 or 455 or 458)C
CS 559 Biometrics Working knowledge of Matlab or C/C++ is necessary
CS 560 Computer Science in the Classroom
CS 561 The Computer and Curriculum Content
CS 562 Virtual Machines (CS 450 or 551)C
CS 565 Computer-Assisted Instruction (CS 560 or CS 561)C
CS 566 Practicum in the Application of Computers to Education (CS 561 and 560)C
CS 570 Advanced Computer Architecture (CS 470 and 450)C
CS 572 Advanced Topics in Computer Architecture CS 570C
CS 577 Deep Learning CS 430C
CS 578 Interactive and Transparent Machine Learning (CS 422 and 430)C
CS 579 Online Social Network Analysis CS 430C
CS 580 Topics in Machine Learning
CS 581 Advanced Artificial Intelligence CS 480C
CS 582 Computational Robotics CS 430C
CS 583 Probabilistic Graphical Models
CS 584 Machine Learning CS 430C
CS 585 Natural Language Processing CS 430C
CS 586 Software Systems Architectures CS 487C
CS 587 Software Project Management CS 487C
CS 588 Advanced Software Engineering Development CS 487C
CS 589 Software Testing and Analysis CS 487C
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

Pre/Co-Requisites for CS 600-799 and CSP 500–599

Course Title Pre/Co-requisites
CS 612 Topics in Computer Vision CS 512C
CS 630 Advanced Topics in Algorithms CS 430C
CS 642 Advanced Topics in Networking CS 542C
CS 681 Topics in Computational Linguistics CS 585C
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 487C
CS 763 Automated Software Testing CS 487C
CSP 527 Client-Server Applications Development CS 425C
CSP 541 Internet Technologies CS 455C
CSP 542 Internet Design and Analysis CS 455C
CSP 543 Multimedia Networking CS 455C
CSP 544 System and Network Security (CS 430 and 455)C
CSP 545 Wireless Networking Technologies and Applications CS 542C
CSP 550 Internet Programming CS 450C
CSP 551 Advanced UNIX Programming CS 450C
CSP 554 Big Data Technologies CS 425C
CSP 570 Data Science Seminar
CSP 571 Data Preparation and Analysis (CS 401 and 425) and MATH 474
CSP 572 Data Science Practicum CSP 571C and CS 425 and (CS 584 or MATH 564 or MATH 569)C
CSP 581 Applied Artificial Intelligence Programming CS 440C
CSP 584 Enterprise Web Applications CS 445C
CSP 585 Object-Oriented Design Patterns CS 445C
CSP 586 Software Modeling and Development with UML (CS 445 or 487)C
CSP 587 Software Quality Management CS 487C
CSP 595 Topics in Computer Science Professional Master's