Graduate Studies Reports Access

Graduate Course Proposal Form Submission Detail - COP6021
Tracking Number - 5040

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

Detail Information

  1. Date & Time Submitted: 2014-07-03
  2. Department: Computer Science and Engineering
  3. College: EN
  4. Budget Account Number: 2108
  5. Contact Person: Jay Ligatti
  6. Phone: 40908
  7. Email:
  8. Prefix: COP
  9. Number: 6021
  10. Full Title: Programming Languages: Design and Analysis
  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): Programming Languages
  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 the design and analysis of programming languages. Functional programming, deductive systems, operational semantics, type systems, and proofs of type safety.

  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 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.
  27. Has this course been offered as Selected Topics/Experimental Topics course? If yes, how many times? Yes, 2 times
  28. 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.
  29. Objectives: Students having successfully completed this course will understand the basic techniques of specifying, designing, and analyzing programming languages.
  30. Learning Outcomes: Students having successfully completed this course will understand the basic techniques of specifying, designing, and analyzing programming languages.
  31. 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.
  32. Textbooks: Required Textbook: Elements of ML Programming (ML97 edition), by J. Ullman, 1998

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

  33. Course Readings, Online Resources, and Other Purchases: All required readings will be from the required textbook listed above.
  34. Student Expectations/Requirements and Grading Policy: 20% Programming assignments (4% * 5 assignments)

    20% Theory assignments (5% * 4 assignments)

    60% Tests (20% * 3 tests)

  35. Assignments, Exams and Tests: There will be 5 programming assignments, 4 theory assignments, and 3 tests. Tests are closed books and notes.
  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: Computer Science and Engineering
  39. 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