Graduate Course Proposal Form Submission Detail - COP6625
Edit function not enabled for this course.
Approved by SCNS
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
- 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 Jay Ligatti 8139740908 firstname.lastname@example.org
- 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
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.
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
- Other Course Information
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
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,
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. It’s 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
- 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.