course list - creating the client-side code
course list - creating the server-side code
course list - filtering and sorting
caching data