School Database Schema

are the tables relationships sufficient or need to redesign it? Any problem with this basic schema? Is it sufficient for the system? How to Implement terms (Semester 1 and semester 2) as well as Years? What about when the year ends. How to transfer students to a new year (How to implement this)?

I hope to get some points on improvements or issues with the schema before start programming it.

enter image description here

Thank you

. . Edit: implementing John Herbert suggestions. . .

Implementing John points except of the last one because there are no departments in the school and the number of students really subjective to the year.

DB Schema After Editing

enter image description here

after implementing these things someone cant help but wander. Will i need to add indexes for performance in the future? Where will indexes possibly be needed ?

I hope this can benefit someone who is interested in DB design.