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

Graduate Course Proposal Form Submission Detail - COP6021

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 6020 approved as 6021. Effective 2/1/15

  1. Department and Contact Information

    Tracking Number Date & Time Submitted
    5040 2014-07-03
    Department College Budget Account Number
    Computer Science and Engineering EN 2108
    Contact Person Phone Email
    Jay Ligatti 40908

  2. Course Information

    Prefix Number Full Title
    COP 6021 Programming Languages: Design and Analysis

    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)
    Programming Languages
    Course Online? Percentage Online
    C - Face-to-face (0% online) 0



    Course Description

    In-depth, graduate-level study of the design and analysis of programming languages. Functional programming, deductive systems, operational semantics, type systems, and proofs of type safety.

  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 has been taught at USF twice so far as a special-topics course (CIS 6930). It is scheduled to be taught a third time as a CIS 6930 course this Fall (2014). After these 3 iterations as a special-topics course, it should have its own, dedicated course number. A course number of 6020 would complement the existing undergraduate Programming Languages course, which is COP 4020.

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

    Yes, 2 times

    D. What qualifications for training and/or experience are necessary to teach this course? (List minimum qualifications for the instructor.)

    Doctorate and expertise in the area of programming-language design and analysis.

  4. Other Course Information

    A. Objectives

    Students having successfully completed this course will understand the basic techniques of specifying, designing, and analyzing programming languages.

    B. Learning Outcomes

    Students having successfully completed this course will understand the basic techniques of specifying, designing, and analyzing programming languages.

    C. Major Topics

    Syntax, operational semantics, type systems, type safety, lambda calculus, functional programming, polymorphism, aggregate data types (product, sum, and recursive types), and side effects.

    D. Textbooks

    Required Textbook: Elements of ML Programming (ML97 edition), by J. Ullman, 1998

    Recommended Textbook: Types in Programming Languages, by Benjamin Pierce, 2002

    E. Course Readings, Online Resources, and Other Purchases

    All required readings will be from the required textbook listed above.

    F. Student Expectations/Requirements and Grading Policy

    20% Programming assignments (4% * 5 assignments)

    20% Theory assignments (5% * 4 assignments)

    60% Tests (20% * 3 tests)

    G. Assignments, Exams and Tests

    There will be 5 programming assignments, 4 theory assignments, and 3 tests. Tests are closed books and notes.

    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: (

    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

    Computer Science and Engineering

  5. Course Concurrence Information

    This course could serve as an elective in the new Master's of Cybersecurity program, due to the course's emphasis on type safety in programming languages.

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