Introduction

Being a teacher is no easy job, particularly when it comes to talking about students’ performance and progress. Especially if you have fifty or so students and a short memory like I do. I had just started learning SQL and after mastering a few basic functions I began to think about how I can apply what I already know in the real-life scenarios. The school I work for has adopted a new regrouping policy which means a lot of students who do not do well (or do way better than the rest of the students) in their current class are urged to change the class. This way we can make sure that all the students in each group move with the same pace. I saw the opportunity to practice and advance my SQL skills and help myself and school make a decision on which students should change the group by collecting students’ grades putting them in a database and visualize findings. I also saw it as a way to keep track of students’ progress and being able to pinpoint aspects they struggle with the most.

Doing this project, I tried to answer the following questions:

  1. Which students should consider switching to a stronger or a weaker group ?
  2. Students of what age group I have the most of ?
  3. Number of students I share with each teaching assistant ?
  4. Which aspect of the language students of each age group struggle the most with ?

Database design

In order to start the project I had to decide on the data I need to collect that will subsequently define the schema of the database. The information I was going to collect was as following:

book id - abbreviated name of the student’s book with series (Go Above 1 - GA1)

book name* - full name of the book (Go Above 1)

class id - unique identification number of the class

class name* - name of the class (usually named after one of the students in that group)

student id - student’s identification number

student name* - student’s name

attendance date - date of attendance in a standard format YYYY-MM-DD

record id - identification number of each attendance record

unit and lesson - number of the unit and lesson that has been covered on a given date