High Tech Programming

MATHSC 865 - Advanced Data Structures


Fall Semester, 2008
Instructor: Daniel D. Warner, 656-5244
Office: Martin Hall O-203,
Office Hours: 13:00 - 14:00 MWThF,
Classroom: Martin Hall M-305
Class Times: 10:10 - 11:00 MWF

Last updated on August 21, 2008.



Course Objectives

  1. To understand the different types of formal automata, their relative computational power, and their practical implementation.
  2. To learn how to use grammars and formal languages in specifying complex problem descriptions.
  3. To develop better skills in program design by viewing programs as an organization of automata and abstract data structures.


  1. Attendance is not mandatory, but you will be responsible for all material covered in class. Roll will be taken until I know all the students.
  2. The grade will be based on a mid-term exam and several projects. The mid-term exam will count as 25% of the grade. Most of the projects will be programming exercises. As a general rule projects which are not completed on time will not count toward the final grade.


Through the SafariU project sponsored by O'Reilly, this course has a required electronic textbook which consists of key sections from several different books. As a practical matter, you actually have access to an online bookshelf, which includes the complete text of each book from which sections have been selected. Surf to SafariU and subscribe to the online bookshelf, which O'Reilly refers to as an Online Syllabus. Click here for additional details about the books selected for your online bookshelf.


  1. Review of the Fundamentals of HTML.
    • HTML stands for Hypertext Markup Language. HTML tags are added to the basic text of a web page to tell the browser how to format the text, and what additional items to include on the displayed page. These additional items can include graphics, sound, animation, movies, 3D VR scenes, and Java applets.
  2. Overview of Java syntax,
  3. Abstract Data Types and Object Oriented Design.
  4. Inheritance and Polymorphism,
  5. Stacks, queues, priority queues, and collections.
  6. Tokens, strings, grammars and formal languages.
  7. Finite state machines, Push down automata, and Turing machines.
  8. Recursion and parsing.


If you have any questions, contact warner (at) clemson (dot) edu.