Students must have experience using a keyboard and mouse in a GUI-based OS such as Microsoft Windows or Macintosh and understand how to download and install programs found on the Internet. Student must be familiar with principles of procedural programming, software development and debugging techniques, control structures, data types, functions, arrays, and file processing, can write, and understand, applications that make use of both server-side and client-side code, and communicate between the two over HTTP. Student is familiar with at least one popular database (MySQL).