M. Shafae

‘It is better to incur a mild rebuke than to perform an onerous task’ - Uncle Oswald


Michael Shafae is a member of the faculty at California State University, Fullerton. At the moment, he is an associate professor and the department chair in the Computer Science Department in the College of Engineering & Computer Science.

He received his Ph.D. from the School of Information & Computer Science at the University of California, Irvine. His thesis advisor was Renato Pajarola.

Pages related to the courses he teaches at CSUF are located at elsewhere. And the page related to the instructional resources he provides are over there. He also operates an unofficial Wiki for his department. His office hours are posted. (Please note that he uses self-signed certificates; if you trust him, please consider adding his certificate authority to your key chain.)

Receiving a card or a postcard in the mail always makes his day. If you wish to express thanks in something more tangible than a postcard but less liquid than cash, please refer to his Amazon.com wish list. Or just make him a mix tape.

He does not always refer to himself in the third person. But when he does, he drinks Dos Equis.

Sweet Tweets

Instructional Resources

Development Environment

Students may find setting up a software development environment foreign and unnecessarily complicated. As a public service, a virtual machine (VM) image has been posted which includes all the required tools, libraries, header files, etc. for creating, debugging and submitting your homework assignments.

The requirements are the following:

  • A recent Intel or AMD processor (VT-x/AMD-V extension support required)
  • At least 8 GB of RAM
  • A 64 bit host operating system (Apple's OS X 10.7 or greater; Microsoft's Windows XP 64 bit or newer)
  • VirtualBox version 5 or greater (not version 4)

You'll need to know if your host operating system is 32 bit or 64 bit and what kind of processor you are using.

Your processor needs to support the VT-x/AMD-V extension. If your processor supports these instructions yet does not allow you to boot the VM, then the instructions may be disabled from your computer's BIOS. Check the settings of your BIOS and, if needed, update your system's BIOS to enable the instructions.

Import the '.ova' file into VirtualBox to create a new VM.

To log in, use the username 'me' and the password 'me123'.

The VM images include GCC, CLANG/LLVM, Python2, Python3, Common Lisp, Java, NASM, SQLite3, subversion, git, graphviz, virtualenv, pip, FreeImage, FREEGLUT, GLFW3, GLEW, and Google's cloud services APIs.

Unbuntu MATE 64 bit (amd64) VM for VirtualBox 5, release 2017-01-22 4.3 GB [On Campus Download][Dropbox.com Link]

MD5 (CSUF_Ubuntu_Mate_16_04_01_amd64_20170122.ova) = aff125af9f5e4f1ef5569e57312ed6ed

Unbuntu MATE 32 bit (i386) VM for VirtualBox 5, release 2017-01-22 4.1 GB [On Campus Download][Dropbox Link]

MD5 (CSUF_Ubuntu_Mate_16_04_01_i386_20170122.ova) = 5748677cfaafaa8ac025bbe67e1958d1

Install Scripts

If you do not want to use the VM posted on this page but would like to install the neccessary software to get your homework done, then there are a few scripts that you can use that will install packages that would typically satisfy your development needs for the topic given below. Be aware that the scripts target a Debian-style *nix system such as Debian and Ubuntu.

After downloading the script to your Debian-style *nix system, execute the script using sudo. For example sudo sh ./ubuntu_graphicsdev.

Binary Libraries

The Titan OpenGL Kit includes FreeImage, GLEW, GLFW3, GLI, GLM, Google Test, and the Red Book examples. It is meant for students who are capable of modifying their development environment to have projects link against third-party libraries. Students who are not comfortable using a binary library are strongly urged to use the instructor provided VM which includes these libraries.

Titan OpenGL Kit for OS X 11MB (20150123)

MD5 (TitanOpenGLKit_osx.zip) = 8a8a3b48498c0e5948c8c7a16d9f58d3

Titan OpenGL Kit for MS Windows 7.6MB (20150120)

MD5 (TitanOpenGLKit_win.zip) = 49cb91e3dd8cc612ed8a5ceba67b1b20


Send him an email. Write him a letter.
He loves postcards.

Office: +1-657-278-3291

Not the office: +1-310-526-3842

Postal Address
Department of Computer Science (CS-522)
P.O. Box 6870
Fullerton, CA 92834