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

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

MWF, 11:00 - 11:50, 220 NSC


Lecturer:
Prof. Stuart C. Shapiro, 326 Bell Hall, 645-4765 shapiro@buffalo.edu.
Office Hours: M 2:00-2:50, TR 1:00-1:50, or make an appointment via email. See my schedule for my available times.

TAs:
Jonathan P. Bona; 716-568-4856 (Skype) or 645-6173 x 517; jpbona@buffalo.edu.
Office Hours: M 9:00-9:50, W 10:00-10:50, F 9:00-9:50 in 232 Bell Hall,
Dan Schlegel; drschleg@buffalo.edu.
Office Hours: T 2:00-3:00, W 1:00-2:00, R 3:30-4:30 in 232 Bell Hall,

Class Meetings:
CLASS INSTRUCTOR REGIS. NO. DAYS HOURSLOCATION
LectureShapiro MWF 11:00-11:50 AM NSC 220
Recitation A1 Bona 052808 M 1:00-1:50 PMCapen 260
Recitation A2 Bona 193466 W noon-12:50 PMCapen 10
Recitation A3 Schlegel 296551 R 5:00-5:50 PMNorton 214

Weekly Schedule showing class meetings and office hours (Shapiro in 326 Bell Hall; Bona and Schlegel in 232 Bell Hall):
  MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY
9:00 Bona      Bona
9:30 Bona       Bona
10:00     Bona    
10:30     Bona    
11:00 Lecture   Lecture   Lecture
11:30 Lecture   Lecture   Lecture
12:00     A2    
12:30     A2    
1:00 A1 Shapiro Schlegel Shapiro  
1:30 A1 Shapiro Schlegel Shapiro  
2:00 Shapiro Schlegel      
2:30 Shapiro Schlegel      
3:00         
3:30       Schlegel  
4:00       Schlegel  
4:30        
5:00       A3  
5:30       A3  

Catalog Description:
Examines the various components of programming languages so students will understand the choices that have been made by programming language designers, and how those choices affect how procedures may be expressed and how data are conceptualized. Topics generally include the nature of variables, types, expressions, control structures, subprograms, concurrency, and exceptions; syntax and semantics. Discusses different programming paradigms, such as imperative, functional, logic, procedural and object-oriented.

Prerequisite: CSE250.

Required Text: Robert W. Sebesta, Concepts of Programming Languages, Ninth Edition, Addison-Wesley, Boston, 2010, ISBN 978-0-13-607347-5. List price: $107. Use the companion web site for PowerPoint lecture notes, PowerPoint versions of figures in the book, and mini-manuals for C, C++, and Java.

Reference Material:

Computer facility:
The CSE Department provides timberlake.cse.buffalo.edu for you to use in this course. See the list of CSE student systems.

Discussion Board:
Use the Discussion Board inside the UBlearns Site for questions and discussions meant for the entire class, including clarification of assignments between class and recitation meetings. Check the discussion board regularly for new postings. It will be monitored by the lecturer and the TAs.
Do not use the discussion board to share answers to assignments.

