CSE 526: Principles of Programming Languages, Spring 2019

Home Schedule Lectures Homeworks Exams Resources

Quick Lnks


Classroom: Old CS 2129  NCS 135
Time: Tue., Thu. 10:00am to 11:20am
Instructor: C. R. Ramakrishnan
Office: NCS 233
Office Hours: Mon., Wed. 11:00am to 12:30pm, or by appointment.
Email: cram AT cs.stonybrook.edu
T.A.: Xinyu Dong
Office: (Old) CS 2217
Office Hours: Thu., Fri. 12:30pm to 2:00pm, or by appointment.
Email: xinyu.dong.1 AT stonybrook.edu

Course Outcomes and Outline:

Official Course Description: Discusses programming language concepts and design, with emphasis on abstraction mechanisms. Topics include language paradigms (procedural, object-oriented, functional, and logic), language concepts (values, bindings, types, modules), and foundations (lambda calculus, denotational semantics). Examples will be drawn from several representative languages, such as C, Java, Standard ML, and Prolog.

Spring 2019-specific description: This course is not about programming in any specific language; it is not even a programming intensive course!

The objective of this course is to introduce you to the fundamental concepts in programming languages and to give you the intellectual tools needed to use, evaluate, design and choose programming languages, and reason about programs. We will mainly focus on giving meaning to programs in a formal sense. In particular, we will study operational semantics and type systems, and apply them in the context of imperative and functional programming languages. Although this is not a project-intensive course, students will be expected to have considerable programming experience (e.g. from their undergraduate preparation) in imperative and object-oriented programming. You will learn to write functional and logic programs in this course. We will closely follow the textbook, given below.

Text Book:

Text Book Benjamin C. Pierce, Types and Programming Languages. MIT Press. ISBN: 978-0-262-16209-8

Course Materials:

All course handouts, including homework assignments, and lecture notes will be on-line, linked from this page. Discussion forums are hosted on Piazza (URL: piazza.com/stonybrook/spring2019/cse526). Class announcements will also be posted there.

Homework assignments submission will be via the Blackboard system (URL: http://blackboard.stonybrook.edu/).

Programming Languages and Course Software:

This course has some programming content, although it is not a project-intensive course. Programming will be done in OCaml and Prolog.


Homework Assignments: 20%
One Mid-Term Exam: 40%
Final Exam: 40%

You must turn the homeworks in on the day they are due (i.e. by midnight at the end of that day, if you must). Homework assignments will be handed in electronically using the Blackboard system.

The current plan is to have 4 homework assignments in all. The number of homework assignments may change depending on the progress in the course. Any changes will be announced in class and on Blackboard.

The date the assignments are due will be clearly specified in the homework handout, on the web; any changes in deadlines will be posted on the course homepages and the discussion board (all on Blackboard).

Policy on Late Homework Submissions:

Assignments are due by 11:59pm on the specified date.

If you submit assignments after the deadline, your maximum grade will reduce by 25% for each late day. For example, if you submit an assignment two days late, you'll get a maximum of 50% for that homework).

Students with Special Needs:

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, please contact Disablility Support Services office (DSS), 128 ECC Building (behind SAC), 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to www.stonybrook.edu/ehs and search Fire Safety and Evacuation and Disabilities.

Critical Incident Management:

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn.

Academic Honesty:

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at www.stonybrook.edu/academicintegrity     (Adopted by the Undergraduate Council September 12, 2006)


Because a primary goal of the course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved. Any act of cheating will be treated with utmost seriousness.

You may discuss the homework problems in this course with other students, as long as you are willing to post the material on the class discussion board. However each student's submission, including written material and programs, must be their own work, and only their own work. Remember that there are many different ways to solve the same problem; even solutions with the same central idea can be formulated in many different ways. Therefore, suspiciously similar homework solutions will be considered as evidence of disallowed collaboration or copying. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty.

You should learn how to protect your data. Failure to do so is also unprofessional and it may expose you to the danger that someone will copy your homework and will submit it as his or her own. Allowing another student to copy your work will be treated as an act of academic dishonesty, leading to the same penalty as copying.

All cases of academic dishonesty will be reported to the Graduate Program Director and will be reviewed according to the department's academic integrity policies. Note that academic dishonesty carries substantial penalties, such as an `F' grade, or expulsion from the University.

Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws.

C.R. Ramakrishnan
Last modified: Tue Feb 19 15:21:06 EST 2019