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; e
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
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 |
8/27 |
|
2 |
9/1 |
9/3 |
|
3 |
9/8 |
9/10 Homework
Chap 4: p115 - 14(a-c), 49 |
|
4 |
9/15 Homework Search for Language Information |
9/17 |
|
5 |
9/22 Review for 1st Test |
9/24 |
|
6 |
9/29 |
10/1 |
|
7 |
10/6 Homework 5.7-8 (p181) |
10/8 Project 1
Due |
|
8 |
10/13 |
10/15 |
|
9 |
10/20 Homework
Chap 9: p402 - 2, 6, 7, 19 |
10/22 Review for 2nd Test |
|
10 |
10/27 |
10/29 |
|
11 |
11/3 |
11/5 Chapter 11 Part 1 |
|
12 |
11/10 Homework
Chap 11: p530 - 3, 4, 5, 8, 15, 17, 23, 24, 37, 43, 45 |
11/12 Lab - Lisp |
|
13 |
11/17 |
11/19 |
|
14 |
11/24 Homework Chap 7: p299 - 1, 2, 5, 14, 20-23, 49 |
11/26 |
|
15 |
12/1 Project 3 Due |
12/3 Review for Final Exam |
|
16 |
12/8 |
12/10 Final Exam 11:30am
– 2:00pm |