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

CSE 305: Programming Languages
Stuart C. Shapiro
Spring, 2005

MWF, 10:00 - 10:50, 222 NSC


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

TA:
Michael W Kandefer, Trailer E, Desk 5, 645-3771, mwk3@cse.buffalo.edu
Office Hours: M 12:00 - 1:00, W 1:00 - 2:00, Th 11:00 - 12:00

Class Meetings:
CLASS INSTRUCTOR REGIS. NO. DAYS HOURSLOCATION
LectureShapiro MWF 10:00-10:50 AM NSC 222
Recitation R1 Kandefer 327731 M 2:00-2:50 PMBell 224
Recitation R2 Kandefer 119557 W noon-12:50 PMBell 224
Recitation R3 Kandefer 351833 R 8:30-9:20 AMBell 224

Weekly Schedule showing class meetings and office hours:
  MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY
8:30    R3  
9:00    R3  
9:30         
10:00Lecture   Lecture   Lecture
10:30Lecture   Lecture  Lecture
11:00       Kandefer  
11:30       Kandefer  
12:00 Kandefer R2   
12:30 Kandefer   R2   
1:00 Shapiro   Kandefer Shapiro  
1:30 Shapiro   Kandefer Shapiro  
2:00 R1        
2:30 R1 Shapiro      
3:00   Shapiro     
3:30       
4:00        
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.

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

Recommended Texts (each lists for $9.95):

Some other (possibly) useful books (with higher list prices):

On-Line Resources: On-line resources for several of the languages we will be using are available.

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, execute the following UNIX command on one of the CSE machines:
submit_cse305 file
No late homeworks will be accepted!

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

Exams:
There will be two 50-minute, in-class midterm exams, and a cumulative three-hour final exam during Final Exam Week. All three exams will be closed book, closed notes, with no calculating device allowed.

Since we won't know when the final exam will be scheduled for some time, do not make plans to leave town before the end of Final Exam Week.

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 two midterm exams, and the final exam, according to the following weights:
Homeworks20%
Midterm Exam 125%
Midterm Exam 225%
Final Exam30%
Total100%

Many homework and exam questions will be graded on the 3-point grading scheme:

Substantially correct:3 points
Mostly correct:2 points
Mostly incorrect:1 point
Substantially incorrect:0 points

The mapping from percents to letter grades will be:

   80-84B+ 67-69C+ 54-59D+
90-100A 75-80B 63-66C 40-53D
85-89A- 70-74B- 60-62C- 0-39F

The grade sheet will be posted, but available only to buffalo.edu addresses.
Your grades will be listed according to a random number that will be generated and given to you.

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.
WeekMon.Wed.Thu.Fri
1 1/17  1/19
First Lecture
Introduction to Course
Chapter 1: Preliminaries
1/20 1/21
Last day to drop without financial penalty
2 1/24
First Meeting of R1
HW1 assigned
Chapter 3: Syntax
1/26
First Meeting of R2
Chapter 3: Semantics
1/27
First Meeting of R3
1/28
Drop/Add and S/U/Audit deadlines
3 1/31
HW1 due
HW2 assigned
Chapter 5.5, 5.2: Names
2/2 2/3 2/4
Chapter 5.3-5.12: Variables, Bindings, etc.
4 2/7
HW2 due. Solutions are posted.
HW3 assigned
2/9
2/10
2/11
5 2/14
HW3 due. Solutions are posted.
HW4 assigned.
2/16 2/17 2/18
Chapter 6: Data Types
6 2/21
HW4 due. Solutions are posted.
2/23
Catch up & Review
2/24 2/25
Midterm Exam 1
7 2/28
Return Midterm 1 and review Solutions.
HW5 assigned.
3/2 3/3
3/4
8 3/7
HW5 due. Solutions are posted.
HW6 assigned.
3/9 3/10 3/11
R deadline
  3/14 Spring Break 3/16 Spring Break 3/17 Spring Break 3/18 Spring Break
9 3/21
HW6 due. Solutions are posted.
HW7 assigned.
Chapter 7: Expressions & Assignment Statements
3/23
3/24
3/25
10 3/28
HW7 due. Solutions are posted.
HW8 assigned.
Chapter 8: Statement-Level Control Structures
3/30
3/31
4/1
11 4/4
HW8 due. Solutions are posted.
Chapter 9: Subprograms
4/6
Catch up & Review
4/7
4/8
Midterm Exam 2
12 4/11
Return Midterm 2 and review solutions.
HW9 assigned.
4/13 4/14
4/15
13 4/18
HW9 due. Solutions are posted.
HW10 assigned.
4/20 4/21
4/22
14 4/25
HW10 due. Solutions are posted.
HW11 assigned.
Chapter 13: Concurrency
4/27
Last Meeting of R2
4/28
Last Meeting of R3
4/29
The Program Level
15 5/2
HW11 due. Solutions are posted.
Last Lecture
Last Meeting of R1
Catch up & Review
5/4
Reading Day
5/5
First Day of Final Exams
5/6
  5/9
5/11
Final Exam: 3:30-6:30, 218 NSC
Solutions are posted.
5/12
Last Day of Final Exams
5/13

Last modified: Fri May 13 10:31:19 EDT 2005
Stuart C. Shapiro <shapiro@cse.buffalo.edu>