I don't understand this error:
Caused By : SQL(query) error or missing database. (no such table: evaluation (code 1): , while compiling: SELECT _id, evaluation_subject, weight, mark, course_id FROM evaluation)
EvaluationDAO.java
    import android.app.ListFragment;
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.util.Log;
    import java.util.ArrayList;
    import java.util.List;
public class EvaluationDAO {
    public static final String TAG = "EvaluationDAO";
    private Context context;
    private SQLiteDatabase database;
    private DBHelper dbHelper;
    private String[] allColumns = { DBHelper.COLUMN_EVALUATION_ID,
            DBHelper.COLUMN_EVALUATION_SUBJECT,
            DBHelper.COLUMN_EVALUATION_WEIGHT,
            DBHelper.COLUMN_EVALUATION_MARK,
            DBHelper.COLUMN_EVALUATION_COURSE_ID
    };
    public EvaluationDAO(Context context){
        dbHelper = new DBHelper(context);
        this.context = context;
        try{
            open();
        } catch(SQLException e){
            Log.e(TAG, "SQLException on openning database " + e.getMessage());
            e.printStackTrace();
        }
    }
    public void open() throws SQLException{
        database = dbHelper.getWritableDatabase();
    }
    public void close(){
        dbHelper.close();
    }
public ArrayList<Evaluation> getAllEvaluations(){
        ArrayList<Evaluation> listEvaluation = new ArrayList<Evaluation>();
        Cursor cursor = database.query(DBHelper.TABLE_EVALUATIONS, allColumns, null, null,
                null, null, null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast()){
            Evaluation evaluation = cursorToEvaluation(cursor);
            listEvaluation.add(evaluation);
            cursor.moveToNext();
        }
        cursor.close();
        return listEvaluation; 
 }
HBHelper.java
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DBHelper extends SQLiteOpenHelper {
    public static final String TAG = "DBHelper";
    private static final String DATABASE_NAME = "courses.db";
    private static final int DATABASE_VERSION = 1;
    //Columns of the course table
    public static final String TABLE_COURSES = "course";
    public static final String COLUMN_COURSE_ID = "_id";
    public static final String COLUMN_COURSE_SUBJECT = "COURSE_SUBJECT";
    public static final String COLUMN_COURSE_MARK = "mark";
    public static final String TABLE_EVALUATIONS = "evaluation";
    public static final String COLUMN_EVALUATION_ID = COLUMN_COURSE_ID;
    public static final String COLUMN_EVALUATION_SUBJECT = "evaluation_subject";
    public static final String COLUMN_EVALUATION_MARK = "mark";
    public static final String COLUMN_EVALUATION_WEIGHT = "weight";
    public static final String COLUMN_EVALUATION_COURSE_ID = "course_id";
    private static final String SQL_CREATE_TABLE_COURSES = "CREATE TABLE " + TABLE_COURSES + "("
            + COLUMN_COURSE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_COURSE_SUBJECT + " TEXT NOT NULL, "
            + COLUMN_COURSE_MARK + " TEXT NOT NULL " + ");";
    private static final String SQL_CREATE_TABLE_EVALUATION = "CREATE TABLE " + TABLE_EVALUATIONS + "("
            + COLUMN_EVALUATION_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_EVALUATION_SUBJECT + " TEXT NOT NULL, "
            + COLUMN_EVALUATION_MARK + " TEXT NOT NULL, "
            + COLUMN_EVALUATION_WEIGHT + " TEXT NOT NULL, "
            + COLUMN_EVALUATION_COURSE_ID + " INTEGER NOT NULL "
            +");";
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(SQL_CREATE_TABLE_COURSES);
        database.execSQL(SQL_CREATE_TABLE_EVALUATION);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG,
                "Upgrading the database from version " + oldVersion + " to "+ newVersion);
        // clear all data
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_COURSES);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_EVALUATIONS);
        // recreate the tables
        onCreate(db);
    }
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
    }
}
