### Database Schema:
CREATE TABLE prof (
	prof_id	INTEGER	NULL	PRIMARY KEY,
	gender	TEXT	NULL,
	first_name	TEXT	NULL,
	last_name	TEXT	NULL,
	email	TEXT	NULL,
	popularity	INTEGER	NULL,
	teachingability	INTEGER	NULL,
	graduate_from	TEXT	NULL
);

CREATE TABLE RA (
	student_id	INTEGER	NULL	PRIMARY KEY,
	capability	INTEGER	NULL,
	prof_id	INTEGER	NULL	PRIMARY KEY,
	salary	TEXT	NULL,
	foreign key (student_id) references student (student_id),
	foreign key (prof_id) references prof (prof_id)
);

CREATE TABLE student (
	student_id	INTEGER	NULL	PRIMARY KEY,
	f_name	TEXT	NULL,
	l_name	TEXT	NULL,
	phone_number	TEXT	NULL,
	email	TEXT	NULL,
	intelligence	INTEGER	NULL,
	gpa	REAL	NULL,
	type	TEXT	NULL
);

CREATE TABLE registration (
	course_id	INTEGER	NULL	PRIMARY KEY,
	student_id	INTEGER	NULL	PRIMARY KEY,
	grade	TEXT	NULL,
	sat	INTEGER	NULL,
	foreign key (student_id) references student (student_id),
	foreign key (course_id) references course (course_id)
);

CREATE TABLE course (
	course_id	INTEGER	NULL	PRIMARY KEY,
	name	TEXT	NULL,
	credit	INTEGER	NULL,
	diff	INTEGER	NULL
);

### User's Query:
Calculate the GPA of the semester for Laughton Antonio.

### Extra Knowledge:
GPA of the semester = DIVIDE(SUM(MULTIPLY(credit, grade)), SUM(credit)); grade 'A' refers to gpa = 4; grade 'B' refers to gpa = 3; grade 'C' refers to gpa = 2; grade 'D' refers to gpa = 1;
SELECT CAST(SUM(T3.credit * CASE T1.grade WHEN 'A' THEN 4 WHEN 'B' THEN 3 WHEN 'C' THEN 2 WHEN 'D' THEN 1 ELSE 1 END) AS REAL) / COUNT(T3.credit) FROM registration AS T1 INNER JOIN student AS T2 ON T1.student_id = T2.student_id INNER JOIN course AS T3 ON T1.course_id = T3.course_id WHERE T2.f_name = 'Laughton' AND T2.l_name = 'Antonio'