CSC 4101

Programming Languages

 

Instructor:

Prof. Tevfik Kosar

Office: 292 Coates Hall

Phone: 578-9483

Email: kosar@lsu.edu

Office hours: Tue & Thu, 1:30pm-2:30pm

 

Teaching Assistant:

Grady Schofield

Email: gschof1@lsu.edu

 

Course Description:

CSC 4101 is an introductory course to the design and implementation of programming languages. It focuses on the differences between languages, the reasons for those differences, and the implications those differences have for compiler implementation.CSC 3102 is a prerequisite of this course.

 

Textbooks:

Required text

*    Programming Language Pragmatics (2nd edition)

by Michael Scott, Morgan Kauffman Publishers, 2005

Recommended text

*    Concepts of Programming Languages (6th edition)

Robert W. Sebesta, Addison-Wesley, 2003

 

Grading:

The end-of-semester grades will be composed of:

*    Popup Quizzes: 5%

*    Active Contribution: 5%

*    Homework: 15%

*    Projects: 30%�����

*    Midterm: 20%

*    Final: 25%

 

There will be no formal attendance taken in the class. But, you are expected to attend the classes and actively contribute via asking and/or answering questions. There may be popup quizzes at the beginning of some classes. The questions in the quizzes will come mostly from the material discussed in the previous lecture.

 

Class Mailing List:

There will be a mailing list for the important course announcements including projects, homework assignments, and exams. Please make sure that you provide an active email address to the instructor, and check your email frequently.

 

Course Schedule:

This schedule is tentative and subject to change. Please check the course web site: http://www.cct.lsu.edu/~kosar/csc4101 regularly for the updates on the schedule; announcements on the projects, homework assignments and exams; and other news about the course.

 

Date

Lect.

Title

Notes

Jan 17

1

Introduction

 Read Ch.1

Jan 19

2

Compilation and Interpretation

 Read Ch. 2.1

Jan 24

3

Regular Expressions & CFGs

 Read Ch. 2.2

Jan 26

4

Finite Automata � I (TA)

Read Ch. 2.3; HW-1 out;

Jan 31

5

Finite Automata � II

 

Feb 2

6

Parsing

HW-1 due

Feb 7

7

Binding & Scopes - I

Read Ch. 3.1-3.2;

Feb 9

8

Binding & Scopes - II

Read Ch. 3.3;

Feb 14

9

Semantic Analysis - I

Read Ch. 4.1-4.3; Quiz 1

Feb 16

10

Semantic Analysis - II

Read Ch. 4.4-4.6; HW-2 out;

Feb 21

11

Control Flow

Read Ch. 6.1-6.4; Project-1 out;

Feb 23

12

Iteration & Recursion

Read Ch. 6.5-6.7;

Feb 28

 

 

Mardi Gras

Mar 2

13

Functional Lang. & Scheme - I

Read Ch. 10.1-10.3; HW-2 due;

Mar 7

14

Functional Lang. & Scheme - II

Read Ch. 10.4-10.5; Quiz 2; Prj1 due;

Mar 9

 

MIDTERM EXAM

 

Mar 14

15

Type Systems & Type Checking

Read Ch. 7.1-7.2

Mar 16

16

Records

Read Ch. 7.3

Mar 21

17

Arrays

Read Ch. 7.4; Project 2 out;

Mar 23

18

Pointers and Lists (TA)

Read Ch. 7.5-7.8;

Mar 28

19

Logical Lang. & Prolog - I

Read Ch. 11.1-11.2; HW-3 out;

Mar 30

20

Logical Lang. & Prolog � II (TA)

Read Ch. 11.3-11.4;

Apr 4

21

Subroutines (GA)

HW-3 due;

Apr 6

22

Review

Project 3 out;

Apr 11

 

 

Spring Break;

Apr 13

 

 

Spring Break

Apr 18

23

Project-3 Review (TA)

Project 2 due; 

Apr 20

24

Object Oriented Programming

Read Ch. 9.1-9.5; HW-4 out

Apr 25

25

Concurrent Programming

Read Ch. 12.1-12.2;

Apr 27

26

Shared Memory

Read Ch. 12.3; HW-5 out; Quiz 3;

May 2

27

Message Passing

Read Ch. 12.4; Project 3 due;

May 4

28

Review for the Final

HW-5 due;

May 11

 

FINAL EXAM

12:30pm � 2:30pm

 

Links:

 

���� Scheme Programming Language:

 

*    An Introduction to Scheme and its Implementation

*    The Scheme Homepage

*    Scheme Interpreter (MIT/GNU)