CSE 452: Organization of Programming Languages



CSE 452: Organization of Programming Languages

Fall 2003

|Time: |Tu, Th: 10:20-11:40am |

|Place: |c312 Wells Hall |

|Email: |cse452@cse.msu.edu |

|Web Page: | |

A. GENERAL INFORMATION

Instructor:

Pang-Ning Tan

Office: 2129 Engineering Building

Office Hours: Tu 12:40-1:40pm, Th 12-1pm

Phone: 432-9240

Email: ptan@cse.msu.edu

Teaching Assistant:

John Bradley Johnston

Office Hours: TBA

Email: john1545@pilot.msu.edu

Lab sections:

Section 1: Tu 12:40-2:30pm (3203 Engineering Building)

Section 2: Tu 7:00-8:50pm (3203 Engineering Building)

B. COURSE INFORMATION

Course Description

This course provides a general overview to the field of programming languages. We will examine a variety of programming languages, from early languages such as Plankalkül and short code, to more recent ones such as Java and Perl.

If the past cannot teach the present, then history need not have bothered to go on, and the world has wasted a great deal of time --- Russell Hoban

While knowing the history of programming languages is important for computer scientists and engineers, the principal aim of this course is to understand the key features as well as the rationale behind the design decisions of these languages. By knowing the strengths and limitations of each language, this may help us to make a more informed decision about the choice of programming language for a particular project.

Throughout this course, students will be introduced to several programming paradigms, such as object-oriented, functional, and logic programming, along with the programming languages that implement these paradigms. Homework and programming exercises are given to help students to familiarize themselves with these languages. At the end of this course, students are not expected to become experts in all of these languages, but are expected to be able to learn new languages more easily on their own.

Finally, given the pervasiveness of the Web, another important focus of this course is on Internet programming. Students will learn both client-side and server-side scripting languages, as well as markup languages such as HTML and XML. A final project based on Internet programming will be given, to encourage students to learn more specific details of these languages on their own.

Textbook

There is no required textbook for this course. Required readings will be left online and in Engineering library reserve. Students are encouraged to read the following reference books:

• Robert W. Sebesta: Concepts of Programming Languages, 5th Edition, Addison-Wesley, 2002.

• Ravi Sethi: Programming Languages – Concepts and Constructs, 2nd Edition, Addison-Wesley, 1996.

• Carlo Ghezzi & Mehdi Jazayeri: Programming Language Concepts, 3rd Edition, John Wiley & Sons, 1998.

Course Outline

The following material will be covered in the course.

• Introduction: programming vs natural languages, programming paradigms, language evaluation criteria.

• Imperative Programming: data types and pointers, control statements, procedure activation.

• Object-oriented Programming: encapsulation, inheritance, dynamic binding

• Web Programming: Web architecture, HTTP, HTML, XML, client-side programming, server-side programming

• Functional programming: lambda calculus, Scheme, LISP, Haskell, ML

• Logic programming: predicate calculus, Horn clauses, Prolog

Grading

• Homework & programming assignments 30%

• Project 20%

• Midterm exam 25%

• Final exam 25%

Class Policy

Assignments are due by noon on the scheduled due date. Late assignments are penalized at 25% points for the first day and additional 50% for the second day after which submissions will not be accepted.

Academic Integrity

You are not allowed to derive solutions to the assignments from existing code or from previous instances of this course. All assignments must be done from scratch. The solutions of the problems must be your own work. The Department of Computer Science expects all students to adhere to MSU’s policy on Integrity of Scholarship and Grades () and General Student Regulation 1.00 in the student handbook (Spartan Life, ).

Tentative Schedule

|Week |Date |Schedule |Evaluation |

|1 |26-Aug |Introduction |  |

|1 |28-Aug |Syntax and Semantics |  |

|2 |2-Sep |Syntax and Semantics |  |

|2 |4-Sep |Data Types |  |

|3 |9-Sep |Data Types |  |

|3 |11-Sep |Control Statements |  |

|4 |16-Sep |Procedures and Subprograms |  |

|4 |18-Sep |Procedures and Subprograms |Assignment 1 due |

|5 |23-Sep |Object-oriented Programming |  |

|5 |25-Sep |Object-oriented Programming |  |

|6 |30-Sep |Object-oriented Programming |  |

|6 |2-Oct |Object-oriented Programming |  |

|7 |7-Oct |Web Architecture |  |

|7 |9-Oct |HTML and Cascading Style Sheets |Assignment 2 due |

|8 |14-Oct | - |Midterm Exam |

|8 |16-Oct |Client-side Scripting |  |

|9 |21-Oct |Client-side Scripting |  |

|9 |23-Oct |Server-Side Scripting |  |

|10 |28-Oct |Server-Side Scripting |  |

|10 |30-Oct |XML |  |

|11 |4-Nov |XML |Assignment 3 due |

|11 |6-Nov |Functional programming |  |

|12 |11-Nov |Functional programming |  |

|12 |13-Nov |Functional programming |  |

|13 |18-Nov |Functional programming |Assignment 4 due |

|13 |20-Nov |Logic programming |  |

|14 |25-Nov |Logic programming |  |

|14 |27-Nov |Thanksgiving Holiday |  |

|15 |2-Dec |Logic programming |Project due |

|15 |4-Dec |Logic programming |Assignment 5 due |

|16 |12-Dec | - |Final Exam (10:00am-12:00pm) |

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download