Learning Center
Plans & pricing Sign in
Sign Out

CSE 452 Organization of Programming Languages.doc


									                   CSE 452: Organization of Programming Languages
                                      Fall 2003

                    Time:            Tu, Th: 10:20-11:40am
                    Place:           c312 Wells Hall
                    Web Page:


       Pang-Ning Tan
       Office: 2129 Engineering Building
       Office Hours: Tu 12:40-1:40pm, Th 12-1pm
       Phone: 432-9240

Teaching Assistant:
       John Bradley Johnston
       Office Hours: TBA

Lab sections:
       Section 1: Tu 12:40-2:30pm (3203 Engineering Building)
       Section 2: Tu 7:00-8:50pm (3203 Engineering Building)


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.

       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,
    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
    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

    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)

To top