CIS 2220

Programming Languages

Fall 2008

Instructor:                  Dr. John Youssefi

Course Hours:           Monday 6:00-9:00PM, SM 203

Office:                        St. Mary Room #205

Contact:                     (650) 508 - 3450 / jyoussefi@ndnu.edu

Office Hours:             Tuesday and Friday  5:30 - 6:30 pm or by appointment

Text:               Concepts of Programming Languages by Robert W. Sebesta (Eighth Edition)             

DESCRIPTION:   This course is concerned with the structures and design of programming languages. Also we will look at some of the implementation issues in programming language. This course will help the students to critically evaluate languages and language features, both old and new, from several important viewpoints. Languages such as FORTRAN, LISP, ML,  ALGOL, COBOL, BASIC, PL/I, SIMULA, C, Prolog, Ada, Smalltalk, Java, Javascript, PHP, C#, Python, and C++ will be discussed. You will write programs in Pseudo-codeLisp, and in your choice of language to implement parts of a compiler.

Couese Objectives:

Grades:

            Programs&Homework . . . . . . . 40%

            Quizzes . . . . . . . . . . . . . . . . . .  10%

            Presentation. . . . . . . . . . . . . . . .10%

            Midterm test  . . . . . . . . . . . . . . .20%

            Final test  . . . . . . . . . . . . . . . . . 20%

              93-100           A                     90-93               A-

              87-90            B+                   84-87               B

              80-84             B-                    77-80               C+

              74-77             B                     70-74               C-

              67-70             D+                   64-67               D

              60-64             D-                    0 -60                F

I do not give make-up tests; for an excused absence I count the other grades proportionately higher. 10% off for each weekday on programs.

Complete academic integrity is expected, according to the Code of Student Conduct.

Incompletes will not be assigned except for documented compelling reasons, according to the university Grading Systems.  Check the Academic Calandar for Add/Drop dates.

Presentation:

             Each person will be on a two person team to study, report and present a language which we do not cover in class.

Tentative Scheduale:

Week 1                        Course intro; Chapter 1 and Interpreter(Program # 1)

Week 2                        Compiler phases

Week 3                        BNF; Chapter 3

Week 4                        Semantics; Project part 2;

Week 5                        Lexical and Syntax Analysis; Chapter 4; Quiz

Week 6                        Names, Bindings, Type Checking, and Scopes; chapter 5

Week 7                        Data Types; chapter 6

Week 8                        Midterm

Week 9                        Expressions and Assignment Statements; Project part 3; Chapter 7

Week 10                      Control Structures;  Chapter 8

Week 11                      Subprograms; Chapter 9, 10

Week 12                      OOP; Chapter 11 and 12

Week 13                      Functional Programmming; Chapter 15

Week 14                      Logic Programming; Chapter 16

Week 15                      Final (Dec. 8, 2008)

Students are strongly encouraged to come during office hours with any problems regarding the course or assignments.  Missed classes will cause severe problems to your progress.  Full preparation for every class is very important to your success.