CSCE 330: PROGRAMMING LANGUAGE STRUCTURES

 

Catalog Description:

330—Programming Language Structures. (4) (Prereq: CSCE 245) Formal specification of syntax and semantics; structure of algorithms; list processing and string manipulation languages; statement types, control structures, and interfacing procedures.

 

Prerequisite(s) By Topic:

Algorithmic design

Discrete mathematics

Knowledge of an imperative object-oriented language (e.g., Java or C++)

Classical data structures

 

Textbook(s) and Other Required Material:

Concepts of Programming Languages, 4th edition, Robert W. Sebesta, Addison Wesley, 1999. 

Language-specific manuals or primers, such as Elements of ML Programming, ML97 edition, Jeffrey D. Ullman, Prentice-Hall, 1998.

 

 

Computing Platform: Unix, Windows 2000

 

Course Objectives: {Assessment Methods Shown in Braces}

1.      Categorize a language as imperative (procedural), functional (applicative) or declarative (logic). {homework, tests}

2.      Understand and use syntax descriptions in EBNF. {homework, tests}

3.      Explain the procedural semantics of procedural languages and the denotational semantics of procedural languages. {homework, tests}

4.      Write code in functional and logic languages (e.g., ML and Prolog). {homework}

 

Topics Covered:

1.      Evolution of major programming languages (2 hours)

2.      Formal description of programming language syntax (4 hours)

3.      Denotational semantics (3 hours)

4.      Interpreters, compilers, assemblers (2 hours)

5.      Data abstractions (3 hours)

6.      Control abstractions (3 hours)

7.      Run-time behavior of programs and procedural semantics (5 hours)

8.      Programming environments (3 hours)

9.      Functional languages (9 hours)

10.   Logic languages (8 hours)

 

Laboratory Projects

There are several programming assignments.

 

Syllabus Flexibility: Moderate.  The choice of textbook and languages is up to the instructor.

 


Relationship of Course to Program Outcomes:

The contribution of each course objective to meeting the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor.  Blank if not related.










Course Objectives

Program Outcomes

1. Logic & Math

2. Computing Fundamentals

3. Apply Computing Principles

4. Work on teams

5. Communicate Effectively

6. Liberal arts & Soc. Sciences

7. Basic Science and Lab Procedures

8. Learn New Tools & Processes

9. Employed upon Graduation

10. Application Area

11. Electronics and Digital Sys Design

1. Categorize a language as imperative (procedural), functional (applicative) or declarative (logic).

 

 

1

 

 

 

 

2

 

 

 

2. Understand and use syntax descriptions in EBNF.

1

2

 

 

 

 

 

1

 

 

 

3. Explain the procedural semantics of procedural languages and the denotational semantics of procedural languages

1

3

1

 

2

 

 

 

 

 

 

4. Write code in functional and logic languages

 

1

 

 

2

 

 

3

1

 

 

 

Estimated CSAB Category Content:

Algorithms:                                                         0

Data Structures:                                                  0

Software Design:                                                 0

Concepts of Programming Languages                   3 hrs

Organization and Architecture                              0

 

Oral and Written Communication:

Students will prepare appropriate documentation for all programming exercises and will be required to do an oral presentation, either on a class project or a topic within the area of programming languages.

 

Social and Ethical Issues: none

 

Theoretical Content:

Syntax and semantics

 

Analysis and Design:

Design of functional and logic programs; software lifecycle models and programming paradigms

 

Class/Laboratory Schedule:

Lecture:  3 periods of 50 minutes or 2 periods of 75 minutes per week

 

Course Coordinator: Marco Valtorta

 

Modification and Approval History:

Initial description CSCI 330, March 1999

Revised, June 2001

Modified February 2002 to include an oral and written communication component