Your task is to do this completely and successfully. The program must run perfectly with out any errors. It must be efficient.

First off for context, here are the directions that were given:
Write a program to build a schedule for a small school. You will ultimately need to figure out:

A schedule for each student
A schedule for each teacher
A roster for each teacher’s sections
Whether or not we need to hire another teacher and what that teacher would need to teach

Scheduling Requirements:
Every full-time teacher teaches 3 classes per day
Every student takes all 4 of their classes every day
Section sizes → 
Minimum: 5 students
Maximum: 30 students
A teacher may teach any course within their department, but no courses outside their department

Programming Minimum Requirements:
Make use of Python Dictionaries (key-value pairs)
Include a Student class with the defined functions:
__init__ → name, courses
set_name
get_name
add_courses
get_courses
You may add anything else you deem necessary
Include a Teacher class with the defined functions:
__init__ → name, courses, department
set_name
get_name
set_department
get_department
add_courses
get_courses
You may add anything else you deem necessary



For more context, here is the csv file titled Schedule Builder - Students.csv:
Student Name,English Course Recommendation ,Science Course Recommendation ,Math Course Recommendation ,History Course Recommendation 
Maria,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Haley,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Ryan,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History Two
Andrei,Level 2.5,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History Two
Timothe,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Marvin,Level 3,Sheltered Chemistry,Mainstream Math Course,Mainstream History Course
Genesis,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Ashley,Level 3,Mainstream Science Course,Sheltered Geometry,Sheltered U.S. History Two
Rachelle,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Katia,Level 2,Mainstream Science Course,Sheltered Geometry,Sheltered U.S. History Two
Jorge,Level 3,Mainstream Science Course,Sheltered Algebra Two,Sheltered U.S. History Two
Juan,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Rosa,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Felipe,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Jennifer,Level 2,Sheltered Chemistry,Sheltered Algebra Two,Sheltered U.S. History Two
Andrea,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History Two
Luis,Level 2,Sheltered Chemistry,Sheltered Algebra Two,Sheltered U.S. History Two
Eddy,Level 2.5,Sheltered Biology One,Sheltered Geometry,Sheltered U.S. History Two
Liza,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Shoshana,Level 2.5,Sheltered Chemistry,Sheltered Pre-Algebra,Sheltered U.S. History Two
Carlos,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Jesus,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Mohammed,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Naya,Level 3,Mainstream Science Course,Sheltered Algebra Two,Sheltered U.S. History Two
Francisco,Level 2,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History Two
Jacques,Level 2,Sheltered Biology Two,Sheltered Geometry,Mainstream History Course
Abdi,Level 2,Sheltered Biology Two,Sheltered Algebra Two,Sheltered U.S. History One
Trinity,Level 2,Sheltered Biology One,Sheltered Geometry,Sheltered U.S. History One
Aleksandr,Level 2,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History One
Giovanna,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History One
Giuliana,Level 2,Sheltered Biology Two,Sheltered Pre-Algebra,Sheltered U.S. History One
Hullerie,Level 3,Mainstream Science Course,Sheltered Algebra Two,Mainstream History Course
Sara,Level 2.5,Sheltered Chemistry,Sheltered Algebra Two,Sheltered U.S. History Two
David,Level 2,Sheltered Chemistry,Sheltered Algebra One,Sheltered U.S. History Two
Paolo,Level 2,Mainstream Science Course,Sheltered Algebra One,Sheltered U.S. History Two
Ferdinand,Level 2,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History Two
Fernando,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Lucia,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Lucas,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Damien,Level 2.5,Sheltered Chemistry,Sheltered Algebra One,Sheltered U.S. History Two
Boris,Level 2.5,Sheltered Chemistry,Sheltered Algebra One,Sheltered U.S. History One
Sabrina,Level 2,Sheltered Biology Two,Sheltered Algebra Two,Sheltered U.S. History Two
Sabyne,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Miqueli,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History Two
Nicolly,Level 2,Sheltered Chemistry,Sheltered Algebra One,Sheltered U.S. History One
Nicolas,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History Two
Jaime,Level 2,Sheltered Biology Two,Sheltered Pre-Algebra,Sheltered U.S. History One
Daniel,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History Two
Daniela,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Michelle,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Carson,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Janaya,Level 2,Sheltered Biology One,Sheltered Pre-Algebra,Sheltered U.S. History Two
Janja,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Maria Fernanda,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History Two
Rafael,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Rafaela,Level 3,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History Two
Yves,Level 2.5,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Eva,Level 2.5,Sheltered Chemistry,Sheltered Algebra Two,Sheltered U.S. History Two
Amalia,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Denis,Level 2.5,Sheltered Chemistry,Sheltered Pre-Algebra,Sheltered U.S. History Two
Thelma,Level 2.5,Mainstream Science Course,Sheltered Geometry,Sheltered U.S. History Two
Esther,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Roberto,Level 3,Mainstream Science Course,Sheltered Algebra Two,Mainstream History Course
Diogo,Level 2,Sheltered Biology One,Sheltered Pre-Algebra,Sheltered U.S. History Two
Diego,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Samuel,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Harriet,Level 2.5,Mainstream Science Course,Sheltered Algebra One,Sheltered U.S. History Two
Cassie,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Chandra,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History Two
Louis,Level 3,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Marc,Level 2.5,Sheltered Biology One,Sheltered Geometry,Sheltered U.S. History Two
Michael,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History One
Jan Carlos,Level 2,Sheltered Chemistry,Sheltered Algebra One,Sheltered U.S. History One
Brayan,Level 2.5,Sheltered Biology One,Sheltered Geometry,Sheltered U.S. History Two
Martin,Level 3,Mainstream Science Course,Mainstream Math Course,Sheltered U.S. History Two
Simone,Level 2,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History One
Emilia,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Emillie,Level 2.5,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History One
Catherine,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History Two
Darwin,Level 2,Sheltered Biology One,Sheltered Geometry,Sheltered U.S. History Two
Fiorella,Level 3,Mainstream Science Course,Mainstream Math Course,Sheltered U.S. History Two
Carmelo,Level 3,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History Two
Savanna,Level 2,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History One
Emilio,Level 3,Mainstream Science Course,Mainstream Math Course,Sheltered U.S. History Two
Antonio,Level 2,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History One
Steve,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Rosabella,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Isadora,Level 2,Sheltered Chemistry,Sheltered Algebra Two,Sheltered U.S. History One
Minnie,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Pedro,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Pierre,Level 3,Mainstream Science Course,Sheltered Geometry,Mainstream History Course
Isaiah,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Kayla,Level 2.5,Sheltered Chemistry,Sheltered Geometry,Sheltered U.S. History Two
Adriana,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History One
Jamily,Level 2,Sheltered Biology Two,Sheltered Geometry,Sheltered U.S. History One
Chiara,Level 3,Mainstream Science Course,Mainstream Math Course,Mainstream History Course
Charlotte,Level 2,Sheltered Biology One,Sheltered Algebra One,Sheltered U.S. History One
Zach,Level 2,Sheltered Biology Two,Sheltered Algebra One,Sheltered U.S. History Two


Here is the other csv file titled Schedule Builder - Teachers.csv:
Teacher,Department
Orion,English
Leonard,English
Clovis,English
Hartford,English
Simiczek,Math
Rodrigues,Math
Martinez,Math
Canton,Math
Thibault,History
Lord,History
Vu,History
Bergerone,History
Domenico,Science
Daley,Science
Lopez,Science
DeMendonca,Science