Hello jg-ht
jg-ht automatically suggest the recommended classes for the student
There are no such automatic recommendations. But students can consult the course database. For this, login as a student and go to Scheduling > Courses.
jg-ht a given semester and assign teachers and set the periods
Course setup (and marking period, grade scale, teacher, periods association) is done from the Scheduling > Courses program.
jg-ht is there a way to set how often a course will generally run?
Not exactly, but once a course is set up for school year 1, it will automatically be created for school year 2, after Rollover. You don't have to repeat configuration, it is passed from one school year to another.
jg-ht Can books be tied to a course
Not exactly again, but the Library Premium module allows you to restrict access to categories of documents based on student grade level.
Generally speaking, you can follow the Quick Setup Guide and see if it fits. For this, you can use the demo.