Michael Prentice
UB Commons #17
Email: mjp44@buffalo.edu
(Always include "CSE305" in the subject line)
Office hours:
Monday 1:30-3:30
Tuesday 11:00-Noon
and by appointment
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.
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.
timberlake.cse.buffalo.edu. All assignment submissions must run
on timberlake.script" command for saving
command line interactionsYour current grades will be available on UBlearns. Use the course Discussion Board inside UBlearns 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. Do not use the discussion board to share answers to assignments.
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. If you have a diagnosed disability (physical, learning, or psychological) that will make it difficult for you to carry out the course work as outlined, or that requires accommodations such as recruiting note-takers, readers, or extended time on exams or assignments, you must consult with the Office of Disability Services (25 Capen Hall, Tel: 645-2608, TTY: 645-2616, Fax: 645-3116, http://www.student-affairs.buffalo.edu/ods/). You must advise your instructor during the first two weeks of the course so that we may review possible arrangements for reasonable accommodations.
The course has both a lecture component and a recitation component. Each component plays a role in helping you achieve the objectives of the course. If you do not participate fully in both you should not expect to do well in the course. Outside of the scheduled course times, both office hours and your own study times are critical components of the course.
The conceptual and theoretical course content will be delivered primarily in the lectures, complemented by readings from the text books. You must review readings prior to attending a lecture, and you are expected to review the readings again, along with any notes you took, after the lecture.
Some of the topics will be difficult. It is therefore absolutely essential that you ask questions whenever something is said which you do not understand.
Attendance in all lectures is mandatory and is critical to your success in this course. Attendance will be taken in lecture, and will count towards your final course grade. Lack of attendance in lecture can be grounds for failure in the course. If you are unable to attend a lecture because of sickness or similar reasons, make sure you get the notes from a classmate. If you are out of class for an extended period of time because of sickness, notify your instructor as soon as possible, and see your instructor immediately upon your return in order to determine how to catch up. If you have missed a significant portion of the semester due to illness, it is recommended that you resign from the course.
The recitations are an integral part of this course. Attendance in all recitations is mandatory and is critical to the success of the course project. Attendance will be taken in recitations, and will count towards your final course grade. Lack of attendance in recitation can be grounds for failure in the course.
Recitations will review lecture material and provide you with an opportunity to ask more detailed questions about the course material than can typically be addressed in lecture. Some material needed to do the programming projects may be covered only in the recitations.
Office hours offer you the opportunity to ask more individual questions about the course material than can typically be addressed in lecture or recitation. Office hours are held on a first-come first-served drop-in basis. No appointment is necessary to attend office hours. Be aware that office hours become increasingly busy the closer it is to a project deadline. Plan your use of office hours accordingly.
Individual appointments may be arranged, if needed, as schedules allow.
In this course, as in any course, you are expected to put in additional time beyond the scheduled class times. Professors generally expect that for each credit hour a typical student will put in 2-3 hours of time each week outside of class. In a summer course this expectation is doubled. Since this is a 4 credit course that translates into 16-24 hours of time outside of scheduled times, each week. During this time you should review your lecture notes, attend office hours as needed, get hands-on practice applying the class material, and work on assignments. As a rough guide, you should expect to spend at least the following time working on this course, each week:
Homework for this course consists of readings from the textbook, programming exercises, and writing assignments. Reading and homework will be assigned daily and must be completed by the next class unless otherwise indicated.
There will be two in-class exams: a mid-term and a final. Exams are cumulative, open note, and closed book.
A review session will be held before each exam.
If you cannot take an exam at the scheduled time for any reason, contact the instructor immediately.
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:
| Homeworks | 50% |
| Midterm Exam | 20% |
| Final Exam | 25% |
| Attendance | 5% |
| Total | 100% |
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:
| 84-89 | B+ | 68-72 | C+ | 34-44 | D+ | ||||
| 95-100 | A | 79-83 | B | 57-67 | C | 18-33 | D | 0-17 | F |
| 90-94 | A- | 73-78 | B- | 45-56 | C- |
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 instructor.
If you have a question about the grading of any piece of work, you should consult with the instructor of the course. Any questions about the grading of a piece of work must be raised within one week of the date that the work was returned by the teaching assistant or the instructor. In other words, if you do not pick up your work in a timely fashion, you may forfeit your right to question the grading of your work.
We will follow the UB Undergraduate Catalog Statement on Incomplete Grades.
Generally, incomplete (I) grades are not given. However, very rarely, circumstances truly beyond a student's control prevents him or her from completing work in the course. In such cases the instructor can give a grade of I. The student will be given instructions and a deadline for completing the work, usually no more than 30 days past the end of the semester. University and department policy dictate that I grades can be given only if the following conditions are met:
Incompletes can not be given as a shelter from poor grades. It is your responsibility to make a timely resignation from the course if you are doing poorly for any reason.
If you don't understand something covered in class, ask about it right away. The only silly question is the one which is not asked. If you get a poor mark on an assignment, quiz, or exam, find out why right away. Don't wait a month before asking. The instructor is available to answer your questions. Don't be afraid to ask questions, or to approach the instructor in class, during office hours, in the hallways, or through e-mail.
This course is intended to be hard work, but it is also intended to be fun. Play with the computer, and have fun with the neat and elegant programming ideas covered in this course. We think computer science is interesting and exciting, and we want to convince you of this. Work hard, but have fun!
Your attention is called to the Counseling Center (645-2720), 120 Richmond Quad. The Counseling Center staff are trained to help you deal with a wide range of issues, including how to study effectively and how to deal with exam-related stress. Services are free and confidential. Their web site is http://www.student-affairs.buffalo.edu/shs/ccenter/
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.
| Week | Mon | Wed |
|---|---|---|
| 1 | 6/7 Preliminaries & Basic Concepts Reading: Chapter 1, Section 15.1, Section 16.1 Extra reading: Chapter 2 Evolution of Programming Languages, Dr. Shapiro's view Links: Shapiro's notes on basic concepts Homework: Assignment 1 |
6/9 Syntax & Semantics [slides] Reading: Sections 2.4, 2.13, 2.20 Chapter 3 Links: Recitation 2: CSE Servers Shapiro's notes on syntax Homework: Assignment 1 extension |
| 2 | 6/14 Names & Variables [slides] Reading: Chapter 5.1-5.4 Links: ASCII Chart Shapiro's notes on names Homework: Assignment 2 |
6/16 Variables, Bindings, & Scope [slides] Reading: Chapter 5.5-5.8 Links: Returning large objects in C++ Shapiro's notes on variables Homework: Assignment 3 |
| 3 | 6/21 Continue Variables Reading: Continue chapter 5 Homework: Catch up on reading |
6/23 Chapter 6: Data Types [slides] Reading: Chapter 6 Links: Shapiro's notes on data types Homework: Finish Assignment 3, reading |
| 4 | 6/28 Mid-term review Assignment 3 due |
6/30 Mid-term exam Mid-semester course evaluation |
| 5 | 7/5 HOLIDAY (NO CLASSES) |
7/7
Semantics [slides] Expressions and Assignments Reading: Sebesta section 3.5 Operational Semantics Loop Patterns Sebesta chapter 7 Expressions and Assignment Statements Links: Trie (Wikipedia) Homework: Assignment 4 |
| 6 | 7/12 Expressions and Assignments [slides] Reading: Sebesta chapter 7 Expressions and Assignment Statements Homework: Assignment 5 |
7/14 Expressions and Assignments Statement-Level Control Structures [slides] Reading: Sebesta chapter 8 (short) Larry Wall interview parts 1 & 2 (pp. 370-371, 408-409) Statement Level Control Structures Homework: Continue Assignment 5 |
| 7 | 7/19 Control Structures Continued |
7/21 Concurrency Links: Dr. Shapiro's Notes on Concurrency Homework: Finish Assignment 5 Finish all re-submits Catch up on reading |
| 8 | 7/26 Guest lecture: Jon Bona Subprograms [slides] Links: Dr. Shapiro's Notes on Subprograms |
7/28 NO CLASS Use this time to finish all makeups, assignments, reading. |
| 9 | 8/2 Final Review [slides] |
8/4 Final exam |