C language course design