Academic Policies:
This course will abide by the CSE Department academic integrity policies (See Undergraduate Policies and Dr. Rapaport's page on academic integrity) and the UB undergraduate incomplete policy (see the Undergraduate Catalog Explanation of Grades). The short versions are:

This course will also abide by the University's principles and procedures regarding students with disabilities. See the Office of Disability Services' statement on UB's Commitment to Disability Access. Notify the lecturer if you need any accommodations under these policies.

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. Unless otherwise instructed, 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!

As of March 29, 2010: Any requests for regrading homeworks, for any reason, must be made within one week after the grade has been sent to the student.

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-100A75-79B63-66C40-53D0-39F
85-89A-70-74B-60-62C-  

You should check the electronic grade sheet within the course UBlearns Site regularly, and promptly report any discrepancy between the grades shown there and your own records of your grades to the Lecturer or one of the TAs.

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/11
First Lecture
Introduction to Course
Chapter 1: Preliminaries
1/13
Chapter 1: Basic Concepts
1/14 1/15
Last day to drop without financial penalty
HW1 assigned
Chapter 1: Key Distinctions
Chapter 2: Evolution of PLs (Read on your own.)
Chapter 3.1-3.3: Syntax, Part 1
2 1/18
MLK Jr. Day: No classes
1/20
First Meeting of A2
Chapter 3.3.2: EBNF
Chapter 5.1-5.2: Names
1/21
First Meeting of A3
1/22
Drop/Add and S/U/Audit deadlines
HW1 due
HW2 assigned
Chapter 5.1-5.2: Names
Chapter 5.3-5.8: Variables, Bindings, etc.
3 1/25
First Meeting of A1
Chapter 5.4-5.8: Variables, Bindings, etc.
1/27
Chapter 5.4-5.8: Variables, Bindings, etc.
1/28 1/29
HW2 due; solutions posted in UBlearns. HW3 assigned
Chapter 5.4-5.8: Variables, Bindings, etc.
4 2/1
Chapter 5.4-5.8: Variables, Bindings, etc.
Chapter 6: Data Types
2/3
Chapter 6: Data Types
2/4
2/5
HW3 due; solutions posted in UBlearns.
HW4 assigned
Chapter 6: Data Types
5 2/8
Chapter 6: Data Types
2/10
Chapter 6: Data Types
2/11 2/12
HW4 due. Solutions posted in UBlearns.
HW5 assigned.
Chapter 6: Data Types
6 2/15
Review
2/17
Midterm Exam 1
2/18 2/19
Review Midterm 1 solutions.
Chapter 3.1-3.3: Syntax, Part 2
7 2/22
Chapter 3: Semantics
2/2
Chapter 7: Expressions & Assignment Statements
2/25
2/26
HW5 due. Solutions posted in UBlearns.
HW6 assigned.
8 3/1
Chapter 7: Expressions & Assignment Statements
3/3
Chapter 8: Statement-Level Control Structures
3/4 3/5
HW6 due. Solutions posted in UBlearns.
HW7 assigned.
Chapter 8: Statement-Level Control Structures
  3/8 Spring Break 3/10 Spring Break 3/11 Spring Break 3/12 Spring Break
9 3/15
Chapter 8: Statement-Level Control Structures
3/17
Chapter 8: Statement-Level Control Structures
3/18 3/19
HW7 due. Solutions posted in UBlearns.
HW8 assigned.
Chapter 8: Statement-Level Control Structures
10 3/22
Chapter 8: Statement-Level Control Structures
3/24
Chapter 9: Subprograms
3/25  3/26
R deadline
HW8 due. Solutions posted in UBlearns.
Chapter 9: Subprograms
11 3/29
Catch up & Review
3/31
Midterm Exam 2
4/1
4/2
HW9 assigned.
Review Midterm 2 solutions.
12 4/5
Chapter 9: Subprograms
4/7
Chapter 9: Subprograms
4/8 4/9
HW9 due. Solutions posted in UBlearns.
HW10 assigned.
Chapter 9: Subprograms
13 4/12
Chapter 9: Subprograms
4/14
Chapter 9: Subprograms
4/15 4/16
HW10 due. Solutions posted in UBlearns.
HW11 assigned.
Chapter 9: Subprograms
14 4/19
Chapter 13: Concurrency
4/21
Last Meeting of A2
Chapter 13: Concurrency
4/22
Last Meeting of A3
4/23
HW11 due. Solutions posted in UBlearns.
Chapter 13: Concurrency
The Program Level
15 4/26
Last Lecture
Last Meeting of A1
Catch up & Review
4/28
Reading Day
4/29
Final Exam 3:30-6:30 Hochstetter 114
4/30

Last modified: Wed Apr 21 13:34:13 2010
Stuart C. Shapiro <shapiro@cse.buffalo.edu>