CS 5318 (CRN 36387/36388) Spring 2019

Principles of Programming Languages

Syllabus

Credit Hours

3

 

Class Meeting Time

TR 5:00PM - 6:20PM 

 

Class Meeting Place

DERR 114-C / AVRY 365

 

Instructor

Dr. Hongchi Shi (hs15@txstate.edu) 

Office: Comal 211 

 

Prerequisites

·       CS 3358 (Data Structures)

·       Graduate standing
(programming skills with multiple languages)

 

Textbooks

·       K.C. Louden and K.A. Lambert, Programming Languages: Principles and Practice, 3rd Edition, Cengage Learning, 2012.

·       B.J. Evans and D. Flanagan, Java in a Nutshell, 7th Edition, O'Reilly, 2019 (available via O’Reilly Safari).

 

Recommended Book

K. Slonneger and B. Kurtz, Formal Syntax and Semantics of Programming Languages, Addison-Wesley, 1995 (available at http://homepage.divms.uiowa.edu/~slonnegr/plf/Book/). 

 

Course Objectives

To convey the central principles in specifying, designing, and implementing programming languages. To review important programming paradigms including imperative, object-oriented, functional, logic, and concurrent programming. 

 

Course Description

This course focuses on the principles of programming languages. Topics covered include programming paradigms, concepts of programming languages, formal syntax and semantics, and language implementation issues.

 

Course Outline by Topical Area

·       Preliminary (introducing Java)

·       Syntax and parsing

·       Attribute grammars

·       Data types

·       Language support for modularity

·       Parameter passing

·       Exceptions

·       Polymorphism

·       Object-oriented programming

·       Lambda calculus

·       Functional programming

·       Denotational semantics

·       Axiomatic semantics

·       Logic programming

·       Concurrent programming

 

Course Requirements

Your taking the course will involve four forms of activities:

1.      Attending and participating in lectures

2.      Doing assigned reading from the textbooks, papers, and supplementary materials

3.      Doing assigned homework/programming assignments

4.      Taking exams

 

Tentative Grading Scheme

·       Homework (20%)

Various exercises (typed)

·       Programming Assignments (35%)

Implementation of a lambda calculus evaluator 

Other smaller assignments 

·       One Midterm Examination (15%)

·       Final Examination (25%)

·       Participation (5%)

 

Course TRACS Site

https://tracs.txstate.edu/ (201930.CS5318) 

 

Facilities

·       Programming assignments will be done on the remote Linux servers (zeus.cs.txstate.edu) and submitted through TRACS.

·       Programming assignments will be tested for grades on zeus.cs.txstate.edu. So, you should submit your programs only after you make sure they run on zeus.cs.txstat.edu.

 

Academic Honesty

Academic honesty is fundamental to the activities and principles of a university. All members of the academic community must be confident that each person's work has been responsibly and honorably acquired, developed, and presented. Any effort to gain an advantage not given to all students is dishonest whether or not the effort is successful. The academic community regards academic dishonesty as an extremely serious matter, with serious consequences that range from probation to expulsion. When in doubt about plagiarism, paraphrasing, quoting, or collaboration, consult the course instructor.

 

All work submitted for a grade must be your own. As a guideline, you may talk together, but do not write together. This course will adhere to the Texas State Honor Code, and the Texas State and Department of Computer Science policies on Academic Honesty. 

 

Attendance

Regular and punctual attendance is mandatory. It is your responsibility to know what goes on during class. Disruptive late arrivals, disruptive use of electronic devices and other uncivil behavior will not be tolerated. 

 

Texas State Email Account

Email concerning this class may be sent to students' Texas State accounts, and students are expected to have and to monitor their Texas State accounts, either directly or by forwarding from the account. 

 

Academic Policies

See the graduate catalog for more information about Texas State Academic Policies including probation, suspension, academic honesty, dropping a class, incomplete grades, grade changes, and withdrawals from the university. 

 

Drop Policy

All drops are done through CATSWEB. It is your responsibility to be familiar with the University policy on dropping classes as described in the Graduate catalog, to observe relevant deadlines, and to follow proper procedures for dropping classes. Students contemplating dropping this class are expected to consult with the instructor beforehand. The last day to drop is April 2. 

 

Special Needs

Students having special needs/disabilities which require accommodations for the successful completion of this course must notify the office of Disability Services no later than the end of the first week of class. Failure to do so in a timely manner may result in accommodation not being available when needed. The office of Disability Services will verify the special needs of the student and determine accommodations as needed. In addition to the above, the student should make an appointment with the faculty member to discuss their needs and accommodations.