Covered definitions and implementations of several data structures
Covered algorithms across various fields of computer science, including Graph Theory, Dynamic Programming, encryption, and more.
Covered computational theory material such as finite state machines, turing machines, and proving solvability.
Students were put into groups, and used Agile software engineering practices to create a functional program by the end of the semester
Covered practical skills of software quality assurance such as automated and manual testing, creating test cases, and more.
Used OpenGL to teach basic theory of using GPUs, creating shapes manually and dynamically, generating perspective, and computing dynamic lighting.