The Department of Computer Science & Engineering
UB CSE 305

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

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

Prof. Stuart C. Shapiro, 326 Bell Hall, 645-4765
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.

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

Class Meetings:
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):
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:30       Schlegel  
4:00       Schlegel  
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 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.

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.

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

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.

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:
Midterm Exam 125%
Midterm Exam 225%
Final Exam30%

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:


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.
1 1/11
First Lecture
Introduction to Course
Chapter 1: Preliminaries
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
First Meeting of A2
Chapter 3.3.2: EBNF
Chapter 5.1-5.2: Names
First Meeting of A3
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.
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
Chapter 6: Data Types
HW3 due; solutions posted in UBlearns.
HW4 assigned
Chapter 6: Data Types
5 2/8
Chapter 6: Data Types
Chapter 6: Data Types
2/11 2/12
HW4 due. Solutions posted in UBlearns.
HW5 assigned.
Chapter 6: Data Types
6 2/15
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
Chapter 7: Expressions & Assignment Statements
HW5 due. Solutions posted in UBlearns.
HW6 assigned.
8 3/1
Chapter 7: Expressions & Assignment Statements
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
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
Chapter 9: Subprograms
3/25  3/26
R deadline
HW8 due. Solutions posted in UBlearns.
Chapter 9: Subprograms
11 3/29
Catch up & Review
Midterm Exam 2
HW9 assigned.
Review Midterm 2 solutions.
12 4/5
Chapter 9: Subprograms
Chapter 9: Subprograms
4/8 4/9
HW9 due. Solutions posted in UBlearns.
HW10 assigned.
Chapter 9: Subprograms
13 4/12
Chapter 9: Subprograms
Chapter 9: Subprograms
4/15 4/16
HW10 due. Solutions posted in UBlearns.
HW11 assigned.
Chapter 9: Subprograms
14 4/19
Chapter 13: Concurrency
Last Meeting of A2
Chapter 13: Concurrency
Last Meeting of A3
HW11 due. Solutions posted in UBlearns.
Chapter 13: Concurrency
The Program Level
15 4/26
Last Lecture
Last Meeting of A1
Catch up & Review
Reading Day
Final Exam 3:30-6:30 Hochstetter 114

Last modified: Wed Apr 21 13:34:13 2010
Stuart C. Shapiro <>