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.