Apply to USF Now | Graduate Admissions | Events & Workshops | Giving to the Office of Graduate Studies

Graduate Course Proposal Form Submission Detail - COP6625

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


  1. Department and Contact Information

    Tracking Number Date & Time Submitted
    4793 2013-08-12
     
    Department College Budget Account Number
    Computer Science and Engineering EN 00002108
     
    Contact Person Phone Email
    Jay Ligatti 8139740908 ligatti@cse.usf.edu

  2. Course Information

    Prefix Number Full Title
    COP 6625 Compilers

    Is the course title variable? N
    Is a permit required for registration? N
    Are the credit hours variable? N
    Is this course repeatable? N
    If repeatable, how many times? 0

    Credit Hours Section Type Grading Option
    3 C - Class Lecture (Primarily) R - Regular
     
    Abbreviated Title (30 characters maximum)
    Compilers
     
    Course Online? Percentage Online
    C - Face-to-face (0% online) 0

    Prerequisites

    Corequisites

    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.


  3. Justification

    A. Please briefly explain why it is necessary and/or desirable to add this course.

    Replacing Selected Topics with Permanent number; already listed in program

    B. 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.

    C. Has this course been offered as Selected Topics/Experimental Topics course? If yes, how many times?

    Yes, 3 or more times

    D. 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


  4. Other Course Information

    A. 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.

    B. 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.

    C. 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

    D. 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.

    E. Course Readings, Online Resources, and Other Purchases

    All required readings are from the course textbook.

    F. Student Expectations/Requirements and Grading Policy

    3 exams, worth a total of ~65%, plus 6 programming assignments, worth a total of ~35%.

    G. 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.

    H. 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,

    http://usfweb2.usf.edu/usfgc/ogc%20web/currentreg.htm)

    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: (http://usfweb2.usf.edu/usfgc/gc_pp/acadaf/gc10-045.htm)

    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.

    I. 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).

    J. Program This Course Supports

    PhD, Master's degrees in CSE, and proposed Certificate of Computer Security


  5. 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 chinescobb@grad.usf.edu or joe@grad.usf.edu.