CS 4303 Programming Language Concepts

Fall 2009 (CRN: 10955, 3 credit hours, Class times: Tuesday-Thursday 11:30am-12:45pm)

Prerequisites: You must have a good working knowledge of C. All programs will be written using C, C++, and LISP. Prerequisites: CS3304, CIS 1301 or CS1305 and junior standing.

Instructor:   Dr. Hong Lin, Office: S-717, office phone: (713) 221 2781, email: linh@uhd.edu

Office hours: 2:00-4:30pm MTWR

Web page: http://cms.dt.uh.edu/faculty/linh/courses/CS4303

 

Textbook: Kenneth C. Louden, Programming Languages Principles and Practice, 2nd Edition, Thomson Brooks/Cole, 2003.

Catalog Description: The Object of this course is to provide a foundation in the concepts and implementation of modern programming languages. We will also cover imperative, functional, logic, and object-oriented programming paradigms. A programming assignment and a (depending on computing facility availability) closed lab is conducted for functional paradigm.

Course Topics:

Chapter 1. Introduction to languages and concepts

Chapter 2. History

Chapter 3. Languages and Design Principles

Chapter 4. Syntax

Chapter 5. Basic Semantics

Chapter 6. Data Types

Chapter 7. Control I - Expressions and Statements

Chapter 8. Control II - Procedures and Environments

Chapter 9. Abstract Data Types and Modules (optional)

Chapter 11. Functional Paradigm

Course Goal: This course is about design goals of major programming languages under the principles of their paradigms, and the implementations of programming languages, i.e., principles of compilation of imperative languages and interpretation of functional languages. Upon completion of this course, students should be able to:

 

1.

Understand language definition, abstractions, paradigms, basic knowledge about the history of programming languages and major design principles.

2.

Understand syntax definition and parsing techniques, including regular expressions, context-free grammars, parse trees and abstract syntax trees, syntax diagrams, and recursive descent parsing techniques.

3.

Understand semantic definition, including attributes, binding and scoping. Be able to use symbol tables and draw box-and-circle diagrams.

4.

Understand type systems, including type definition, type equivalence, type checking and type conversions.

5.

Understand control structures, including expressions, branching structures, looping structures, procedures, and exception handling.

6.

Understand functional programming paradigm. Be able to write functional programs in Lisp.

 

Grading Breakdown:

2 Tests 40% (20% each)

Final Exam 30%

3 Programming Assignments 20%

Labs and Participation 10%

 

Grading Scale:

90 -100 A, 80 - 89 B, 70 - 79 C, 60 - 69 D, Below 60 F

 

Academic Dishonesty: For this class, all work must be done individually -- no group work is allowed. You are encouraged to generally discuss assignments with fellow students, but may not copy their solution or code. Significant identicalness constitutes duplication. This includes but not be limited to: the main body of the programs are the same; only variable names are different; etc. Doing so constitutes academic dishonesty, which will be sanctioned with a grade of F in the course.

Class Policies: Students are responsible for the materials assigned from the book and the lecture notes. To pass this course a passing grade on both programming assignments and exams is required. Students are required to attend all classes on time. Absence, tardiness and early withdraw will be recorded and sanctioned in the "Quizzes and Participation" part of the course work. No makeup exams will be given. With the presence of the proof of emergency, the grade for one missing exam will be replaced by the grade of the final exam. Students are responsible for the materials assigned from the book and the lecture notes. To pass this course a passing grade on both programming assignments and exams is required. You are expected to turn in your own work on time. No late submission will be accepted. All missed grades will be recorded as zero.

General University Policies and Procedures: All students are subject to UH-Downtown's Academic Honesty Policy and to all other university-wide policies and procedures as they are set forth in the UH-Downtown University Catalog and Student Handbook. The Academic Honesty Code is embraced by all members of the University of Houston-Downtown academic community and is an essential element of the institution’s academic credibility. The Honesty Code states "We will be honest in all our academic activities and will not tolerate dishonesty." The purpose of the Academic Honesty Policy is to deal with alleged violations of the Honesty Code in a fair and consistent manner. The policy is administered jointly by students and faculty. It is each student's responsibility to read and understand the Academic Honesty Policy.  It may be found in the Student Handbook.

 

Statement on reasonable accommodations: UHD adheres to all applicable federal, state, and local laws, regulations, and guidelines with respect to providing reasonable accommodations for students with disabilities. Students with disabilities should be notified to register with Disabled Student Services and contact the instructor in a timely manner to arrange for appropriate accommodations.

 

Course Schedule

(This schedule is subject to update. You should check it regularly for assignments and due dates)

Week

Tuesday

Thursday

1

8/25
Chapter 1.1 - 1.3

8/27
Chapter 1.4 - 1.6

2

9/1

Chapter 4.1 - 4.2

9/3
Lab 1 - Scanner

3

9/8

Chapter 4.3 - 4.4

9/10
Chapter 4.5 - 4.7

Homework Chap 4: p115 - 14(a-c), 49

Lab 2 - Parser

Project 1 Handout

4

9/15
Chapter 2

Homework Search for Language Information

9/17

Chapter 3

5

9/22

Review for 1st Test

9/24
1st Test

6

9/29

Chapter 5.1 - 5.2

10/1
Chapter 5.3 - 5.4

7

10/6

Chapter 5.5 - 5.7

Homework 5.7-8 (p181)

10/8

Lab 3 - Blocks

Project 1 Due
Project 2 Handout

8

10/13
Chapter 6.1 - 6.2

10/15
Chapter 6.1 - 6.2

9

10/20
Chapter 6.3 - 6.4

Homework Chap 9: p402 - 2, 6, 7, 19

Lab – Chapter 6

10/22

Review for 2nd Test

10

10/27
2nd Test

10/29
Introduction to Lisp

11

11/3

Introduction to Lisp

Project 3 Handout

11/5

Chapter 11 Part 1
Project 2 Due

12

11/10

Chapter 11 Part 2

Homework Chap 11: p530 - 3, 4, 5, 8, 15, 17, 23, 24, 37, 43, 45

11/12

Chapter 11 Part 3

Lab - Lisp

13

11/17
No class

11/19
Chapter 7.1 - 7.3

14

11/24
Chapter 7.4, 7.5

Homework Chap 7: p299 - 1, 2, 5, 14, 20-23, 49

11/26
Thanksgiving holiday

15

12/1

Chapter 8 Part 1

Chapter 8 Part 2

Project 3 Due

12/3

Review for Final Exam

16

12/8

12/10

Final Exam 11:30am – 2:00pm