Graduate Studies Reports Access

Graduate Course Proposal Form Submission Detail - COP6625
Tracking Number - 4793

Edit function not enabled for this course.

Current Status: Approved by SCNS - 2015-02-01
Campus: Tampa
Submission Type: New
Course Change Information (for course changes only):
Comments: In review 9/4/14; to GC. Approved. To USF Sys 11/4; to SCNS 11/12. Nmbr 6623 approved as 6625. Effective 2/1/15

Detail Information

  1. Date & Time Submitted: 2013-08-12
  2. Department: Computer Science and Engineering
  3. College: EN
  4. Budget Account Number: 00002108
  5. Contact Person: Jay Ligatti
  6. Phone: 8139740908
  7. Email:
  8. Prefix: COP
  9. Number: 6625
  10. Full Title: Compilers
  11. Credit Hours: 3
  12. Section Type: C - Class Lecture (Primarily)
  13. Is the course title variable?: N
  14. Is a permit required for registration?: N
  15. Are the credit hours variable?: N
  16. Is this course repeatable?: N
  17. If repeatable, how many times?: 0
  18. Abbreviated Title (30 characters maximum): Compilers
  19. Course Online?: C - Face-to-face (0% online)
  20. Percentage Online: 0
  21. Grading Option: R - Regular
  22. Prerequisites:
  23. Corequisites:
  24. Course Description: In-depth, graduate-level study of compiler design and implementation. Lexical, syntactic, and semantic analysis. Type safety. Code generation. Run-time support. Garbage collection. Code optimizations.

  25. Please briefly explain why it is necessary and/or desirable to add this course: Replacing Selected Topics with Permanent number; already listed in program
  26. What is the need or demand for this course? (Indicate if this course is part of a required sequence in the major.) What other programs would this course service? This course exists as a CIS 6930 (special topics) and has been taught once every 2 years since Fall 2007 in USF's CSE department.

    Our department is also proposing a graduate certificate in Computer Security and would like to make this course (or a Programming Languages alternate) required for the certificate.

  27. Has this course been offered as Selected Topics/Experimental Topics course? If yes, how many times? Yes, 3 or more times
  28. What qualifications for training and/or experience are necessary to teach this course? (List minimum qualifications for the instructor.) PhD, specialization in compilers or programming languages
  29. Objectives: Upon successful completion of the course, a student will be able to: (1) design and implement a working compiler from scratch, from a high-level source language to a low-level assembly language, and (2) understand, be able to communicate, and be able to solve problems related to the theory of compilers, including tokenization, regular expressions, parsing, context-free grammars, type checking, garbage collection, and code optimizations.
  30. Learning Outcomes: Upon successful completion of the course, a student will be able to demonstrate attainment of the course objectives by developing a working compiler from scratch (using compiler-generator tools like flex and bison), solving compiler-related problems, and write explanations of how compilers are designed and implemented.
  31. Major Topics: 1. Phases of compilation 2. Regular expressions, finite automata, lexical analysis 3. Context-free grammars, syntactic analysis 4. Semantic analysis 5. Code generation 6. Run-time support, garbage collection 7. Code optimizations
  32. Textbooks: Many good compilers textbooks exist. We have been using Kenneth Louden's "Compiler Construction" (PWS Publishing, 1997) since beginning to offer this course as CIS 6930 in Fall 2007.
  33. Course Readings, Online Resources, and Other Purchases: All required readings are from the course textbook.
  34. Student Expectations/Requirements and Grading Policy: 3 exams, worth a total of ~65%, plus 6 programming assignments, worth a total of ~35%.
  35. Assignments, Exams and Tests: Exams are cumulative and cover all material discussed in class and in readings. The programming assignments build up a working compiler.
  36. Attendance Policy: Course Attendance at First Class Meeting Policy for Graduate Students: For structured courses, 6000 and above, the College/Campus Dean will set the first-day class attendance requirement. Check with the College for specific information. This policy is not applicable to courses in the following categories: Educational Outreach, Open University (TV), FEEDS Program, Community Experiential Learning (CEL), Cooperative Education Training, and courses that do not have regularly scheduled meeting days/times (such as, directed reading/research or study, individual research, thesis, dissertation, internship, practica, etc.). Students are responsible for dropping undesired courses in these categories by the 5th day of classes to avoid fee liability and academic penalty. (See USF Regulation Registration - 4.0101,

    Attendance Policy for the Observance of Religious Days by Students: In accordance with Sections 1006.53 and 1001.74(10)(g) Florida Statutes and Board of Governors Regulation 6C-6.0115, the University of South Florida (University/USF) has established the following policy regarding religious observances: (

    In the event of an emergency, it may be necessary for USF to suspend normal operations. During this time, USF may opt to continue delivery of instruction through methods that include but are not limited to: Blackboard, Elluminate, Skype, and email messaging and/or an alternate schedule. Its the responsibility of the student to monitor Blackboard site for each class for course specific communication, and the main USF, College, and department websites, emails, and MoBull messages for important general information.

  37. Policy on Make-up Work: Students must arrange make-up work with the instructor. In all cases, students must adhere to the University Policy on Academic Integrity (please refer to the USF Graduate Catalog for details).
  38. Program This Course Supports: PhD, Master's degrees in CSE, and proposed Certificate of Computer Security
  39. Course Concurrence Information: This course is an elective for the CSE department's PhD and Master's degrees.

    This course (or a Programming Languages alternate) is also required for our proposed Certificate of Computer Security.

- if you have questions about any of these fields, please contact or