CS 131 (Programming Languages) Syllabus

CS131 Programming Languages

Instructor   Dr. Craig A. Lee, lee@aero.org
Lectures   Mon.-Wed.,  4-6,  Botany 325
Office Hours   Mon.-Wed., 6-7
TA   Gunes Ercal, ercal@cs.ucla.edu
Discussion   Fri.,  8-10,   BH5249,
   2-4,   ROLFE3134
TA Office 
Hours
  Mon., Th.,   11-12,   BH4428
Text     Concepts of Programming Languages, Fifth Edition
  R.W. Sebasta
  Addison Wesley, 2002
References   Java, How to program, Fourth Edition, Deitel and Deitel
Java in a Nutshell, Third Edition, David Flanagan
The Scheme Programming Language, Second Edition, R. Kent Dybvig
Grading   Homework 10%
Programming Assignment 45%
Midterm 20%
Final 25% 

 

Course Overview

Discussion of the important issues in the specification, design and implementation of programming languages with emphasis on imperative programming. The objective of the course is not to master a set of programming languages but rather the emphasis is on evaluating alternative ways of providing various programming language features, and studying the trade-off involved. The topics covered will include syntactic specification, data types, abstraction mechanisms (abstract data types, packages, classes), sequences control (iteration, branching, exceptions, procedures), data control (global data, shared data, parameter transmission), storage management, functional programming and introduction to program verification. We will use C, C++, Java, Scheme and Prolog to illustrate programming language concepts covered in the course.  We will also present material on parallel and distributed programming languages and tools for shared memory, distributed memory and grid environments.

Grades will be made available through the My UCLA Page.
Do not request grades by email!
 
 

Course Schedule

Lecture Date Chapters Lecture Topic Handouts
1 Sept. 30 Ch. 2, Sebesta Introduction & a Brief History of Programming Languages  ppt, or ps
2 Oct 2 Ch. 5, Sebesta Names Bindings, Type Checking, And Scopes  ppt, or ps
3 Oct 7 Ch.6, Sebesta Compositional C++, and
Data Types 
ppt, or ps
4 Oct 9 Ch. 11, Sebesta Abstract Data Types  ppt, or ps
5 Oct 14 Ch. 9, Deitel Starting Java,
and Project 1 details
OOP, and Project 1 (rtf), or Project 1 (txt)
6 Oct 16 Chs. 9 and 14, Deitel Object-oriented programming and Exception-handling in Java,
and Project 1 details
OOP, exceptions, and Project 1 (rtf), or Project 1 (txt)
7 Oct 21 Ch. 12, Deitel Event-handling and some Java packages Event-handling, and Swing
Lec 7: Event Prog. and CSP
Java Abstract Window Toolkit
8 Oct 23 Ch. 9, Sebesta Subprograms Lecture 8
9 Oct 28 Ch. 10, Sebesta Implementing Subprograms
Introduction to Awk
Lecture 9
10 Oct 30   Programming Homework #2
Linda, JavaSpaces and Coord. Langs
Co-Routines and Threads
Lecture 10
This is the input file.
11 Nov 4   Review in class Midterm Review Topics
12 Nov 6   Midterm in class   
13 Nov 11   No Lecture (Veterans' Day Holiday)  
14 Nov 13 Chap. 15, Sebesta Functional Programming; Scheme Functional Programming and Scheme
Concept Review Homework
15 Nov 18   (This was supposed to review the midterm)  
16 Nov 20   (Make-up lecture next week)  
17 Nov 25   Logic Programming and Prolog Logic Programming and Prolog
18 Nov 27   More on Logic Programming More Logic Programming and Prolog
Nani -- A Search Game
The geo kb for the Prolog assignmt
19
Dec 2
  More on Logic Languages and Prolog
Parallel Programming
Parallel Programming Languages and Tools
20
Dec 4
  Grid Computing Grid Computing and the Future
21
Dec 6
  Review Review Lecture