The Department of Computer Science & Engineering
cse@buffalo
UB CSE 305

CSE 305: Programming Languages
Stuart C. Shapiro
Fall, 2003

Tuesdays & Thursdays, 9:30 - 10:50, 210 NSC


Last modification: 12/19/03.

Lecturer:
Prof. Stuart C. Shapiro, 326 Bell Hall, 645-3180 ext. 125, shapiro@cse.buffalo.edu
Office Hours: M 3:30 - 4:30, W 10:00-10:50, Th 2:00 - 2:50 or make an appointment via email. See my schedule for my available times.

TAs:
Ying Xie, Trailer B12, 645-3772, yingxie@cse.buffalo.edu
Office Hours: MW 1:00 - 2:30.

Aihua Xu, Trailer E10, 645-3771, aihuaxu@cse.buffalo.edu
Office Hours: M 11:00 - 1:00, TTh 12:30-2:00.

Class Meetings:
CLASS INSTRUCTOR REGIS. NO. DAYS HOURSLOCATION
LectureShapiro TR 9:30-10:50 AM NSC 210
Recitation R1 Ying Xie 168567 R 3:30-4:20 PMNSC 228
Recitation R2 Ying Xie 437881 T 2:00-2:50 PMNSC 228
Recitation R3 Aihua Xu 137731 F 8:00-8:50 AMNSC 228

Weekly Schedule showing class meetings and office hours:
  MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY
8:00      R3
8:30      R3
9:30  Lecture   Lecture  
10:00  Lecture Shapiro Lecture 
10:30  Lecture Shapiro Lecture 
11:00 Xu       
11:30 Xu        
12:00 Xu    
12:30 XuXu Xu  
1:00 XieXuXie Xu 
1:30 XieXuXieXu  
2:00 Xie R2 Xie Shapiro  
2:30  R2   Shapiro  
3:00       
3:30Shapiro    R1 
4:00 Shapiro    R1 
4:30        
5:00      

Catalog Description:
This course covers concepts from procedural as well as declarative languages. The structure of procedural languages will be examined in detail, including data and control abstractions, type systems, and the effect of language constructs on the underlying implementation. Alternative programming paradigms, such as functional, logic, and object-oriented paradigms, will be briefly introduced.

Prerequisite: CSE250.

Text: Robert W. Sebesta, Concepts of Programming Languages, Sixth Edition

On-Line Resources: Click here

Newsgroup:
You should subscribe to the newsgroup sunyab.cse.305 and read it regularly. It will be monitored by the lecture and recitation instructors, and will be used for announcements meant for the entire class. You may also use it to ask questions, for example, for clarification of homework assignments between class and recitation meetings.
Do not use the newsgroup to share answers to homework assignments.

Academic Policies:
This course will abide by the Departmental Academic Integrity policies and procedures,
and the Departmental Incomplete policy.

The short versions are:

Homeworks:
Homework exercises will include small programming assignments and short-answer questions. The purposes of homework exercises are: Homework exercises will be posted on the below calendar. You may start working on a homework set as soon as it appears. The date and time a homework set is due will be contained on the homework assignment, and will typically be one week after the official assignment date. You are to submit your homeworks using the submit program:
To submit the file file:
If you're in Recitation R1: submit_cse305r1 file
If you're in Recitation R2: submit_cse305r2 file
If you're in Recitation R3: submit_cse305r3 file
No late homeworks will be accepted!

Projects:
There will be no major programming projects. All programming assignments will be part of homework sets.

Grading:
Each homework problem will be assigned a point value. Homework points will be cumulative. The final homework grade will be the percent of points earned over maximum points possible. The final course grade will be a weighted average of the total homeworks, the midterm exam, and the final exam, according to the following weights:
Homeworks30%
Midterm Exam30%
Final Exam40%
Total100%
The default mapping from percents to letter grades will be the "standard" curve:
93-100A
90-92A-
87-89B+
83-86B
80-82B-
77-79C+
73-76C
70-72C-
67-69D+
60-66D
0-59F
A more generous curve may be used, but don't count on it.

The grade sheet is posted, but available only to UB addresses.

Course Calendar: Dates of topics are approximate. Chapters refer to the chapters in the text. Read each chapter before the first lecture in which it will be discussed, and again, afterwards.

The Final Exam will be during Exam Week, and will be comprehensive.

WeekTue.Thur.Fri.Comments
1 8/26
First Lecture
Introduction to Course
Chapter 1: Preliminaries
8/28 8/29
Last day to drop without financial penalty
 
2 9/2
HW1 Assigned
Chapter 2: Evolution of PLs
9/4
First Meeting of R1
Chapter 3: Syntax and Semantics
9/5
First Meeting of R3
Drop/Add and S/U/Audit deadlines
 
3 9/9
First Meeting of R2
9/11
HW1 solution posted
HW2 Assigned
Chapter 5: Names, Variables, Bindings, Type Checking, and Scopes
9/12
 
4 9/16 9/18
HW2 due, solutions posted
HW3 Assigned
9/19
 
5 9/23 9/25
HW3 due 12:10am, solutions posted
HW4 Assigned
Chapter 6: Data Types
9/26  
6 9/30 10/2
HW4 due, 9:00 am, solutions posted
10/3
 
7 10/7
Catch up & Review
10/9
Midterm Exam
10/10
 
8 10/14
Return and Review Midterm solutions posted
HW5 assigned
10/16 10/17
R deadline
 
9 10/21
HW5 due, 9:00 am solutions posted
HW6 assigned
Chapter 7: Expressions & Assignment Statements
10/23
10/24
 
10 10/28
HW6 due, 9:00 am solutions posted
HW7 assigned
Chapter 8: Statement-Level Control Structures
10/30
10/31
 
11 11/4
HW7 due, 9:00 am solutions posted
HW8 assigned
Chapter 9: Subprograms
11/6
11/7
 
12 11/11
HW8 due, 9:00 am solutions posted
HW9 assigned
11/13
Chapter 13: Concurrency
11/14
 
13 11/18
HW9 due, 9:00 am solutions posted
HW10 assigned
11/20
Chapter 16: Logic Programming Languages
11/21
 
14 11/25
HW10 due, 9:00 am solutions posted
HW11 assigned
11/27
Fall Recess
11/28
Fall Recess
 
15 12/2
Last Meeting of R2
12/4
HW11 due, 9:00 am solutions posted
Last Lecture
Last Meeting of R1
12/5
Last Meeting of R3
 
  12/9
Reading Day
12/11
First Day of Final Exams
12/12
 
 
  12/16
12/18
Last Day of Final Exams
Our Final Exam: 3:30-6:30 Knox 109

Solutions posted
   

Stuart C. Shapiro <shapiro@cse.buffalo.edu>