Prerequisites and Out of Sequence Courses
About the CSCI 402 – Operating Systems Prerequisite
About the EE 450 – Computer Networks Prerequisite
CSCI Prerequisite Chart


Important Note: Only the CS Faculty have the ability to waive, add, and/or change prerequisites for the courses they teach.  Permission to waive a prerequisite must come from the instructor of the course, not your CS Advisor.   There are no waiver examinations for CSCI courses.

Prerequisites and Out of Sequence Courses

Prerequisites are courses that must be passed and/or specific background that must be demonstrated prior to advancing to the next course in a prescribed sequence of courses. Passage of appropriate examinations or consent of the academic unit offering the course will waive prerequisites. However, a prerequisite course within the same discipline taken after the higher level course has been passed will not be available for unit or grade point credit.

Examples:

If you are taking CSCI-530 (or CSCI-555) this semester and had the prerequisite of CSCI-402 waived, then you cannot take CSCI-402 in the future for GPA or Unit Credit.

If you are taking CSCI-586 because the professor deemed it appropriate to waive CSCI-585 for you, then you can never take CSCI-585 for GPA or Unit Credit.

If you take CSCI-548 because the professor deemed it appropriate to waive CSCI-561 and/or CSCI-585 for you, then you can never take CSCI-561 and/or CSCI-585 for GPA or Unit Credit.

Once you complete the higher level course, you cannot go back and take the lower level course. This would be considered out of sequence and the lower level course will not count in your degree.

About the CSCI 402 – Operating Systems Prerequisite:

ALL Computer Science (CSCI) Majors:
For CSCI students that are interested in the following courses: CSCI 530, CSCI 551, CSCI 555, and CSCI 588L, the department will waive the CSCI 402 prerequisite if the student has completed an operating systems course during his/her undergraduate degree.  If he/she has not completed an OS course during the bachelor’s degree, then the student is required to complete CSCI 402 here at USC and earn a grade of “C” or better.  Students in Scientists & Engineers are required to take CSCI 402 and cannot have it waived off.

NON-Computer Science Majors:
For Non-Computer Science Majors who are interested in the following courses: CSCI 530, CSCI 551, CSCI 555, and CSCI 558L, you must complete CSCI 402 here at USC and earn a grade of “C” or better.  We will not grant any waivers.  There is no placement examination.

About the EE 450 – Computer Networks Prerequisite:

The department will not waive the EE 450 prerequisite for CSCI 551 or CSCI 558L.  All students (CS and non-CS) are still required to either pass the EE 450 placement examination or complete EE 450 here at USC and earn a grade of “C” or better

EE Placement Examination Information


 Common CS Prerequisites

If you want to take…You must first successfully complete…
CSCI 520 – Computer Animation and SimulationCSCI 480 – Computer Graphics OR
CSCI 580 – 3D Graphics and Rendering
CSCI 530 – Security SystemsCSCI 402 – Operating Systems OR
Request a waiver if you are a CS student and completed an Operating Systems course for your undergraduate degree.
CSCI 548 – Information Integration on the WebCSCI 561 – Foundations of Artificial Intelligence
Recommended preparation: CSCI 585
CSCI 550 – Advanced Data StoresCSCI 585 – Database Systems
CSCI 551 – Computer CommunicationsEE 450 – Introduction to Computer Networks or pass the placement exam.
AND
CSCI 402 – Operating Systems OR
Request a waiver if you are a CS student and completed an Operating Systems course for your undergraduate degree.
CSCI 555 – Advanced Operating SystemsCSCI 402 – Operating Systems OR
Request a waiver if you are a CS student and completed an Operating Systems course for your undergraduate degree.
CSCI 558 – Internetworking and Distributed Systems LaboratoryEE 450 – Introduction to Computer Networks or pass the placement exam.
AND
CSCI 402 – Operating Systems OR
Request a waiver if you are a CS student and completed an Operating Systems course for your undergraduate degree.
CSCI 586 – Database Systems InteroperabilityCSCI 585 – Database Systems
CSCI 587 – Geospatial Information ManagementCSCI 585 – Database Systems
CSCI 653 – High Performance Computing and SimulationsCSCI 596 – Scientific Computing and Visualization OR
CSCI 580 – 3D Graphics and Rendering
CSCI 670 – Advanced Analysis of AlgorithmsCSCI 570 – Analysis of Algorithms OR
You may choose to waive CSCI 570 and complete CSCI 670 for your degree requirement instead.
CSCI 685 – Advanced Topics in Database SystemsCSCI 585 – Database Systems
CSCI 686 – Big Data AnalyticsCSCI 567 – Machine Learning